web-dev-qa-db-ja.com

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

私の会社は最近、従業員にHP Elitebooksを配り始めました。これは、以前使用していたLenovo ThinkPadsに代わるものです。

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

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

ここで見逃しているものはありますか?

7
wrigley06

あなたがそれについて心配しているすべてが正しい接続を使用する場合、Windowsは理論的には最低の メトリック値 の接続を優先するはずです。ほとんどの場合、これは有線接続になります。ただし、有線接続が100メガビットで、無線接続が54メガビットの場合、それらは同じメトリック値を受け取ります。

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

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

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

  • 有線接続が検出されたときにワイヤレスをオン/オフするように「スケジュールされたタスク」を設定できます。

    1. 有線接続を取り外したり再接続したりするためのイベントIDを見つけます。これを行うには、ケーブルを数回抜き差しし、「イベントビューア」を開き(「スタートメニュー」検索ボックスにその名前を入力できます)、「システム」ログで生成されたイベントを探します。これらのイベントの「ソース」と「イベントID」の値を書き留めます。
    2. 「タスクスケジューラ」を開き(ここでも、スタートメニューの検索ボックスに名前を入力するだけです)、「基本タスクの作成」を選択します。
    3. タスクの作成手順に従い、必要に応じて次の値を挿入します。
      • Name-"Wifiをオンにする"
      • タスクをいつ開始しますか?-「特定のイベントがログに記録されたとき」
      • Log-"システム"
      • Source-手順1で見つけたソース
      • EventID-unpluging Ethernet
      • プログラム/スクリプト-C:\Windows\System32\Netsh.exe
      • 引数を追加-interface set interface "Wireless Network Connection" enable(ここで、「ワイヤレスネットワーク接続」はワイヤレスアダプタの名前です引用符で囲みます
    4. 次のオプションを使用して別の基本タスクを作成します。
      • 名前-"Wifiをオフにする"
      • タスクをいつ開始しますか?-「特定のイベントがログに記録されたとき」
      • Log-"システム"
      • Source-手順1で見つけたソース
      • EventID-イーサネットでのプラグインのイベント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に違反する可能性があるため、ダウンロードするためのリンクは含めていません。そのライセンスを読んで準拠していると判断した場合は、上記の私のソースにダウンロードリンクがあります。

10
Moshe Katz

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

正確な手順はEliteBookモデルによって異なりますが、私の6930pでは次のように動作します。

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

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

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

7
Indrek

代替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: [email protected] 

<# 

.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 
        } 
} 
2
Johan Carlsson

私の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
LT-

イーサネット用のドライバーがある場合、つまり、Samsungラップトップに高速イーサネットコントローラーを使用している場合は、右端のタスクバーに次のように表示されます。

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

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

0
Brian Wekesa

起動時にF2を押してBIOSに入ります。 [電源管理]に移動し、[ワイヤレスラジオコントロールの有効化]を選択します。

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

0
David Whyte