【问题标题】:Get-WMIObject -class Win32_ComputerSystem | select username returns an empty outputGet-WMIObject -class Win32_ComputerSystem |选择用户名返回空输出
【发布时间】:2018-02-14 11:55:11
【问题描述】:

我有一个用户使用用户名“hero”通过 RDP 登录,但是当我使用该机器 Enter-PSSesssion 并运行 Get-WMIObject -class Win32_ComputerSystem | select username 时,我得到以下输出:

username
--------

【问题讨论】:

  • 您是否有兴趣获取有关登录用户的信息?
  • 根据docs:“在终端服务会话中,UserName 返回登录到控制台的用户的名称,而不是在终端服务会话期间登录的用户。”显然,没有人登录到控制台。为 RDP 会话执行此操作显然是 not that easy。 (解析qwinsta 输出和使用辅助模块是其他选项,但这可能是另一个问题的食物。)
  • @VivekKumar 我有兴趣获取当前登录用户的用户名并将其传递给脚本。
  • @JeroenMostert 它适用于某些机器。我们的用户都通过终端登录(Raspberry PI 通过 RDP 登录到 Windows 10 虚拟机),我在其中一些上获得了登录用户名,但有些返回空结果。
  • 然后检查qwinsta 在所有这些机器上返回的内容很有用。如果到处都是同样的事情,我会有点惊讶。

标签: powershell remoting logged


【解决方案1】:

这是来自here:的答案

# replace $computer with your remote machine
$csvtxt=QWINSTA /SERVER:$computer|%{[string]::Join(',',$_.Split(' ',
  [StringSplitOptions]::RemoveEmptyEntries))}
$csv=ConvertFrom-Csv $csvtxt
$csv

这会将 QWINSTA 的输出解析为 PSObject,从这里您可以执行以下操作:

$csv | Select USERNAME

【讨论】:

  • 谢谢。我使用了不同的函数,但它做的事情是一样的。
猜你喜欢
  • 2022-01-13
  • 2014-08-22
  • 1970-01-01
  • 2011-03-14
  • 1970-01-01
  • 2018-07-04
  • 2020-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多