【问题标题】:WinService launching silent installer with elevated privilegesWinService 以提升的权限启动静默安装程序
【发布时间】:2015-09-10 13:02:38
【问题描述】:

我们在管理员帐户下安装了 WinService。

我们从 WinService 启动静默 InstallShield 安装程序。

安装程序在什么权限下运行?它会以管理员权限(从 WinService 继承)执行,还是以 Logged User Account 权限运行?

【问题讨论】:

  • 我相信每个进程都以调用者的权限运行,在本例中为 WinService。
  • 是的,只有当父进程没有管理员权限并且可执行文件标记为requireAdmin。这不适用于这种情况。
  • (严格来说,安装程序的某些部分可能实际上在 TrustedInstaller 上下文中运行,但这与此处无关。无论哪种方式,它都具有管理员权限。)跨度>

标签: c# windows-services installshield administrator


【解决方案1】:

如果这是使用旧版本的 InstallShield(InstallShield 12 之前的版本,例如 DevStudio 9 或 InstallShield 11.5)构建的 InstallScript MSI 项目,则通常将 InstallScript 引擎的一部分作为服务提供并以登录用户身份运行。这些部分通常是在 Windows Vista 上需要提升的部分(从技术上讲,在 XP 上需要它,尽管登录用户更可能是管理员),所以这在 InstallShield 12(包括 InstallShield 2008 及更高版本)中已修复。

除了这种异常,几乎所有你启动的东西都会继承它的启动上下文。如果您的服务在启动设置时正在模拟,它将作为模拟用户启动;否则将以与服务相同的权限级别启动。

如果您需要在进程运行时以交互方式验证这一点,请使用 Process Explorer 之类的工具进行查看。

【讨论】:

    猜你喜欢
    • 2013-06-13
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多