如何将通过 RunAsInvoker 列入白名单的应用程序调用的 msiexec 列入白名单

如何将通过 RunAsInvoker 列入白名单的应用程序调用的 msiexec 列入白名单

我通过注册表项将旧版应用列入白名单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 权限和用户权限运行,但不一定要求用户是管理员。

  • 以管理员身份运行:该应用程序应仅供管理员运行,必须使用完整管理员访问令牌启动,并且无法在标准用户环境中正确运行。

相关内容