【发布时间】:2016-10-19 02:12:31
【问题描述】:
最近,我试图授予我的应用程序管理员权限,而系统不询问“您想授予管理员权限吗?”,我找到了一种完美的方法。
我找到的解决方案
我创建了一个名为 nonadmin.bat 的 bat 文件,并在其中编写了以下代码
cmd min C set __COMPAT_LAYER=RunAsInvoker && start "" %1
如果我们在上面拖动任何 exe,它会给他们管理员权限(之前它不允许我在没有它的情况下访问环境变量,但在 bat 上拖动文件之后它确实有效)。
问题
现在我的问题是:-
- “__COMPAT_LAYER”实际上是什么意思,它有什么作用?
- 如何删除这样的东西,让它再次要求管理员权限?
- 这会降低系统安全性吗?
【问题讨论】:
-
它照说的做。设置兼容性选项。您的示例仅适用于管理员。非管理员会出错。
-
@Noodles 你能详细解释一下这三个问题的答案吗?
-
大概应该是
cmd /min /c ...? -
请@Agent_Spock,在cmd 中始终将
""放在start之后,因为如果引用了%1,那么start 会将其解释为窗口标题。试试start "C:\Program Files\whatever"和start "" "C:\Program Files\whatever"。
标签: windows batch-file compatibility administrator admin-rights