1. UAC
1.1 UAC选项
1.2 触发UAC警告条件
1.3 避免UAC提示的方法
2. 提供管理员权限-任务计划方式
2.1 Windows 任务计划
2.2 快捷方式
2.3 运行
2.4 更便捷的UAC白名单小工具
3. 不提供管理员权限-RUNASINVOKER
3.1 RUNASINVOKER
3.2 补充说明
4. 应用程序兼容性工具包 (ACT)

1. UAC

用户帐户控制 (UAC) User Account Control 旨在防止对 Windows 进行未经授权的更改。 
当作需要管理员级权限时,UAC 会提示你批准或拒绝更改。这有助于保护 Windows 设备免受恶意软件和未经授权的修改的影响。 
 
可以通过打开控制面板 > 系统和安全 > 更改用户帐户控制设置来更改 UAC 行为。
将滑块移动到所需的通知级别,然后选择“ 确定”以保存更改。

1.1 UAC选项

选项如下,中间2项基本一致,只是第三项更加友好些。
  • 始终通知
  • 仅当应用尝试对我的计算机进行更改时通知我 (默认)
  • 仅当程序尝试更改我的计算机时通知我 (不调暗我的桌面)
  • 从不通知 (禁用 UAC)

1.2 触发UAC警告条件

  • 安装或卸载程序
  • 账户设置
  • 系统各种设置
  • 注册表操作
  • 访问系统目录,程序目录
  • 访问其他用户目录
  • 安装驱动
  • 设置共享
  • … 
更详细的列表: 

1.3 避免UAC提示的方法

禁用 UAC 是不推荐的。但可以针对个别软件进行相应的设置,规避UAC提示。
 
避免UAC提示的方法有: 
  • 提供管理员权限
    • Windows 任务计划
    • 更便捷的UAC白名单小工具
  • 不提供管理员权限
    • [RUNASINVOKER] 强制软件 [以普通用户身份运行] 以取消 UAC 提示
  • 微软应用程序兼容性工具包 (ACT) Application Compatibility Toolkit

2. 提供管理员权限-任务计划方式

方法有点绕,效果还不错。步骤是先建立一个任务计划,再建立对应的快捷方式。参照原文连接:

2.1 Windows 任务计划

 右键开始菜单,选择计算机管理(cmd: compmgmt)
计算机管理中,依次点开: 系统工具\任务计划程序\任务计划执行库
菜单栏: 操作\创建任务
  1. 创建任务界面\常规页签 
    • 填写名称,比如: RunCMDAdmin
    • 勾选 使用最高权限运行
  2. 创建任务界面\操作页签
    • 点击 [新建]
  3. 新建操作界面\
    • 程序或脚本: C:\Windows\System32\cmd.exe 
    • 起始于(可选): D:\Tom\Documents
      • 说明: 起始于路径,可以定义打开cmd时的初始位置,对于需要将命令执行结果写入文本文件的需要。可以输入保存文件的位置。
    • 点击[确定]
计划任务建好,可以右键计划任务名称,选择运行看看。
打开的cmd是管理员权限,且过程没有弹出UAC警告。

2.2 快捷方式

桌面空白处右键菜单 选择 新建\快捷方式
快捷方式的位置填写: schtasks.exe /run /tn "RunCMDAdmin" 
点击 下一步 填写快捷方式名称: cmdAdmin 点击[完成]

2.3 运行

双击创建的快捷方式就会发现不会弹出 UAC 并且 [以管理员身份运行] 了。 

2.4 更便捷的UAC白名单小工具

第三方小工具,把前面的计划任务到快捷方式的操作打包成的便捷的小工具。
约50k的小工具,界面很简单,下载下来就能用。原理就是前面的添加计划任务方式。

3. 不提供管理员权限-RUNASINVOKER

强制软件 [以普通用户身份运行] 以取消 UAC 提示。参照原文连接:

3.1 RUNASINVOKER

regedit 打开注册表编辑器
计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
进入 Layers 文件夹后,新建一个 [字符串值]。
字符串名称就是你指定的软件完整路径, 无论路径里有没有空格都不需要加上引号!比如: 
F:\Program Files\HoYoPlay\games\Genshin Impact game\GenshinImpact.exe
 
然后右键刚刚新建的字符串 - 修改 - 数值数据:RUNASINVOKER
完成,可以回到桌面打开GenshinImpact看看,没有UAC警告,运行正常。
 
注意:如果你打算添加新字符串值时,发现该注册表项已存在了,那么说明你设置过该软件的 兼容性(右键 - 属性 - 兼容性 选项卡),遇到这种情况,你只需追加到最后就行了。
例如注册表已存在的数值数据为:~ WIN7RTM
那么就改成:~ WIN7RTM RUNASINVOKER

3.2 补充说明

原文添加了 WeGame 的 RUNASINVOKER。我这里添加了 GenshinImpact。
想想也是,作为普通游戏,只是在首次安装游戏时需要权限。平时运行时并不需要管理员权限。
最多在新账户首次登录时或许需要权限,比如将用户信息写入注册表,或者建立新账户目录等... 并不需要打开游戏时就获取管理员权限。
安全的做法是打开游戏并不需要管理员权限,但当修改新账号时触发新账号验证程序的时刻触发 UAC 警告。提升权限完成验证。完成后则回到普通用户模式运行程序。
 
总结一下,游戏类的都可以用这种方式规避UAC警告。不要使用前面计划任务提权的方式。
如果游戏程序拥有管理员权限,那么在你全屏沉浸式游玩的过程中,游戏程序会不会在后台做些奇怪的事。若设置为RUNASINVOKER,那么UAC会阻挡奇怪的事情发生。
 
注意事项:这种方法仅适用于需要较低权限运行的程序,对于需要管理员权限才能正常工作的程序,应谨慎使用,以免影响程序功能。

4. 应用程序兼容性工具包 (ACT)

Application Compatibility Toolkit
Microsoft应用程序兼容性工具包(ACT)是一种生命周期管理工具,可帮助识别和管理整个应用程序组合,降低解决应用程序兼容性问题所涉及的成本和时间,并帮助快速部署 Windows 和 Windows 更新。 
Windows 10 应用程序兼容性工具包随 Windows 10 ADK 一起发布: 
 
使用 应用程序兼容性工具包 ACT ,避免UAC警告。操作过程貌似繁琐。相关帖子很多,但都是很多年前的。
现在,ACT已经集成到 Windows10 ADK(生成WindowsPE就需要用这个ADK)
有兴趣的人可以自己下载安装看看。