0

我们从一个 Web 服务中执行一个脚本,该脚本在 VBScript 中执行一些操作。此脚本从命令行运行而不会出现错误。当我们使用 ProcessStartInfo 从服务运行此脚本时,当运行该进程的用户未登录时,它不会执行。我们收到此错误:CScript 错误:加载您的设置失败。(访问被拒绝。)虽然,当执行服务的用户通过远程桌面登录时,服务运行成功。什么可能导致这种情况,我们如何解决这个问题?

4

1 回答 1

0

当您收到“访问被拒绝”消息时,运行 VBScript 的用户身份是什么?我敢打赌NT AUTHORITY\NETWORK SERVICE,这可以解释它。

当您在通过 cmd 登录或在资源管理器中双击时运行任何内容时,该进程将在当前用户的用户身份(安全上下文)下运行。当您在本地控制台会话(例如服务会话)之外运行它时,它通常以父服务进程的用户身份运行。

“服务”是指 Windows 服务(您在 Services.msc 中看到的)还是您的 Web 服务?如果它是 Web 服务,那么它会在当前 IIS 应用程序池的用户身份下运行。

尝试从您的 Web 服务脚本运行“whoami”(它是一个命令行程序)并将控制台输出重定向到一个文件。这将告诉您当前正在使用的用户身份。

于 2012-07-17T12:31:05.953 回答