【发布时间】:2021-03-30 04:57:35
【问题描述】:
我正在尝试使用 Get-TSSession 检查断开连接的会话,但遇到了问题。 我使用 Get-ADComputer 拉出我的服务器列表,虽然 Get-ADComputer 完全按照我想要的方式工作,但当我使用 Get-TSSession 时,出于某种原因它只拉出我的域控制器,我不确定为什么。
例如,这里是我尝试运行的整个脚本,但就像我说的那样,它只拉取 4 个域控制器服务器,仅此而已。
Import-Module ActiveDirectory
Import-Module PSTerminalServices
$Servers = Get-ADComputer -Filter {(OperatingSystem -like "*server*") -and (Enabled -eq "True")} | Select-Object -ExpandProperty Name
ForEach ($Server in $Servers)
{
Get-TSSession -ComputerName $Server
}
现在,如果我运行同样的命令,但它本身会给我返回数十台服务器。
Get-ADComputer -Filter {(OperatingSystem -like "*server*") -and (Enabled -eq "True")} | Select-Object -ExpandProperty Name
我错过了什么吗?
【问题讨论】:
-
您知道您是否有权在除您的 DC 之外的任何服务器上运行
Get-TSSession吗?您使用的是域管理员帐户还是什么?如果您手动执行该命令,您是否能够针对其他服务器之一运行该命令? -
是的,我可以做任何我需要做的事情,因为我有一个域管理员帐户。我已经按名称尝试使用特定服务器而不是从 AD 中提取它,它就像一个魅力。我不知道我做错了什么。
-
我建议尝试详细日志记录。试试
ForEach ($Server in $Servers) { Get-TSSession -ComputerName $Server -Verbose },看看这是否能说明问题。 -
谢谢@TheMadTechnician,不幸的是这并没有真正帮助。它只显示到域控制器的连接过程。它甚至从不尝试攻击其他服务器。
-
这强烈暗示您只有
$Servers中的域控制器。你能在点击ForEach循环之前回显$Servers中的内容吗?您运行脚本的方式是否与运行单个命令的方式不同?
标签: powershell