Age*_*ock 18 windows compatibility administrator batch-file admin-rights
最近,我试图给我的应用程序管理员权限,而没有系统询问"你想给管理员权限吗?" 我发现了一种完美的工作方式.
找到的解决方案
我创建了一个名为nonadmin.bat的bat文件,并在其中编写了以下代码
cmd min C set __COMPAT_LAYER=RunAsInvoker && start %1
Run Code Online (Sandbox Code Playgroud)
如果我们拖动它上面的任何exe,它给了他们管理员权限(在它没有让我访问环境变量之前没有它但在蝙蝠拖动文件之后它确实有效).
题
现在我的问题是: -
Som*_*ark 28
__COMPAT_LAYER及其使用方法
__COMPAT_LAYER是一个系统环境变量,允许您设置兼容性层,这是您在右键单击可执行文件时可以调整的设置,选择"属性",然后转到"兼容性"选项卡.

您可以使用空格分隔多个选项: set __COMPAT_LAYER=Win98 640x480
取消
设置__COMPAT_LAYER变量只要变量存在,这些设置就会持续存在.当设置了变量的命令提示符关闭时,或者使用该命令手动取消设置变量时,变量将停止存在set __COMPAT_LAYER=.
由于您是通过批处理脚本设置变量,因此一旦您拖动到它的可执行文件完成并且脚本关闭,该变量就会自动取消设置.请务必注意,变量设置会持久保存到由您选择的可执行文件生成的任何子进程.
使用__COMPAT_LAYER的安全性如果你没有,那么将__COMPAT_LAYER
设置为RunAsInvoker 实际上并不会给你管理员权限 ; 它只是阻止UAC弹出窗口出现,然后像任何用户调用它一样运行程序.因此,使用它是安全的,因为您没有神奇地获得管理员权限.
您还可以将变量设置为RunAsHighest(如果您具有管理员权限,则仅触发UAC,如果您没有管理员权限,则不会授予管理员权限)或RunAsAdmin(始终触发UAC).
| 归档时间: |
|
| 查看次数: |
28767 次 |
| 最近记录: |