TCP烟囱命令通过Powershell

lar*_*400 1 powershell powershell-2.0 powershell-3.0

我有以下情况,我一直试图上班,但现在不能.我希望它通过并获得netsh命令的输出,但我需要的是检查三个输出.

如果我只运行它,这是命令输出:

netsh int tcp show global | where {$_ -match ': disabled'}


Receive-Side Scaling State          : disabled 
Chimney Offload State               : disabled 
Direct Cache Acess (DCA)            : disabled 
Receive Window Auto-Tuning Level    : disabled 
ECN Capability                      : disabled 
RFC 1323 Timestamps                 : disabled
Run Code Online (Sandbox Code Playgroud)

然后,如果我运行以下来获得例如"Chimney Offload State"并检查它是否设置为DISABLED然后它失败并且进入ELSE声明说它被设置为ENABLED当它不是...任何想法如何解决请这个:

码:

clear
$netsh = netsh int tcp show global | where {$_ -match ': disabled'}

if ($netsh -eq 'Chimney Offload State               : disabled')
{
    Write-Host "TCP Chimney disabled"
}
else
{
    Write-Host "TCP Chimney is ENABLED - WRONG!!!"
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*evy 6

另一种方法是对结果进行客观化:

$pso = New-Object -TypeName PSObject

netsh int tcp show global | where {$_ -match ':'} | foreach{
    $item = $_.Split(':') -replace '\s|-|\(|\)'
    $pso | Add-Member -MemberType NoteProperty -Name $item[0] -Value $item[1]
}

if($pso.ChimneyOffloadState -eq 'disabled')
{
   ...
}
Run Code Online (Sandbox Code Playgroud)