在本地系统下运行的 Windows 服务可以在运行它的计算机上创建新文件吗?

Posted

技术标签:

【中文标题】在本地系统下运行的 Windows 服务可以在运行它的计算机上创建新文件吗?【英文标题】:Can a Windows service running under Local System create new files on the computer it is running on? 【发布时间】:2011-04-08 18:50:08 【问题描述】:

我创建了一个 Windows 服务,该服务具有创建新文件的功能。

它在“本地系统帐户”下运行,“允许服务与桌面交互”设置为 true。

在这个账号下运行时可以在本地创建文件吗?

由于它在未安装合适调试器的 Lab Manager 环境中运行,因此我无法调试它以获得确切的错误。

在我看来这是一个基于服务何时崩溃的权限问题,所以在尝试其他任何事情之前我需要的简单答案是这个帐户可以在本地系统上创建文件吗?

我似乎找不到有答案的网站...?

任何帮助将不胜感激。

【问题讨论】:

你想把那个文件写到哪里? 到本地硬盘驱动器,但是该驱动器是通过网络共享的。实际的驱动器和文件夹等位于运行服务的同一台机器上,但如果有区别,该文件夹将共享给网络上的其他机器 【参考方案1】:

“允许服务与桌面交互”只需要能够为登录用户显示消息。

本地系统应具有对本地硬盘驱动器的写入权限。为此,您无法访问映射的网络驱动器或任何其他网络资源。

【讨论】:

在网络上共享的本地文件夹呢?即使文件夹在本地计算机上,这是否会将其变成 Windows 眼中的网络资源? 我不确定您是否使用 UNC 路径 ("\\computername\sharename")。使用本地路径(“C:\sharedfolder”)访问它应该可以正常工作。 如果您在域中,该服务将使用域计算机帐户向其他系统进行身份验证。如果不在域中,则需要使用 NetUseAdd 指定远程用户名和密码来设置远程路径。

以上是关于在本地系统下运行的 Windows 服务可以在运行它的计算机上创建新文件吗?的主要内容,如果未能解决你的问题,请参考以下文章

.NET Windows 7 在使用“本地系统帐户”在“Windows 服务”下运行时截取屏幕截图不起作用

如何在本地系统帐户下运行 CMD.exe?

以 Windows 登录用户身份从服务启动进程

如何从本地网络访问运行在 WSL(Linux 的 Windows 子系统)上的 Web 服务器

以特权用户身份运行 Windows 服务

linux服务器上的程序下载到本地windows上怎样运行