我正在尝试从系统帐户获取当前会话的用户名。我读过这篇文章,但没有任何解决方案可以可靠地工作:
我的想法已经用完了!任何帮助表示赞赏!
当我说“当前会话”时,可能有多个活动用户会话同时登录到 RDS:
用户A(活跃) 用户B(活跃) 用户C(活跃)
但是,如果我是 UserB 并且当前在我的 PowerShell 脚本作为 SYSTEM 帐户运行时登录,我希望它返回 UserB。不是 NT Authority\SYSTEM。不是用户A,也不是用户C。
要仅获取交互式登录会话,请查询
Win32_LogonSession
类并筛选 LogonType
- 获取关联的 Win32_Account
实例以识别所属用户帐户:
Get-CimInstance -ClassName Win32_LogonSession -Filter "LogonType = 2" |Get-CimAssociatedInstance -ResultClassName Win32_Account |Sort-Object Caption -Unique