1

我目前正在 VB.NET 中开发一个 ASP.NET 应用程序,它的功能之一是使用 Windows 任务计划程序。应用程序需要对此进行完全控制,因为它需要创建、修改、删除和运行任务。

我发现这个库对整个事情都有帮助,它运行良好,但只能在我的 Windows XP 机器上本地运行。一旦我将应用程序部署到 Windows Server 2003 上的 IIS6 并访问使用我的 Scheduler 对象的页面,我就会收到以下错误。

访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))

我在网上寻找了各种解决方案,包括使用无效的 CACLS 授予特定用户(甚至每个人)对 %windir%\Tasks 的权限,以及使用模拟并将 IUSER 添加到备份操作用户组中t 工作,因为应用程序必须使用 Windows 集成身份验证。

让我对整个情况感到困惑的一件事是,我在测试应用程序时登录的用户可以非常愉快地远程桌面并登录到服务器并使用任务计划程序。此外,如果我在 Visual Studio 中本地运行应用程序(仍然在同一用户下)并将应用程序指向服务器的任务计划程序,它工作正常。除此之外,如果我从服务器运行应用程序并将其指向我的本地任务计划程序,我会得到相同的“访问被拒绝”错误。所有这一切让我认为这不是任务计划程序权限的事情,而是与任务计划程序库试图使用的某些组件的权限有关。

有谁知道我能做些什么来解决这个问题,甚至只是一个指向正确方向的指针,因为这已经让我发疯了一天多。在 IIS 问题、模拟和 Windows Server 安全方面,我必须说我是一个新手。

非常感谢你

4

1 回答 1

0

嘿,我知道我可能迟到了,你可以做的是将任务设置为在 NT AUTHORITY\SYSTEM 下运行以使用它

(C#)

字符串 NULL = null ; task.SetAccountInformation("", NULL);

并为当前用户设置它给用户名

string username = "你的xp用户名";
或字符串 username = System.Security.Principal.WindowsIdentity.GetCurrent().Name ;字符串 NULL = null ;

task.SetAccountInformation(用户名,NULL);

我希望这对你有用!!!!让我知道它是怎么回事!

于 2010-12-05T08:05:11.243 回答