【问题标题】:Impersonate user with powershell使用 powershell 模拟用户
【发布时间】:2015-07-09 19:28:03
【问题描述】:
是否可以使用 Powershell 脚本进行模拟。就像 C# 直接的函数一样
dwSessionId = WTSGetActiveConsoleSessionId()
WTSQueryUserToken(dwSessionId, ref hUserToken)
powershell 中是否有任何功能可以执行与上述相同的任务。
我想获取“已登录并正在运行桌面交互式会话”的当前用户的令牌。
【问题讨论】:
标签:
c#
powershell
powershell-2.0
powershell-3.0
impersonation
【解决方案1】:
似乎不可能开箱即用。
Windows API 不会公开您需要的信息,这就是为什么
Powershell 无法访问它们。它的一个故意的特点
安全子系统。唯一可行的方法是 Linux
机器信任呼叫机器,例如将它们加入
Active Directory(或任何 kerberos 设置)。
除此之外,您还需要存储和传递这些信息
不知何故。
您可以将 RSA 密钥存储在用户的密钥库中并在
运行时(使用 .NET Crypto/Keystore 库),因此您无需存储
与代码有关的关键。这样钥匙本身就是
受操作系统保护,仅在调用用户时可用
认证。您还需要安装一件事,但可能是
实现目标的唯一方法。
-引用自here
使用此方法 + qwinsta 命令获取活动会话将以某种方式为您提供所需的信息。