我有一个 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 有权访问远程计算机,它将返回您需要的输出。