我正在编写一个 PS 脚本,它将搜索终端服务器的文本文件,查找断开连接的会话并返回用户名和服务器名称。
目的是定期向会话断开的用户发送电子邮件,以尝试让他们正确注销。当他们不注销时,他们倾向于保持我们遗留的数据输入系统打开,这增加了索引/表损坏的发生率。
我到目前为止的代码是这样的:
$tsservers = Get-Content .\powershell\terminalservers.txt
foreach ($i in $tsservers){
#write-output $i
$Sessions = Get-TSSession -ComputerName $i | where {(($_.state -eq "Disconnected"))} | Select -ExpandProperty UserName
foreach ($session in $Sessions) {
$query = "SELECT * from ds_user where ds_sAMAccountName='$session'"
$user = Get-WmiObject -Query $query -Namespace "root\Directory\LDAP"
$user.DS_mail
}
}
使用它,我可以检索他们的用户名并查询 AD 以生成他们的电子邮件。我已经多次尝试将服务器属性用于该代码,但无济于事。
编辑1:理想情况下,我想传递多个属性(例如:断开连接时间等)。