c# - 任务运行——使用SYSTEM还是Administrator用户?
问题描述
我们有一个按计划运行的应用程序,在任务计划程序中设置。此任务由我们的配置应用程序以编程方式创建。
现在,应用程序需要访问特定目录中的文件,默认路径是当前登录用户主目录中的子目录。
我们已尝试使用 SYSTEM 帐户进行设置,但它无权访问文件,并且任务在运行后立即退出。
通常,我们使用管理员的密码和标志设置它以在用户登录或未登录时运行。然而,一些客户在不需要登录的系统上安装这个应用程序,这意味着有一个空白或没有密码。如果我们设置任务并手动将其更改为在没有登录的情况下运行,则需要某种密码。
我如何以编程方式(使用 C# 或 VB.net)创建此任务以在它不会运行的地方运行:
- 需要管理员或用户密码才能运行或设置
- 能够访问“几乎”任何目录中的文件
- 无论任何用户是否登录都能够运行
- 不需要创建一个新用户来运行它
安装的系统范围从 Windows Server 2008 到 Windows 10。
解决方案
从您的问题来看,您似乎正在描述 Window 服务的用例。
具体来说,您需要一个可以运行的程序:
- 无需用户交互
- 无论用户是否登录
- 具有访问可能受 UAC 限制的文件系统部分所需的权限。
构建 Windows 服务将为您提供此功能,而无需模拟用户或处理存储管理员帐户凭据(尽管您需要具有最初安装它的权限)。
您可以使用任何 .Net 语言(包括 C# 和 VB.NET)构建服务。 Topshelf是一个非常好的库,用于在 .net 中构建 Windows 服务,我链接到的教程/文档可以帮助您入门。
推荐阅读
- python - 如何在 Keras 中使用 fit_generator 针对损失绘制 steps_per_epoch?
- arp - ovs-ofctl dl_dst 不等于
- api - Retrofit2 使用 GET 返回一个空响应正文
- c++ - 伏尔甘;从 SPIR-V 着色器获取制服和属性列表
- virtual-machine - 使用 gcloud,我如何找到虚拟机名称?
- artifactory - 由于 derby 文件日志大小,Artifactory 无法初始化
- javascript - JS/jQuery 删除带有或不带有斜杠的 URL 的最后一部分
- python - 启动 anaconda Prompt 后出现错误系统找不到指定的路径
- c++ - 为什么互斥锁可以在 C++ 中锁定两次而不解锁?
- php - 如何使用 ?在网址中?