我创建了一个 Windows 服务,它在 Windows 启动时运行一个程序,但是使用这个解决方案,该程序在没有管理员权限的情况下运行。但是,如果我通过单击“开始”菜单上的程序快捷方式运行该程序,它将以管理员权限运行
我用这个代码来运行程序:
ApplicationLoader.PROCESS_INFORMATION procInfo;
ApplicationLoader.StartProcessAndBypassUAC(program_name, out procInfo);
Run Code Online (Sandbox Code Playgroud)
那么如何以管理员权限运行这个程序呢?谢谢
以管理员身份运行(程序)
右键单击并选择“以管理员身份运行”(一次性/临时)
或者右键单击并选择属性>兼容性>选中“以管理员身份运行此程序”(永久设置;也可以方便地在快捷方式上设置此属性(这基本上就是“开始”菜单项))
不以管理员身份运行(服务)
对于服务,要使其不以管理员身份运行,请打开服务管理单元(services.msc从命令提示符运行)并右键单击以编辑服务的属性,然后更新“登录”选项卡上的用户信息。
更新
看起来您已经使用了 CodeProject 文章中的一些代码,该文章包装了 Windows API 函数CreateProcessAsUser( http://www.codeproject.com/Articles/35773/Subverting-Vista-UAC-in-Both-and-bit-Archite ) 。请务必阅读该文章并按照步骤操作。您可能没有在服务上设置正确的用户,或者您当前的用户可能没有正确的权限,或者可能不是管理员的成员等。