Powershell 脚本返回域上所有登录的用户

Powershell 脚本返回域上所有登录的用户

我有一个 powershell 脚本,它返回所有登录到域中所有机器的用户。出于某种原因,它在单独一行运行时工作正常

query session console /server:computer1

但是,在循环文件中所有计算机名称的代码中,我不断收到无效参数错误。

$cred = Get-Credential -Credential 'domain\administrator'
$CompName = Get-Content "C:\temp\comps.txt"

foreach($Comp in $CompName)
{
    query session console /server:$comp -Credential $cred 
}   

C:\temp\comps.txt 如下所示:

Computer1
Computer2
Computer3   

我似乎不知道问题是什么。

答案1

你的脚本发生了什么:

  • 拒绝访问 - 您的查询会话(使用您当前的用户名)对“远程计算机”没有管理员权限。
  • 无效参数错误 - 因为“查询会话”不接受 -Credential 作为其命令开关。

假设您拥有在另一台计算机上可以使用的用户名和凭据(具有管理员权限) - 您需要结合 runas 运行您的 powershell(和查询会话)。

例如:runas /user:user@domain "powershell.exe codeabove.ps1"

这将允许您的 powershell 会话以该 user@domain 的身份运行,然后它将运行 powershell 脚本并以该 user@domain 的身份运行查询会话。假设 user@domain 有权访问远程计算机,它将返回您需要的输出。

相关内容