如何测试Powershell中是否存在活动的网络连接?

时间:2019-07-15 14:32:37

标签: powershell networking windows-10

我希望脚本的一部分仅在计算机具有任何已建立的网络连接时运行。它可以是wifi,以太网或任何非虚拟的东西。我不需要完整的互联网,只需局域网。

这一切都适用于Windows 10 64位,并且该脚本是我将用于部署某些计算机的较大脚本的一部分。

注意:我绝对是powershell菜鸟,对此我不太熟悉。老实说,我仍然对编程和脚本编写还不熟悉,但特别是对于powershell。

我认为我需要一些功能来分别检查每个网络适配器,但是我不确定如何在Powershell中执行此操作。

if (Get-NetAdapter -Name "*" -Physical == "Up") {
    Write-Host "Pass"
}
else {
    Write-Host "Fail"
}

我希望我的代码可以检查Get-NetAdapter列表中的每个选项,但是它在==参数上给出了错误,它找不到可以接受它的位置参数。我还尝试了=,该错误同样出现。

2 个答案:

答案 0 :(得分:0)

您可以检查状态为“ Up”的网络适配器,然后将结果用于您的条件...

if (Get-NetAdapter | Where-Object {$_.Status -eq 'Up'}) {

    #do something

}

else {

    #do something else

}

答案 1 :(得分:0)

检查网络适配器阵列的示例代码

$networkavailable = $false;
foreach ($adapter in Get-NetAdapter){
  if ($adapter.status -eq "Up"){$networkavailable = $true; break;}
}