我在power-shell中有一个脚本,可以从多个服务器注销断开连接的会话,每当它从各个服务器注销断开连接的用户时,它就会向我发送一封电子邮件 . 截至目前,当脚本从多个服务器注销用户时,我收到多封电子邮件 . 我正在尝试添加功能,它列出了从脚本中注销的用户,并仅向我发送一封包含用户列表的电子邮件 . 脚本如下: -
$servers = get-content “C:\Users\Desktop\server.txt”
foreach($Server in $Servers) {
try {
$disconnectedusers = @()
query user /server:$Server 2>&1 | select -skip 1 | ? {($_ -split "\s+")[-5] -eq 'Disc'} | % {logoff ($_ -split "\s+")[-6] /server:$Server /V ; $disconnectedusers += ($_ -split "\s+")[1]}
If($disconnectedusers -ge 1)
{
Send-MailMessage -to xx@xx.com -from sc@sc.com -Subject "List of Disconnected Users Logged Off" -Body "Disconnected User session for user:-$disconnectedusers on server $Server has been Logged off." -SmtpServer smtp.gmail.com
}
}
catch {}
}
任何帮助都非常感谢 .
1 回答
这是一个修改版本,我感谢你,我将安排今晚的任务 . 我将电子邮件转换为HTML,因此它比您想要的更多,但我认为您会得到这个想法 .
主要的是在foreach循环外部创建数组以及发送if语句的电子邮件,否则它将在循环中处理每个服务器 .