我的公司最近开始向员工发放 HP Elitebook,以取代我们以前使用的联想 ThinkPad。
我正在尝试找到一种方法,当检测到以太网连接已建立时禁用无线功能。
在我的 ThinkPad 上,这很简单,只需进入 Access Connections,创建一个新位置,然后选择“检测到 LAN 连接时禁用无线”框即可。然而在我的 EliteBook 上,在 HP 的等效产品(HP Connection Manager)中,我没有看到该选项。
这里我遗漏了什么吗?
答案1
如果你关心的是使用正确的连接,理论上 Windows 应该优先选择最低的连接度量值。通常,这将是您的有线连接。但是,如果您的有线连接是 100 Mbits,而您的无线连接是 54Mbits,它们将接收相同的度量值。
要强制有线连接具有更高的优先级,您可以执行以下步骤(来源, 和类似问题)(您没有说,但我假设您使用的是 Windows 7 或 8):
- 打开“网络和共享中心”。最简单的方法是右键单击时钟旁边的“网络”图标。它看起来要么像无线信号强度条,要么像旁边有电缆的计算机。
- 单击左栏中的“更改适配器设置”。
- 在菜单栏中,单击“高级”,然后单击“高级设置...”。如果您没有看到菜单栏,请按下ALT键盘上的按键来显示它。
- 在可用网络适配器列表中,单击您的有线适配器,然后使用箭头将其移动到列表顶部。
如果你确实想关闭适配器本身以节省电池电量,你可以使用以下几种方法(来源):
您可以设置“计划任务”以在检测到有线连接时打开和关闭无线。
- 查找拔下并重新插入有线连接的事件 ID。方法是多次插入和拔下电缆,然后打开“事件查看器”(您可以在“开始”菜单搜索框中输入其名称)并在“系统”日志中查找生成的事件。记下这些事件的“来源”和“事件 ID”值。
- 打开“任务计划程序”(同样,您只需在开始菜单搜索框中输入其名称),然后选择“创建基本任务”。
- 按照任务创建的说明进行操作,并在适当的时候插入以下值:
- 姓名- “打开 Wifi”
- 您希望什么时候开始任务?- “当记录特定事件时”
- 日志- “系统”
- 来源-您在步骤 1 中找到的来源
- 事件ID-您在上方找到的事件 ID拔掉以太网。
- 程序/脚本-
C:\Windows\System32\Netsh.exe
- 添加参数-
interface set interface "Wireless Network Connection" enable
(其中“无线网络连接”是您的无线适配器的名称,带引号)
- 使用以下选项创建另一个基本任务:
- 姓名- “关闭 Wifi”
- 您希望什么时候开始任务?- “当记录特定事件时”
- 日志- “系统”
- 来源-您在步骤 1 中找到的来源
- 事件ID-您在上方找到的事件 ID插入以太网。
- 程序/脚本-
C:\Windows\System32\Netsh.exe
- 添加参数-
interface set interface "Wireless Network Connection" disable
(其中“无线网络连接”是您的无线适配器的名称,带引号)
- 您可能需要更改任务运行的权限。否则,netsh 会显示“请求的操作需要提升权限(以管理员身份运行)”并退出。对刚刚创建的每个任务执行以下步骤。
- 右键单击该任务,并选择“属性”
- 单击“更改用户或组...”,在框中输入“SYSTEM”,然后单击“确定”。
- 勾选“以最高权限运行”。
- 单击“确定”。
但是,这只有在您的笔记本电脑在插入和移除网络时生成事件时才有效。这将取决于您拥有的特定芯片和驱动程序。虽然仅使用内置的 Windows 功能是我实现此目的的理想方式,但如果您无法使用此功能,这里还有两个选项。
IntelliAdmin 有一个博客文章它描述了一个完全符合您需求的 VBScript。您可以从该帖子底部的链接下载它。下载“netswitch.dat”并将其重命名为“netswitch.vbs”。在您的开始菜单中放置一个快捷方式,指向
cscript LOCATION_OF_netswitch.vbs "WIRED NAME" "WIRELESS NAME"
。有些人已在非联想电脑上安装了 ThinkVantage Access Connections。我没有提供下载链接,因为以这种方式使用它可能会违反联想的 EULA。如果您阅读了该许可证并认为您符合要求,那么您可以在上面的我的来源中找到下载链接。
答案2
HP EliteBook 笔记本电脑具有内置功能,可以在插入以太网电缆时禁用无线连接。该功能称为“LAN/WLAN 切换”,可以在 BIOS/UEFI 设置中切换。
您需要采取的具体步骤可能因您的 EliteBook 型号而异,但在我的 6930p 上,以下步骤有效:
- 在启动期间按下F10即可进入 BIOS/UEFI 设置。
- 进入系统配置 → 内置设备选项
- 找到“LAN/WLAN切换”选项,选择旁边的“已启用”单选按钮
- 保存更改并退出 BIOS/UEFI 设置以重新启动
这应该可以解决问题。如果您有其他型号(尤其是不同代产品),请查阅该型号的用户手册。
请注意,如果您使用 HP 的 ProtectTools 软件并且安装了 BIOS 配置插件,那么您也应该能够在 Windows 内部切换此设置,但您仍然必须重新启动才能使其生效。
答案3
备用 PowerShell 解决方案:https://gallery.technet.microsoft.com/scriptcenter/WLAN-Manager-f438a4d7
WLAN 管理器作为计划任务运行,并在验证 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
}
}
答案4
启动时按 F2 进入 BIOS。转到电源管理,选择无线电控制,启用控制 WLAN 无线电和控制 WWAN 无线电
如果启用,此功能将检测系统与有线网络的连接,然后禁用所选无线电(WLAN 和/或 WWAN)。断开与有线网络的连接后,将重新启用所选无线电。