私の会社は最近、従業員にHP Elitebooksを配り始めました。これは、以前使用していたLenovo ThinkPadsに代わるものです。
イーサネット接続が確立されたことを検出したときにワイヤレスを無効にする方法を見つけようとしています。
私のThinkPadでは、これはAccess Connectionsに移動して新しい場所を作成し、「LAN接続が検出されたときにワイヤレスを無効にする」というボックスを選択するのと同じくらい簡単でしたが、私のEliteBookでは、HPの同等(HP Connection Manager)では、そのオプションを見て。
ここで見逃しているものはありますか?
あなたがそれについて心配しているすべてが正しい接続を使用する場合、Windowsは理論的には最低の メトリック値 の接続を優先するはずです。ほとんどの場合、これは有線接続になります。ただし、有線接続が100メガビットで、無線接続が54メガビットの場合、それらは同じメトリック値を受け取ります。
有線接続をより高い優先度に強制するには、次の手順を実行できます( source 、および similar question )(あなたは言わなかったが、私はあなたを仮定しているWindows 7または8を持っている):
アダプター自体をオフにしてバッテリー電力を節約したい場合は、いくつかのオプションを使用できます( source ):
有線接続が検出されたときにワイヤレスをオン/オフするように「スケジュールされたタスク」を設定できます。
C:\Windows\System32\Netsh.exe
interface set interface "Wireless Network Connection" enable
(ここで、「ワイヤレスネットワーク接続」はワイヤレスアダプタの名前です引用符で囲みます)C:\Windows\System32\Netsh.exe
interface set interface "Wireless Network Connection" disable
(ここで、「ワイヤレスネットワーク接続」はワイヤレスアダプタの名前です引用符で囲みます)ただし、これは、ネットワークが接続されて削除されたときにラップトップがイベントを生成する場合にのみ機能します。これは、使用している特定のチップとドライバーによって異なります。これを行うには、組み込みのWindows機能のみを使用するのが理想的ですが、これを使用できない場合のオプションが2つあります。
IntelliAdminには ブログ投稿 があり、必要なものを正確に実行するVBScriptについて説明しています。その投稿の下部にあるリンクからダウンロードできます。 「netswitch.dat」をダウンロードし、「netswitch.vbs」に名前を変更します。あなたがスタートメニューに行くショートカットを置きます
cscript LOCATION_OF_netswitch.vbs "WIRED NAME" "WIRELESS NAME"
。
一部の人々は、Lenovo以外のコンピューターでThinkVantage Access Connectionsを機能させています。この方法で使用すると、LenovoのEULAに違反する可能性があるため、ダウンロードするためのリンクは含めていません。そのライセンスを読んで準拠していると判断した場合は、上記の私のソースにダウンロードリンクがあります。
HP EliteBookラップトップには、イーサネットケーブルが接続されているときにワイヤレス接続を無効にする機能が組み込まれています。これは「LAN/WLAN切り替え」と呼ばれ、BIOS/UEFIセットアップで切り替えることができます。
正確な手順はEliteBookモデルによって異なりますが、私の6930pでは次のように動作します。
これでうまくいくはずです。別のモデルがある場合(特に、異なる世代のものである場合)は、そのモデルのユーザーマニュアルを参照してください。
HPのProtectToolsソフトウェアを使用していて、BIOS設定アドオンがインストールされている場合は、Windows内からこの設定を切り替えることもできますが、有効にするために再起動する必要があります。
代替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
}
}
私の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><QueryList><Query Id="0" Path="System"><Select Path="System">*[System[Provider[@Name='e1cexpress']]]</Select></Query></QueryList></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>
イーサネット用のドライバーがある場合、つまり、Samsungラップトップに高速イーサネットコントローラーを使用している場合は、右端のタスクバーに次のように表示されます。
結果:イーサネットケーブルを接続すると、ワイヤレス接続が無効になり、イーサネット接続が優先されます。
起動時にF2を押してBIOSに入ります。 [電源管理]に移動し、[ワイヤレスラジオコントロールの有効化]を選択します。
有効になっている場合、この機能はシステムの有線ネットワークへの接続を検知し、その後、選択された無線(WLANおよび/またはWWAN)を無効にします。有線ネットワークから切断すると、選択した無線が再び有効になります。