从服务启动的进程无法在Win7中运行Word邮件合并

时间:2010-10-05 23:08:16

标签: .net vb.net

在Win7中,我正在运行一个服务,该服务启动一个托管办公室库(Word 2007)的进程,用于进行邮件合并。任何地方都没有接口。当我以服务作为父服务启动邮件合并过程时,Word无法使用我现有的邮件合并Word文档创建文档。起初我认为问题出在UAC上,所以我将清单更改为以管理员身份运行,但似乎这是无关紧要的。当我从资源管理器或非服务进程而不是它运行的服务启动进程时,能够成功加载Word和文档。我使用Process Monitor来查看是否可以获得有关可能发生的情况的线索。据我所知,当服务启动proc时,它正在使用系统配置文件,因为我看到文件路径,例如c:\ windows \ system32 \ config \ systemprofile和c:windows \ temp而不是我的用户配置文件文件夹C :\ Users \ UserName \ AppData \ Roaming \ Application \ etc.我的服务作为我的用户名而不是本地系统运行。我使用WindowsIdentity.GetCurrent()检查用户名。无论服务/非服务调用如何,我都会获得正确的用户名。我尝试更改Application对象中的Word启动路径,但同样只能在非服务模式下成功。我尝试在shell模式和非shell模式下从服务创建进程,它们的行为类似。我认为问题可能在于,当服务启动proc时,用户属于NT Authority / Service,但当以任何其他方式启动时,它是NT Authority / Interactive。

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)