HP EliteBookでイーサネット接続が検出されたときにワイヤレスを無効にする


7

私の会社は最近、HP Elitebookを従業員に配布し始め、以前使用していたLenovo ThinkPadに取って代わりました。

イーサネット接続が確立されたことを検出したときにワイヤレスを無効にする方法を見つけようとしています。

私のThinkPadでは、これはAccess Connectionsに移動して新しい場所を作成し、「LAN接続が検出されたときにワイヤレスを無効にする」というボックスを選択するのと同じくらい簡単でしたが、HPの同等の(HP Connection Manager)で、私はそうではありませんそのオプションを参照してください。

ここに欠けているものはありますか?


私はあなたを助けるかもしれない何かを書いた、私はスクリプトが機能しないシナリオで働いており、私たちはそれ自体をセットアップして一種の機能するサービスが必要でした、あなたはここでパッケージ化されたインストーラーでコードを見つけることができますリリースページ。幸運を。
sean_m

回答:


10

正しい接続を使用することに関心がある場合、Windowsは理論的には最小のメトリック値を持つ接続を優先する必要があります。ほとんどの場合、これは有線接続になります。ただし、有線接続が100メガビットで、ワイヤレス接続が54メガビットの場合、同じメトリック値を受け取ります。

有線接続をより高い優先度に強制するには、次の手順を実行できます(source、および同様の質問)(言わなかったが、Windows 7または8があると仮定しています):

  1. 「ネットワークと共有センター」を開きます。最も簡単な方法は、時計の横にある「ネットワーク」アイコンを右クリックすることです。ワイヤレス信号強度バーのように見えるか、ケーブルが横にあるコンピューターのように見えます。
  2. 左の列の「アダプター設定の変更」をクリックします。
  3. メニューバーで[詳細設定]をクリックし、[詳細設定...]をクリックします。メニューバーが表示されない場合ALTは、キーボードのキーを押して表示します。
  4. 利用可能なネットワークアダプターのリストで、ワイヤードアダプターをクリックし、矢印を使用してリストの一番上に移動します。

実際にバッテリー電力を節約するためにアダプター自体をオフにしたい場合、使用できるオプションがいくつかあります(source):

  • 「スケジュールされたタスク」を設定して、有線接続が検出されたときにワイヤレスのオンとオフを切り替えることができます。

    1. 有線接続を抜き差しするためのイベントIDを見つけます。これを行うには、ケーブルを何度か差し込み、もう一度取り外し、「イベントビューアー」を開き([スタート]メニューの検索ボックスに名前を入力できます)、[システム]ログで生成されたイベントを探します。これらのイベントの「ソース」と「イベントID」の値を書き留めます。
    2. [タスクスケジューラ]を開き(もう一度、[スタートメニュー]検索ボックスに名前を入力するだけです)、[基本タスクの作成]を選択します。
    3. タスクの作成手順に従い、必要に応じて次の値を挿入します。
      • 名前 -「Wi-Fiを有効にする」
      • いつタスクを開始しますか?-「特定のイベントが記録されたとき」
      • ログ -「システム」
      • ソース - ステップ1で見つけたソース
      • イベントID - イベントIDは、あなたがのために上記見つかったイーサネットを抜きます
      • プログラム/スクリプト -C:\Windows\System32\Netsh.exe
      • 引数を追加 - interface set interface "Wireless Network Connection" enable(「ワイヤレスネットワーク接続」はワイヤレスアダプターの名前で、引用符で囲みます
    4. 次のオプションを使用して別の基本タスクを作成します。
      • 名前 -「Wifiをオフにする」
      • いつタスクを開始しますか?-「特定のイベントが記録されたとき」
      • ログ -「システム」
      • ソース - ステップ1で見つけたソース
      • イベントID - イベントIDは、あなたがのために上記見つかったイーサネットに差し込みます
      • プログラム/スクリプト -C:\Windows\System32\Netsh.exe
      • 引数を追加 - interface set interface "Wireless Network Connection" disable(「ワイヤレスネットワーク接続」はワイヤレスアダプターの名前で、引用符で囲みます
    5. タスクを実行するために必要な許可を変更する必要がある場合があります。そうでない場合、netshは「要求された操作には昇格が必要です(管理者として実行)」と表示して終了します。作成したタスクごとにこれらの手順を実行します。
      • タスクを右クリックし、「プロパティ」を選択します
      • 「ユーザーまたはグループの変更...」をクリックし、ボックスに「SYSTEM」と入力して、「OK」をクリックします。
      • [最高の特権で実行する]をオンにします。
      • OKをクリックします。

    ただし、これは、ネットワークが接続され削除されたときにラップトップがイベントを生成する場合にのみ機能します。これは、使用している特定のチップとドライバーに依存します。これを行うには、組み込みのWindows機能のみを使用するのが理想的ですが、これを使用できない場合は、さらに2つのオプションがあります。

  • IntelliAdminには、必要なことを正確に行うVBScriptについて説明したブログ投稿があります。その投稿の下部にあるリンクからダウンロードできます。「netswitch.dat」をダウンロードし、「netswitch.vbs」に名前を変更します。あなたがスタートメニューに行くショートカットを置きます

    cscript LOCATION_OF_netswitch.vbs "WIRED NAME" "WIRELESS NAME"

  • 一部の人々は、Lenovo以外のコンピューターでThinkVantage Access Connectionsを使用しています。この方法で使用すると、LenovoのEULAに違反する可能性があるため、ダウンロードするためのリンクは含めません。そのライセンスを読み、準拠していると判断した場合、上記のソースからダウンロードリンクを見つけることができます。


ヘイ・モシェ、素晴らしい反応に感謝します。アダプターを回すことは私がやりたいことであり、これを達成するためのタスクを作成しようとしましたが、LAN接続が検出または切断された直後にNetshプログラムが実行されている間は何も起こりませんので、ここから何をすべきか本当にわかりません。
wrigley06

@ wrigley06ワイヤレスカードの名前は正しいですか?「ワイヤレスネットワーク接続」と呼ばれるものを多く見ましたが、一部は単に「Wi-Fi」と言い、その他はまったく異なります。名前を確認するには、コマンドプロンプト(cmd.exe)を開いてを入力しますnetsh interface show interface
モシェカッツ14

@ wrigley06また、タスクを実行するユーザーを変更する必要があります。デフォルトでは、タスクはおそらくあなたとして実行されますが、ネットワークインターフェイスを有効/無効にできるのは管理者だけです。私は詳細に答えを更新しました-ステップ5.参照
モシェ・カッツ

7

HP EliteBookラップトップには、イーサネットケーブルが差し込まれたときにワイヤレス接続を無効にする機能が組み込まれています。これは「LAN / WLANスイッチング」と呼ばれ、BIOS / UEFIセットアップで切り替えることができます。

実行する必要がある正確な手順は、EliteBookモデルによって異なる場合がありますが、私の6930pでは次のように機能します。

  1. F10起動中にを押してBIOS / UEFIセットアップに進みます。
  2. [システム構成]→[組み込みデバイスオプション]に移動します
  3. [LAN / WLAN切り替え]オプションを見つけて、その横にある[有効]ラジオボタンを選択します。
  4. 変更を保存し、BIOS / UEFIセットアップを終了して再起動します

これでうまくいくはずです。別のモデルを使用している場合(特に異なる世代のものである場合)、モデルのユーザーマニュアルを参照してください。

HPのProtectToolsソフトウェアを使用していて、BIOS構成アドオンをインストールしている場合は、Windows内からこの設定を切り替えることもできますが、有効にするには再起動する必要があります。


dell e5570も同じですか?
ロエル

@roelすみません、わかりません。そのラップトップをお持ちの場合は、BIOS / UEFI設定を確認してください。または、マニュアルを参照してください。
インドレック

2

別のPowerShellソリューション:https : //gallery.technet.microsoft.com/scriptcenter/WLAN-Manager-f438a4d7

WLAN Managerはスケジュールされたタスクとして実行され、LAN接続が確認されるとWLANカードを自動的に無効にします。LAN接続が失われると、WLANカードは再び有効になります。これにより、利用可能な最速の接続が確保され、ネットワークブリッジの防止に役立ちます。

Microsoft Technetの「substance」による元のコード。ZIPファイル

################ 
# WLAN Manager # 
################ 
#Version: 2015-03-03.2 
#Author: johan.carlsson@innovatum.se 

<# 

.SYNOPSIS 
Disables the WLAN NIC when LAN NIC network connection is verified. 
Enables WLAN NIC when LAN NIC network connection is lost. 

.DESCRIPTION 
WLAN Manager runs as a scheduled task and will automatically disable your WLAN card when a LAN connection is verified. 
The WLAN card will be re-enabled once the LAN connection is lost. This ensures you'll always have the fastest available connection and stops network bridging. 

.EXAMPLE 
.\WLANManager.ps1 -Install:$true 
Installs WLAN Manager. 

.EXAMPLE 
.\WLANManager.ps1 -Remove:$true 
Removes WLAN Manager. 

.EXAMPLE 
.\WLANManager.ps1 
Verify Installaton > Install if missing > Run Interactively (first run only, hidden run via scheduled task run after that). 

.EXAMPLE 
.\WLANManager.ps1 -Interactive:$true 
Runs WLAN Manager in an interactive window. Will not install anything. This mode is only for testing and watching what happens via console output. 

.NOTES 
None. 

.LINK 
https://support.innovatum.se 

#> 

[CmdletBinding()] 
Param 
( 
    [Parameter(Mandatory=$False,Position=1,HelpMessage="Installs WLAN Manager.")] 
    [switch]$Install, 
    [Parameter(Mandatory=$False,Position=2,HelpMessage="Removes WLAN Manager.")] 
    [switch]$Remove, 
    [Parameter(Mandatory=$False,Position=3,HelpMessage="Runs WLAN Manager interactively, doesn't install anything.")] 
    [switch]$Interactive 
) 

######################################### 
# Custom Variables for Your Environment # 
######################################### 
#Destination Path to where you want to store files for local install of WLANManager 
$CustomDestinationPath = "$env:ProgramFiles\WLANManager" 


<# 
D O   N O T   C H A N G E   A N Y T H I N G   B E L O W   T H I S   L I N E 
#> 


################################# 
# Unload/Load PowerShell Module # 
################################# 

#Remove PowerShell Module 
If ((Get-Module PSModule-WLANManager) -ne $null) 
    { 
        Remove-Module PSModule-WLANManager -Verbose 
    } 

#Import PowerShell Module 
$strBasePath = Split-Path -Path $MyInvocation.InvocationName 
Import-Module "$strBasePath\PSModule-WLANManager.psm1" -Verbose 


############################# 
# Install or Update Install # 
############################# 

If ($Remove -eq $true) 
    { 
        Remove-WLANManager -FilePath $CustomDestinationPath 
        return 
    } 
ElseIf ((Test-Path -Path $strBasePath) -eq $True -and ($Interactive) -ne $true) 
    { 
        #Install 
        Install-WLANManager -SourcePath $strBasePath -DestinationPath $CustomDestinationPath 
        If ($Install -eq $true) 
            { 
                #≥Windows 8 
                If ($OSInfo.Caption -match "Windows 8") 
                    { 
                        Start-ScheduledTask -TaskName "WLAN Manager" 
                        Exit 
                    } 
                #<Windows 8 
                Else 
                    { 
                        Start-STask -TaskName "WLAN Manager" | Out-Null 
                        Exit 
                    } 
            } 
    } 


######## 
# Main # 
######## 

while ($true) 
{ 
    If ((Test-WiredConnection) -eq $true -and (Test-WirelessConnection) -eq $true) 
        { 
            Write-Host "Wired connection detected, disabling Wireless connection... " -NoNewline -ForegroundColor Yellow 
            #≥Windows 8 
            If ($OSInfo.Caption -match "Windows 8") 
                { 
                    Disable-NetAdapter -InterfaceDescription *Wireless* -Confirm:$false 
                } 
            #<Windows 8 
            Else 
                { 
                    Disable-WLANAdapter | Out-Null 
                } 
            Write-Host "Done" -ForegroundColor White -BackgroundColor Green 
        } 

    If ((Test-WiredConnection) -eq $false -and (Test-WirelessConnection) -eq $false) 
        { 
            Write-Host "Wired connection lost, enabling Wireless connection... " -NoNewline -ForegroundColor Yellow 
            #≥Windows 8 
            If ($OSInfo.Caption -match "Windows 8") 
                { 
                    Enable-NetAdapter -InterfaceDescription *Wireless* -Confirm:$false 
                } 
            #<Windows 8 
            Else 
                { 
                    Enable-WLANAdapter | Out-Null 
                } 
            #Wait for WLAN Adapter to initialize and obtain an IP-address 
            while ((Test-WiredConnection) -eq $false -and (Test-WirelessConnection) -eq $false) 
                { 
                    sleep -Seconds 1 
                } 
            Write-Host "Done" -ForegroundColor White -BackgroundColor Green 
        } 

    Else 
        { 
            Write-Host "Sleeping..." -ForegroundColor Yellow 
            sleep -Seconds 1 
        } 
} 

こんにちは、ヨハン、@ togは要件を満たせるように答えを拡大しました。現在も(再び)削除される可能性が高いからです。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。こちらをご覧ください:一部の回答が削除される理由と方法
bummi

編集を取り消して答えを拡大した理由を説明できますか?
bwDraco

0

Moshe Katzの回答(Moshe Katzに感謝!)の助けを借りて、100台のラップトップでうまく機能するカスタムソリューションを思い付きました。

次のテキストをwifiswitch.batファイルとしてC:\ windows \ system32の下に保存します。ラップトップのインターフェイス名がスクリプトと一致することを確認してください。

            @echo off
            Title Wifi Lan Switcher

            set a=0

            :loop
            netsh interface show interface name="Local Area Connection" | find /i "disconnected" > NUL 2>&1
            IF ERRORLEVEL 1 (
                netsh interface show interface name="Wireless Network Connection" | find /i "disabled" > NUL 2>&1
                IF ERRORLEVEL 1 (
                    netsh interface set interface name="Wireless Network Connection" disable > NUL 2>&1
                    set error=%errorlevel%
                    ping -n 5 127.0.0.1 >nul
                )
            ) 
            netsh interface show interface name="Local Area Connection" | find /i "disconnected" > NUL 2>&1
            IF NOT ERRORLEVEL 1 (
                netsh interface show interface name="Wireless Network Connection" | find /i "enabled" > NUL 2>&1
                    IF ERRORLEVEL 1 (
                        netsh interface set interface name="Wireless Network Connection" enable > NUL 2>&1
                        set error=%errorlevel%
                        ping -n 5 127.0.0.1 >nul
                    )
            )

            set /a a+=1

            echo.
            echo %a%
            ping -n 3 127.0.0.1 >nul
            if %a% equ 5 goto :eof
            goto :loop

            :eof
            echo.
            echo.
            set a=
            exit /b %error%

次に、スケジュールされたタスクの下に1つのタスクを作成する必要があります。タスクxmlコードを.xmlに保存し、ラップトップのタスクスケジューラにインポートできます。トリガータブの下のソースを特定のモデルに属するものに変更してください

            <?xml version="1.0" encoding="UTF-16"?>
            <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
              <RegistrationInfo>
                <Date>2014-07-07T09:36:51.4300545</Date>
                <Author>%username%</Author>
              </RegistrationInfo>
              <Triggers>
                <EventTrigger>
                  <Enabled>true</Enabled>
                  <Subscription>&lt;QueryList&gt;&lt;Query Id="0" Path="System"&gt;&lt;Select Path="System"&gt;*[System[Provider[@Name='e1cexpress']]]&lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</Subscription>
                </EventTrigger>
                <BootTrigger>
                  <Enabled>true</Enabled>
                  <Delay>PT1M</Delay>
                </BootTrigger>
                <RegistrationTrigger>
                  <Enabled>true</Enabled>
                </RegistrationTrigger>
              </Triggers>
              <Principals>
                <Principal id="Author">
                  <UserId>S-1-5-18</UserId>
                  <RunLevel>HighestAvailable</RunLevel>
                </Principal>
              </Principals>
              <Settings>
                <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
                <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
                <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
                <AllowHardTerminate>true</AllowHardTerminate>
                <StartWhenAvailable>true</StartWhenAvailable>
                <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
                <IdleSettings>
                  <StopOnIdleEnd>true</StopOnIdleEnd>
                  <RestartOnIdle>false</RestartOnIdle>
                </IdleSettings>
                <AllowStartOnDemand>true</AllowStartOnDemand>
                <Enabled>true</Enabled>
                <Hidden>false</Hidden>
                <RunOnlyIfIdle>false</RunOnlyIfIdle>
                <WakeToRun>false</WakeToRun>
                <ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
                <Priority>7</Priority>
                <RestartOnFailure>
                  <Interval>PT1M</Interval>
                  <Count>3</Count>
                </RestartOnFailure>
              </Settings>
              <Actions Context="Author">
                <Exec>
                  <Command>%windir%\System32\WifiSwitch.bat</Command>
                  <WorkingDirectory>%windir%\system32</WorkingDirectory>
                </Exec>
              </Actions>
            </Task>

0

起動時にF2を押して、BIOSに入ります。[電源管理]に移動し、[ワイヤレス無線制御の選択] [WLAN無線の制御]および[WWAN無線の制御]を有効にします。

[有効]の場合、この機能はシステムの有線ネットワークへの接続を検知し、選択した無線(WLANおよび/またはWWAN)を無効にします。有線ネットワークから切断すると、選択したワイヤレス無線が再び有効になります。


0

イーサネット用のドライバーがある場合、つまり、Samsungラップトップ用に高速イーサネットコントローラーを使用している場合は、右端のタスクバーで:

  1. イーサネットアイコンをクリックします。これは、通常Eのように、通常は黄色です
  2. ポップアップウィンドウで[接続マネージャ]をクリックします
  3. 次にオプション
  4. オプションで、イーサネットアダプタが使用可能であるときにワイヤレス無線を無効にするチェックボックスをオン/オフにします。

結果:イーサネットケーブルを接続すると、ワイヤレス接続が無効になり、イーサネット接続が優先されます。


1
これは不完全に書かれていますが、Windows 10の正しいソリューションであり、既存の回答を複製しません。
music2myear
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.