Powershell 电子邮件通知应该从提到的服务器触发

Powershell 电子邮件通知应该从提到的服务器触发,powershell,Powershell,我已经创建了一个函数,在一个公共脚本中,这个公共脚本由多个服务器使用,我想添加主机名,这样电子邮件通知应该适用于特定的服务器 类似于ser1/ser2/ser3/ser4-common.ps1 电子邮件通知应仅适用于ser2 我希望电子邮件通知应该只从ser2触发,而不是从其他服务器触发 如何在下面的脚本中添加主机名/服务器名 function SendMail { $date_DM=Get-date Write-Host "Sending Email" $smtpServer = "$MAI

我已经创建了一个函数,在一个公共脚本中,这个公共脚本由多个服务器使用,我想添加主机名,这样电子邮件通知应该适用于特定的服务器

类似于ser1/ser2/ser3/ser4-common.ps1

电子邮件通知应仅适用于ser2

我希望电子邮件通知应该只从ser2触发,而不是从其他服务器触发

如何在下面的脚本中添加主机名/服务器名

function SendMail { 
$date_DM=Get-date
Write-Host "Sending Email"
$smtpServer = "$MAIL_SERVER"

$msg = new-object Net.Mail.MailMessage
$att = new-object Net.Mail.Attachment($UPDATE_LOG_FILE)
$smtp = new-object Net.Mail.SmtpClient($smtpServer)

$msg.From = "$MAIL_SENDER"
$msg.To.Add("$MAIL_RECIPIENT")
$msg.Subject = "Script Failed With 1"
$msg.Body = "script is failed Today $date_DM, Please have a look into Log Files \\$HOSTNAME_PROD\data$\script_logs"
$msg.Attachments.Add($att)

$smtp.Send($msg)
$att.Dispose()

}
======================================

调用脚本-

  in log file if I get  dc=1 (other code)
    SendMail
任何帮助。多谢各位

问候 纳文

像这样的吗

function SendMail { 
if ([environment]::MachineName -ne 'ser2'){return}

$date_DM=Get-date
Write-Host "Sending Email"
$smtpServer = "$MAIL_SERVER"

$msg = new-object Net.Mail.MailMessage
$att = new-object Net.Mail.Attachment($UPDATE_LOG_FILE)
$smtp = new-object Net.Mail.SmtpClient($smtpServer)

$msg.From = "$MAIL_SENDER"
$msg.To.Add("$MAIL_RECIPIENT")
$msg.Subject = "Script Failed on With 1"
$msg.Body = "script is failed Today $date_DM, Please have a look into Log Files \\$HOSTNAME_PROD\data$\script_logs"
$msg.Attachments.Add($att)

$smtp.Send($msg)
$att.Dispose()

}

不,我希望电子邮件通知应该只从ser2触发,而不是从其他服务器触发。更新的答案。但是您可能应该根据调用脚本中的服务器名称来决定是否调用函数……嗯?因此,您只希望在
ser2
上运行脚本时发送statusmail?为什么不修改脚本,使其仅在computername等于
ser2
时调用函数?比如:
if($env:COMPUTERNAME-eq“ser2”){SendMail}
。如果你因为你的问题没有明确说明而不能投反对票,你最好忽略这个问题。你让人们不得不猜测你想要的是什么,而你发布的“调用脚本”不是脚本,因此没有人可以告诉你如何修改它来做你想要的。调用脚本是由另一个exe执行的,该代码不可见,我真的不理解downvote,感谢downvote。我真的很抱歉,您无法理解我的要求。请为将要使用该功能的服务器创建一个每行一个服务器名的文件。然后将函数的内容放在
if((获取内容“c:\temp\notifylist.txt”)-包含$env:COMPUTERNAME){…here..}