Networking 重置前测试无线适配器是否正常工作

Networking 重置前测试无线适配器是否正常工作,networking,windows-7-x64,powershell-4.0,wireless,control-panel,Networking,Windows 7 X64,Powershell 4.0,Wireless,Control Panel,有没有一种简单的方法来证明网络适配器是否正常工作?可能是像localhost(127.0.0.1)这样的IP,无论我连接到哪个网络,它总是可用的;只有一个显示我的无线网络适配器是否正常工作?或者可能有一些简单的诊断检查来证实这一点 我把这个问题标记为PowerShell,因为这是我的首选语言;但我可以想出办法,与可能提出的任何其他解决方案相结合 迄今为止已尝试过 我想检查一下适配器的属性,发现有一个状态和一个IP;我想,如果有一个指定的IP或连接状态,将证明所有的工作;遗憾的是,这些属性是空白的

有没有一种简单的方法来证明网络适配器是否正常工作?可能是像localhost(127.0.0.1)这样的IP,无论我连接到哪个网络,它总是可用的;只有一个显示我的无线网络适配器是否正常工作?或者可能有一些简单的诊断检查来证实这一点

我把这个问题标记为PowerShell,因为这是我的首选语言;但我可以想出办法,与可能提出的任何其他解决方案相结合

迄今为止已尝试过

我想检查一下适配器的属性,发现有一个状态和一个IP;我想,如果有一个指定的IP或连接状态,将证明所有的工作;遗憾的是,这些属性是
空白的
未知的
,因此我无法使用它们

$adapter = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like '*Wireless*'}
$adapter.Status #returns 2; i.e. unknown
$adapter.NetworkAddresses #is blank
背景

我有一个问题,我休眠我的笔记本电脑,同时对接,然后使其恢复在线不再对接它失去了无线连接,需要重新启动适配器。这篇文章也提到了同样的问题:

我希望使用上面的代码自动解决这个问题,方法是在我的计算机脱离暂停状态(例如)时安排一个任务运行

有时我会在我的家庭网络上,唯一要ping的设备是我的路由器,有时我会在我的办公室网络上,那里有一系列我可以ping的机器,有时我会在别处。。。因此,通过ping某些外部设备来确定测试我的网络适配器是否需要重新启动的好目标候选对象要比理想的复杂得多


我想在重置之前运行一个测试,以便仅在需要时重置。如果我希望对需要网络存在才能完成的其他任务进行排队,则在重置完成后进行检查也很有用。

WMI类
Win32\u NetworkAdapter
似乎具有
可用性
属性。

有一系列值可以表示“工作”;现在我只选择了状态
3
;i、 e.所有设备均按预期100%运行/无需担心潜在的脱脂。根据具体情况,这可能是值得修改的

function Test-NetworkAdapter {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        [string]$AdapterNameMask     
        ,
        [Parameter(Mandatory = $false)]
        [int[]]$HealthyStatusses = @(3) #100% working on full power; for list of other possible values, see https://msdn.microsoft.com/en-us/library/aa387884(v=vs.85).aspx
    )
    process {
       Get-WmiObject -Class Win32_NetworkAdapter `
        | Where-Object {$_.Name -like $AdapterNameMask} `
        | Select-Object @{Name='Working';Expression={$healthyStatusses -contains $_.Availability}}
    }
 }
function Reset-NetworkAdapter {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        [string]$AdapterNameMask 
    )
    process {
        Get-WmiObject -Class Win32_NetworkAdapter `
        | Where-Object {$_.Name -like $AdapterNameMask} `
        | %{ #in case multiple matches, loop through all
            $_.Disable()
            $_.Enable()    
        }
    }
}

[string]$wirelessAdapterMask = '*Wireless*'
#I could probably improve this to cope better should there be multiple matches / only resetting those with issues... but for now this meets my requirement
if (-not (Test-NetworkAdapter $wirelessAdapterMask)) {
    Reset-NetworkAdapter $wirelessAdapterMask
}

WMI类
Win32\u NetworkAdapter
似乎具有
可用性
属性。

有一系列值可以表示“工作”;现在我只选择了状态
3
;i、 e.所有设备均按预期100%运行/无需担心潜在的脱脂。根据具体情况,这可能是值得修改的

function Test-NetworkAdapter {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        [string]$AdapterNameMask     
        ,
        [Parameter(Mandatory = $false)]
        [int[]]$HealthyStatusses = @(3) #100% working on full power; for list of other possible values, see https://msdn.microsoft.com/en-us/library/aa387884(v=vs.85).aspx
    )
    process {
       Get-WmiObject -Class Win32_NetworkAdapter `
        | Where-Object {$_.Name -like $AdapterNameMask} `
        | Select-Object @{Name='Working';Expression={$healthyStatusses -contains $_.Availability}}
    }
 }
function Reset-NetworkAdapter {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        [string]$AdapterNameMask 
    )
    process {
        Get-WmiObject -Class Win32_NetworkAdapter `
        | Where-Object {$_.Name -like $AdapterNameMask} `
        | %{ #in case multiple matches, loop through all
            $_.Disable()
            $_.Enable()    
        }
    }
}

[string]$wirelessAdapterMask = '*Wireless*'
#I could probably improve this to cope better should there be multiple matches / only resetting those with issues... but for now this meets my requirement
if (-not (Test-NetworkAdapter $wirelessAdapterMask)) {
    Reset-NetworkAdapter $wirelessAdapterMask
}

注:我刚刚意识到,虽然那篇告诉我状态2=未知的文章说的是
状态
,但图片上说的是
可用性
;这就是我需要的财产!。注:我刚刚意识到,虽然那篇告诉我状态2=未知的文章说的是
状态
,但图片上说的是
可用性
;这就是我需要的财产!。