【发布时间】:2022-03-04 03:51:24
【问题描述】:
请解释我如何检查DynamicPortRangeStartPort 值在get-nettcpsetting cmdlet 中的输出。
输出如下所示:
get-nettcpsetting | select DynamicPortRangeStartPort
DynamicPortRangeStartPort
-------------------------
1024
1024
1024
1024
1024
cmdlet 返回一个设置数组,我只想检查DynamicPortRangeStartPort 是否是任何返回项上的值1024。
我不确定我错过了什么。
我试过了:
if ((get-nettcpsetting | Select DynamicPortRangeStartPort)[1] -eq 1024) { write-host "Yes" }
(get-nettcpsetting | select DynamicPortRangeStartPort) -contains "1024"
(get-nettcpsetting | select DynamicPortRangeStartPort) -in "1024"
(get-nettcpsetting | select DynamicPortRangeStartPort).Contains(1024)
(get-nettcpsetting | select DynamicPortRangeStartPort).Contains("1024")
原谅我的无知...
【问题讨论】:
-
Where-Object是你的朋友 :)if(Get-NetTCPSetting |Where DynamicPortRangeStartPort -eq 1024){ ... } -
简而言之:
Select-Object(select) 默认返回 a[pscustomobject]实例,它具有 请求的属性 - 即使您' 只要求 single 属性。要仅获取该属性的值,请改用-ExpandProperty <propertyName>- 有关详细信息和替代方法,请参阅linked answer。
标签: powershell