仍在努力学习Powershell,并且遇到一些简单的问题,因为它适用于我编写的其他脚本,因此必须缺少一些愚蠢的东西。 基本上我需要确定Nic是否已启用但未附加到任何内容,因此我可以添加另一个命令来禁用它。如果它已被禁用,我只需要输出True。 值.netconnectionstatus返回0,所以我期待-like命令 我只是自己使用$ disabled来检查我的输出。
$disabled = gwmi win32_networkadapter | where {$_.PhysicalAdapter -eq "True"-and $_.netenabled -ne "True"}`
| % { '{0,10} {1,20}' -f $_.netenabled,$_.netconnectionstatus}
$disabled
$_.netconnectionstatus -like "0"
答案 0 :(得分:1)
-like和-match运算符仅在字符串比较中才有意义。
在这里-eq是最好的选择,如果你期望整数,则没有引号。此外 - 如果您有布尔值,则无需将其与任何内容进行比较。在此处,如果您要更改:$_.NetEnabled -ne 'False'
,您将得到完全相同的结果...请改用where { $_.PhysicalAdapter -and (-not $_.NetEnabled)}
。如果你决定改变它,你想要自己用脚射击,因为PS对待弦的方式([bool]'False'-eq $ true)。
另外:你的$ _在foreach-object scriptblock之外是空白的。因此,你得到$ false。