powershell 你能用PSCredential对象运行quser吗?

sc4hvdpw  于 12个月前  发布在  Shell
关注(0)|答案(2)|浏览(136)

问题

我正在编写SolarWinds SAM脚本,它可以监视远程计算机上登录的用户。我想使用quser而不是WMI/CIM based solution,因为quser提供了我正在寻找的数据。
关键是监控应用程序提供了一个PSCredential对象,用于与远程机器进行身份验证,而quser不能使用这个对象。

代码

当运行时没有凭证对象,我得到以下内容。

quser /server:'testserver1'

字符串

输出

No User exists for *

vzgqcmou

vzgqcmou1#

回复

一旦我意识到这一点,这个难题的答案就非常明显了:您可以简单地使用带有-Credential-ScriptBlock参数的Invoke-Command小工具,在远程服务器上使用适当的用户上下文运行quser命令。
最后一点注意-如果您需要帮助将quser的输出解析为更PowerShell友好的对象,请参阅Get-LoggedOnUser。这是一个很棒的脚本,它处理从quser输出中获取属性所需的所有字符串解析。

代码

$Server = 'testserver1'
$Credential = Get-Credential
Invoke-Command -ComputerName $Server -ScriptBlock { quser } -Credential $Credential

字符串

输出

USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
 a-srz                 rdp-tcp#0           2  Active         19  6/2/2020 10:19 AM

dgsult0t

dgsult0t2#

你也可以使用下面的命令:

quser -server $server

字符串

相关问题