任务运行使用SYSTEM或管理员用户?

时间:2018-05-07 20:16:58

标签: c# windows vb.net scheduled-tasks

我们有一个按计划运行的应用程序,在任务计划程序中设置。此任务由我们的配置应用程序以编程方式创建。

现在,应用程序需要访问特定目录中的文件,默认路径是当前登录用户主目录中的子目录。

我们已尝试使用SYSTEM帐户进行设置,但它无法访问文件,并且任务一运行就会退出。

通常情况下,我们使用管理员密码和标志进行设置,以便在用户登录时运行。但是,某些客户端在不需要登录的系统上安装此应用程序,意味着有空白或没有密码。如果我们设置任务并手动将其更改为在没有登录的情况下运行,则需要使用某种密码。

我如何以编程方式(使用C#或VB.net)创建此任务以在不会的位置运行:

  1. 需要管理员或用户密码才能运行或设置
  2. 能够访问“几乎”任何目录中的文件
  3. 能否运行是否有用户登录
  4. 无需创建新用户即可在
  5. 下运行此用户

    安装的系统范围从Windows Server 2008到Windows 10.

1 个答案:

答案 0 :(得分:0)

从您的问题来看,您似乎正在描述Window服务的用例。

具体来说,您需要一个将运行的程序:

  • 无用户互动
  • 无论用户是否已登录
  • 具有访问可能受UAC限制的文件系统部分所需的权限。

构建Windows服务将为您提供此功能,而无需模拟用户或处理存储管理员帐户凭据(尽管您需要具有最初安装它的权限)。

您可以使用任何.Net语言(包括C#和VB.NET)构建服务。 read the manual是一个非常好的库,用于在.net中构建Windows服务,我链接到的教程/文档可以帮助您入门。