首先尝试脚本将读取异常RL名称不等于“FTP_XML”
[ARRAY]$ReceiveLocations = Get-WmiObject MSBTS_ReceiveLocation -Namespace 'root\MicrosoftBizTalkServer' -Filter '(IsDisabled = True)' |
Where-Object { $_.Name -ne "FTP_XML" }
$ReceiveLocations
第二次尝试脚本不会读取异常RLS名称不等于“FTP_XML”,“RL2”并给出所有已禁用的RLS
[ARRAY]$ReceiveLocations = Get-WmiObject MSBTS_ReceiveLocation -Namespace 'root\MicrosoftBizTalkServer' -Filter '(IsDisabled = True)' |
Where-Object { $_.Name -ne "FTP_XML", "RL2" }
$ReceiveLocations
如何将异常列表包含在异常列表中?
OR
我们可以从文本文件中读取如下变量,但它也不能从TEXT文件读取(所有RL列表都以新行开头)并且给我所有禁用的RL。
[ARRAY]$exceptionList = Get-ChildItem C:\Users\Dipen\Desktop \Exception_List.txt
[ARRAY]$ReceiveLocations = Get-WmiObject MSBTS_ReceiveLocation -Namespace 'root\MicrosoftBizTalkServer' -Filter '(IsDisabled = True)' |
Where-Object { $_.Name -ne "$exceptionList" }
$ReceiveLocations
答案 0 :(得分:1)
使用-ne
将检查单个值是否与值列表不同,显然将始终评估为true。用于检查值列表中是否不存在给定值的运算符是-notcontains
($list -notcontains $value
)。在PowerShell v3及更新版本上,您还可以使用运算符-notin
($value -notin $list
),这对大多数用户来说可能更为自然。
$ReceiveLocations = Get-WmiObject MSBTS_ReceiveLocation -Namespace 'root\MicrosoftBizTalkServer' -Filter '(IsDisabled = True)' |
Where-Object { 'FTP_XML', 'RL2' -notcontains $_.Name }
要从文件中读取值列表,请使用Get-Content
作为问题评论中已提及的Abhijith pk。
$exceptionList = Get-Content C:\Users\Dipen\Desktop \Exception_List.txt
$ReceiveLocations = Get-WmiObject MSBTS_ReceiveLocation -Namespace 'root\MicrosoftBizTalkServer' -Filter '(IsDisabled = True)' |
Where-Object { $exceptionList -notcontains $_.Name }
请注意,您不能将列表变量放在引号中。