答案1
不。Windows 不提供您在此处询问的用户模拟功能。Windowssudo
中没有等效功能,甚至没有近似功能。
我目前找不到该文档或文章,但不允许sudo
在 Windows 中使用 -style 用户模拟功能是 NT 内核早期的一项刻意设计决定,因此,我们非常坚持这样做。(甚至没有任何巧妙的解决方法或黑客可以像通常那样规避它 - 这个问题根深蒂固,难以绕过。)
在 Windows 世界中,为了以用户身份执行 [实际上] 任何操作(无论是运行程序、针对 AD 进行身份验证还是其他任何操作),您需要一个访问令牌,用于识别和验证用户的访问/权限。此访问令牌是仅有的在提供用户的帐户名和密码时创建(登录时,等等RunAs
)。
对你的目的而言,潜在的重要警告是,现有的访问令牌可以重复进入模拟令牌,可以传递给ImpersonateLoggedOnUser 函数,可用于模拟登录用户的安全上下文。
鉴于您是那些可能知道如何使用.NET 的神秘魔法的开发人员/程序员之一,这可能对您编写小型应用程序来实现您想要做的事情很有用。
但是,准确地说,没有可以运行的命令或可以遵循的过程来模拟 Windows 用户,除非编写一个代码(或找到别人编写的代码),即使这样,它也仅限于具有访问令牌的用户(已登录的用户)。
答案2
如果用户已登录,您可以使用类似owexec
以他们的身份启动进程。它不需要他们的密码。我们使用它来做一些与您描述的非常相似的事情,除了终端服务部分。
您可能需要添加一些脚本来收集所有活动会话,然后使用该选项分别定位它们-u
。
答案3
如果您谈论的是本地软件而不是 RemoteApp,那么我猜在您的情况下最有用的是使用 PsExec:
http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
有关更多示例和用法,你可以访问http://windowsitpro.com/systems-management/psexec