使用PowerShell监控具有自动修复功能的BizTalk Server端口

时间:2016-12-18 03:47:18

标签: powershell biztalk

首先尝试脚本将读取异常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

1 个答案:

答案 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 }

请注意,您不能将列表变量放在引号中。