一.启动时弹出UAC控制窗口
daemon程序在注册表中设置了自启动。因此在系统启动时,由于daemon程序需要管理员权限,所以在用户登录授权后,会弹出如下的用户账户控制窗口。
该弹出的UAC窗口,如果用户不手动点击确认按钮,会导致程序启动失败。实际应用中的情况是RDP远程启动时,出现该程序启动失败的现象。
二.解决弹框的方法
2.1 方法一:系统和安全控制
打开控制面板 => 系统和安全 => 从不通知
2.2 方法二:注册表修改
参考文档:https://blog.csdn.net/weixin_30487317/article/details/97497218
修改注册表的位置:HKEY_CURRENT_USERS\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers。在该位置增加新的注册表项为C:\Program Files (x86)\Uniontech P2V tool\uos-p2v-daemon.exe,修改值为RunAsInvoker。
注意:C:\Program Files (x86)\Uniontech P2V tool\uos-p2v-daemon.exe路径,中间有空格,但是这里不能用引号,否则设置不成功。
2.3 方法三:批处理启动程序
批处理中执行vb脚本,关闭授权对话框。解决办法是新增批处理文件,在文件中添加以下内容:
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
start uos-p2v-daemon.exe
2.4 方法四:程序内部提权
程序内部自己提管理员权限,参考程序内部提权代码,可能有不兼容系统的情况;