runas 和系统帐户的问题

ARF*_*ARF 4 windows runas vbscript windows-xp

我有一个进程在 Windows XP 计算机上的本地系统帐户下运行。然后,此进程尝试以系统上的另一个用户(例如 Max)身份使用其默认应用程序打开文件。Max 已登录并拥有桌面。

使用 vbscript 中的 ShellExecute 使用以下命令打开该文件:

runas /user:Max "cmd.exe /C start \"path_to_file\""
Run Code Online (Sandbox Code Playgroud)

上面在本地系统帐户下运行的进程执行完毕后,系统会提示 Max 输入密码。(因此,runas 组件显然至少已经启动了。)

只是,即使输入正确的密码后,runas 也会产生以下错误:

RUNAS ERROR: Unable to run - cmd.exe /C start "path_to_file"
5: Access is denied.
Run Code Online (Sandbox Code Playgroud)

我不清楚什么访问被拒绝。运行 cmd.exe /C start "path_to_file" as Max 工作得很好。因此,Max 显然可以访问“path_to_file”。

ARF*_*ARF 5

这似乎与 PSExec 遇到的问题相同。编辑:Runas 和 PSExec 通过调用 CreateProcessWithLogonW 生成具有不同凭据的新进程。但是,如果您使用“LocalSystem”帐户:

您无法从在“LocalSystem”帐户下运行的进程调用 CreateProcessWithLogonW,因为该函数使用调用者令牌中的登录 SID,而“LocalSystem”帐户的令牌不包含此 SID。

http://msdn.microsoft.com/en-us/library/ms682431%28VS.85%29.aspx


归档时间:

查看次数:

10248 次

最近记录:

7 年,6 月 前