我通过注册表项将旧版应用列入白名单RunAsInvoker
,运行正常。但是,当用户选择应用提供的修复选项时,列入白名单的应用实际上会执行msiexec /fa installer.msi
,这需要管理员权限。从其他应用调用时,列入白名单的最佳选项是什么msiexec
?
答案1
要强制需要提升的程序在无需提升的情况下运行,请使用以下命令:
cmd.exe /c "set __COMPAT_LAYER=RunAsInvoker && msiexec /fa installer.msi"
但是,如果安装程序需要访问仅限管理员的文件夹,则在这种情况下可能无法完成其工作。
另一种方法是使用 Nirsoft 工具 不升高运行 使用如下命令:
RunWithoutElevation.exe msiexec /fa installer.msi
的值为__COMPAT_LAYER
:
以调用者身份运行:应用程序应以与父进程相同的特权和用户权限运行。
最高运行:应用程序应以当前用户可以获得的最高 Windows 权限和用户权限运行,但不一定要求用户是管理员。
以管理员身份运行:该应用程序应仅供管理员运行,必须使用完整管理员访问令牌启动,并且无法在标准用户环境中正确运行。