如何确保使用PowerShell启用或禁用Wi-Fi?
我们正在使用专用网络,其中端口被防火墙阻止。如何确保使用PowerShell启用或禁用Wi-Fi?
我们将提出打开我们机器IP地址端口的请求。
如果启用了wi-fi,系统将有2个IP地址,并且如果我们的连接通过该IP地址路由,则我们无法在专用网络内访问我们的计算机。
我想知道在powershell中是否有任何方式来确保状态(是否启用/禁用Wi-Fi)。
这一个班轮列出了与无线或WiFi相匹配的所有网络适配器并启用。
get-wmiobject -class win32_networkadapter -namespace root\CIMV2 | where-object {$_.Name -match "Wifi" -or $_.Name -match "wireless" -and $_.name -notmatch "Microsoft Virtual WiFi Miniport Adapter" -and $_.netenabled -eq $true} | select description, netenabled
此为禁用:
get-wmiobject -class win32_networkadapter -namespace root\CIMV2 | where-object {$_.Name -match "Wifi" -or $_.Name -match "wireless" -and $_.name -notmatch "Microsoft Virtual WiFi Miniport Adapter" -and $_.netenabled -eq $true } | % { $_.disable() }
本作启用:
get-wmiobject -class win32_networkadapter -namespace root\CIMV2 | where-object {$_.Name -match "Wifi" -or $_.Name -match "wireless" -and $_.name -notmatch "Microsoft Virtual WiFi Miniport Adapter" -and $_.netenabled -eq $false } | % { $_.enable() }
'-match'不区分大小写,所以你不需要检查Wifi和wifi(cmatch是区分大小写的版本)。您还可以使用'-match'Wifi | wireless''结合匹配项目。 – 2012-04-18 07:06:58
@AndyArismendi是W和w的复制和粘贴错误。我编辑了我的答案。正则表达式中的'或'是个好主意!谢谢 – 2012-04-18 07:11:44
+1它适用于我(法语操作系统),除非您在最后一个'|'之前缺少'}'在启用/禁用行中。令我惊讶的是,在WMI相关课程中没有解决方案。 – JPBlanc 2012-04-18 09:52:36
如果你火了一个命令提示符下,你可以获取WLAN的信息与此:
netsh wlan show networks
将输出重定向到FIND
命令,你应该是好去
netsh wlan show networks | FIND "turned off" /I /C
警告:我的Windows是不是恩*本地化,所以我不能确定“关闭”的事情,你可能想没有启动命令(如果你启动netsh
命令,你会看到自己)
或者如果你需要知道如果wifi是从多个远程机器连接,你可以列出他们在一个文件(在这种情况下,它是computers.txt)并运行以下脚本
$computers = Get-Content %PATH%\Computers.txt
$credentials = Get-Credential -Credential domain\username
ForEach ($computer in $computers)
{
Write-Host "Computer Name: $computer"
Invoke-Command -ComputerName $computer -Credential $credentials -ScriptBlock {netsh wlan show interfaces} | select-string "State"
}
我希望Windows试图通过所有可用的连接路由请求,直到它发现它们是否可以通过它们中的任何一个,是不是它像这样工作? – Alex 2012-04-18 06:44:18
@alex:当我们关闭我们的Wi-Fi时,我们能够连接到专用网络。所以我认为它不会通过所有可用的连接路由请求。 – Samselvaprabu 2012-04-18 06:45:43