Windows 7 本地系统和本地服务的服务区别

Posted

技术标签:

【中文标题】Windows 7 本地系统和本地服务的服务区别【英文标题】:Windows 7 Service differences between local system and local service 【发布时间】:2011-03-19 00:10:44 【问题描述】:

我有一个相当复杂的工具链,所以准备一篇冗长的帖子,直到解决问题:

我设法获得了 PDFCreator 和一个在 Windows 7 下以服务器模式运行的虚拟 PDF 创建打印机作为服务。该过程的下一步是 PDFCreator 在创建 PDF 后调用 VBScript。该脚本通过 WebService 将 PDF 上传到我们的服务器,并轮询服务器以获取生成的 PDF。下载生成的 PDF 后,VBScript 需要将其打印到配置的打印机。

现在我使用 PDFCreator 的集成 COM 对象进行打印,它可以访问 GhostScript。对于启动 PDFCreator 服务的任何帐户,这在 Windows XP 上都能完美运行。例如,作为域用户可以从 VBScript 访问共享打印机,因为用户上下文与 PDFCreator 服务相同。

现在我在 Windows 7 上尝试了相同的操作,并像以前一样使用“本地系统”帐户,因为我的测试打印机是本地打印机(并且可以工作,即 TestPage)。效果是 wscript 留在任务管理器中并且永远不会完成。接下来,我为该服务激活了交互模式,并看到 Ghostscript 要求打印机打印到。打印机确实存在,因为我在 VBScript 中调用 GS 之前检查过,但出于任何原因,GhostScript 看不到打印机,尽管在打开的对话框中选择打印机时,打印机就在那里。

经过几天的搜索,甚至尝试为服务提供专用的新管理员帐户都没有成功,但我终于想出了一种让它工作的方法。将 PDFCreator 服务的用户更改为“区域设置服务”我首先收到一个错误,即 PDFCreator COM 对象创建失败。好的,我认为这是有道理的,因为“语言环境服务”的权限比“语言环境系统”少。我通过更改 comexp.msc 下的访问权限并授予本地和远程 COM 和脚本访问的“区域设置服务”权限来解决此限制。瞧,一切正常。

我不明白的是:为什么“语言环境服务”帐户下的Ghostscript能够找到打印机,尽管该帐户的权限比“语言环境系统”少?

并且:我需要为“语言环境系统”或任何其他用户帐户设置哪种访问权限才能使其正常工作?

或者:这些帐户之间是否有详细差异的完整列表?

非常感谢你,打招呼, 加德

【问题讨论】:

【参考方案1】:

可以在这里找到答案:KB184291

这是关于在“本地系统”帐户下运行的 ASP/IIS 并且无法打印,因为打印机在 .DEFAULT 用户下不可用。复制注册表项会有所帮助。

问候, 加德

【讨论】:

以上是关于Windows 7 本地系统和本地服务的服务区别的主要内容,如果未能解决你的问题,请参考以下文章

Windows 7无法启动Diagnostic Policy Service 怎么办?

7.Azure文件(文件共享)-NAS(上)

7.Azure文件(文件共享)-NAS(上)

windows系统本地与远程服务器间的文件传输

CentOS 7部署NFS存储服务器

Rails 应用程序无法通过命名管道/套接字连接到本地 MySQL 服务器 --- Windows 7 x64