组件服务尝试打印时没有打印机显示

No printers showing when component service tries to print

我有这个旧组件服务(COM+ 应用程序)被调用并尝试打印文档。它 运行 是一个特定的用户,充当一个从未实际登录过的服务帐户。出于某种原因,当我调用 COM+ 应用程序时,我的调试输出显示列出了 0 台打印机。但是,如果我以该用户身份打开命令提示符,我可以进行相同的调用并查看所有打印机。

这就像要求在显示打印机之前加载配置文件一样。有没有解决的办法?目前我唯一的解决办法是做一些非常疯狂的事情,比如每天安排一个任务 运行,持续 1 天,即 运行 秒 cmd.exe /c "pause"。过去我不必这样做(这已经使用了很多年)。我记得一些关于不卸载可能对我有帮助的注册表配置文件。有什么我可以添加到我的应用程序 (com+ 应用程序) 中的东西可以加载打印机并使它们对我可用吗?

看来我是在正确的轨道上,只是需要确切地知道要搜索什么。看来 Do not forcefully unload the user registry at user logoff 就是我想要的。

参考:https://docs.microsoft.com/en-us/troubleshoot/windows-server/application-management/complus-server-application-not-work

将此添加到您的注册表将阻止配置文件在登录一次后注销。

保存一个包含以下内容的文件并将其命名为 Disable Profile Logoff.reg,然后双击它以将其添加到您的注册表。

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
"DisableForceUnload"=dword:00000001