从系统帐户获取远程桌面服务 (RDS) 上当前会话的用户名?

问题描述 投票:0回答:1

我正在尝试从系统帐户获取当前会话的用户名。我读过这篇文章,但没有任何解决方案可以可靠地工作:

以系统身份运行时查找当前登录的用户(无环境变量)

  • 让用户运行 explorer.exe 不起作用,因为 RDS 会话上可能运行多个 explorer.exe 进程,并且您无法破译哪个是当前会话。
  • Quser、查询会话等返回的 V 形(表示当前会话?)不可靠(有时 V 形位于错误的“活动”用户旁边)
  • Win32_计算机系统无法运行

我的想法已经用完了!任何帮助表示赞赏!

当我说“当前会话”时,可能有多个活动用户会话同时登录到 RDS:

用户A(活跃) 用户B(活跃) 用户C(活跃)

但是,如果我是 UserB 并且当前在我的 PowerShell 脚本作为 SYSTEM 帐户运行时登录,我希望它返回 UserB。不是 NT Authority\SYSTEM。不是用户A,也不是用户C。

powershell
1个回答
1
投票

要仅获取交互式登录会话,请查询

Win32_LogonSession
类并筛选
LogonType
- 获取关联的
Win32_Account
实例以识别所属用户帐户:

Get-CimInstance -ClassName Win32_LogonSession -Filter "LogonType = 2" |Get-CimAssociatedInstance -ResultClassName Win32_Account |Sort-Object Caption -Unique
© www.soinside.com 2019 - 2024. All rights reserved.