$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 }
# Exit the script if there are no disabled receive locations
if ($ReceiveLocations.Count -eq 0)
{
exit
}
Пример:Получите Место Autohandling ложные оповещения по электронной почте
и
$mailBodyPT = ""
$mailTextReportPT = "There are: "
[STRING]$Subject = $SubjectPrefix + $BizTalkGroup
$mailTextReportPT += "in the BizTalk group: " + $BizTalkGroup + "."
#Send mail
foreach ($to in $EmailTo)
{
$Body = $HTMLmessage
#$SMTPClient = New-Object Net.Mail.SmtpClient($PSEmailServer)
$message = New-Object Net.Mail.MailMessage($from, $to, $Subject, $Body)
$message.IsBodyHtml = $true;
$SMTPClient.Send($message)
}
Вопрос: когда все РЛ имеют статус "отключен" и все эти RL включены в список исключений, значение t он переменной $ReceiveLocations
должен быть ложным, и мне нужно прекратить дальнейшую обработку в моем скрипте. (ничего не делать, если все RL находятся в списке исключений, просто выйти)
Но я все еще получаю ложные оповещения по электронной почте. Как мы можем установить логику для того, чтобы не получать оповещения по электронной почте, если бы не было дополнительных RL, найденных в $ReceiveLocations
?
Спасибо вам !!!!!! !!! –
++, но стоит отметить, что унифицированная обработка скаляров и коллекций, представленных в PSv3 (methinks) _does_, позволяет использовать '.Count' в нулевом выражении и разумно возвращает' 0': '$ null.Count -eq 0 'возвращает' $ true' в PSv3 +, тогда как он возвращает '$ false' в PSv2-. – mklement0
Я думал, что нет, но я просто подтвердил, и вы правы. Я бы предпочел не полагаться на это, хотя, если бы только по соображениям совместимости. –