Powershell 变量未在双引号字符串中展开
变量$RESUR没有在双引号字符串中展开。当scriptblock完成时,$restr确实有一个值,但它不会在here字符串中打印,我在正文中得到的只是简单的文本“domain.com AD复制当前有错误”Powershell 变量未在双引号字符串中展开,powershell,herestring,Powershell,Herestring,变量$RESUR没有在双引号字符串中展开。当scriptblock完成时,$restr确实有一个值,但它不会在here字符串中打印,我在正文中得到的只是简单的文本“domain.com AD复制当前有错误” 对于Clear变量restr不需要双引号。否则,错误发生在哪一行?是否在$body中?在本例中,编写$($restr)或作为格式“{0}”-f$restr。Alex,是的,它在$body中。我也不能用你的方法让它展开。当我收到邮件时,邮件的正文是空的。如果在运行此命令后在cli上键入$RES
对于
Clear变量
restr不需要双引号。否则,错误发生在哪一行?是否在$body
中?在本例中,编写$($restr)
或作为格式“{0}”-f$restr
。Alex,是的,它在$body中。我也不能用你的方法让它展开。当我收到邮件时,邮件的正文是空的。如果在运行此命令后在cli上键入$RESUR,则它确实有一个值$body=@“$($restr)”@字符串中的对象需要是“$($restr)”
。实际上,您可能想先通过管道引出字符串。
Clear-Variable -name "reperr"
$reperr = Get-ADReplicationPartnerMetadata -target * |? {$_.ConsecutiveReplicationFailures -eq "0"} |select Server, ConsecutiveReplicationFailures
$smtpserver = "10.25.172.2"
#$recipients = "email@emailaddy.com"
$recipients = "user@doamin.com"
$sender = "ad_repl_status@domain.com"
$subject = "DOMAIN.COM ACTIVE DIRECTORY REPLICATION ISSUES DETECTED!"
$body = @"
There are currently errors with domain.com AD replication.
$reperr
"@
if (!$reperr)
{
Write-Host "AD REPLICATION IS CLEAN"
}
else
{
Send-MailMessage -Priority High -SmtpServer $smtpserver -From $sender -To $recipients -Subject $subject -Body $body
}