首页 > 解决方案 > UAC 和通过 Windows 服务执行作业

问题描述

我有一个执行其他工作的自定义服务。需要让它与 UAC 一起工作。

对于我正在调用的其中一个应用程序,我在清单中添加了以下行:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

尝试从服务调用此 EXE 时,出现错误:失败:请求的操作需要提升

这是调用EXE的代码,它非常通用:

                        p.StartInfo.UserName = szUser
                        p.StartInfo.Domain = szDomain
                        p.StartInfo.Password = securePassword
                        p.StartInfo.WorkingDirectory = sStartPath
                        p.StartInfo.FileName = jobExecutable
                        p.StartInfo.Arguments = jobArguments
                        p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
                        p.StartInfo.UseShellExecute = False
                        p.StartInfo.RedirectStandardInput = False
                        p.Start()

                        -- MORE CODE

那么,我需要采取什么措施来允许单个程序从非交互式服务“以管理员身份运行”?Windows 服务是否需要它自己的管理员清单?这会解决问题,还是需要其他代码更改?

标签: c#windows-servicesadministrator

解决方案


推荐阅读