是否有人知道以下代码需要哪些用户权限才能在Windows Server 2003上成功执行作为计划任务:

System.Diagnostics.Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName)

当未按计划任务运行时,即在登录用户下运行时,只要用户是“性能监视器用户”的成员,此代码就不会抛出异常。

在同一用户帐户下作为计划任务运行时,它会失败。

我能让它工作的唯一方法是将其作为本地管理员组的成员运行。

有什么想法吗?

有帮助吗?

解决方案

我最卑鄙的道歉。我使用的用户不是“性能监视器用户”的成员。基。

这对于System.Diagnostics的.NET Framework 1.1实现是必需的。

我已将用户添加到此论坛,一切顺利。

其他提示

您为计划任务运行的帐户提供了哪些用户权限分配?您需要在本地安全设置中提供有问题的帐户“以批处理作业登录”。

更新:您的应用是否会写入任何文件,如果是,则计划任务用户是否拥有足够的权限?

我刚刚敲了一个测试应用程序,它将Process.GetProcessesByName(Process.GetCurrentProcess()。ProcessName)返回的Process []数组中的进程名称写入文件,它可以正常工作...甚至以只是Users组成员的用户身份运行(甚至不是'Performance Monitor Users'的成员。

它写入的文件夹被分配了对SYSTEM,Administrators和计划任务用户的修改权限。

是否有机会粘贴您的代码或至少一个足够小的片段,证明exe作为计划任务失败,以便我们可以帮助诊断问题?

干杯结果 千电子伏

我在阅读流程名称时遇到的一个问题是,可能会禁用对性能计数器的访问。

破解您的注册表并查看此密钥是否存在: [HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务\ PerfProc \性能] “禁用性能计数器”= dword:00000001

您可以将其设置为零或删除它。

取自 MSDN

  

权限 LinkDemand - 已满   信任直接来电者。这个   成员不能部分使用   可信代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top