如何在没有 UAC 或 App 的情况下进行静默安装 运行 是管理员?
How to do Silent installation without UAC or App Is running as admin?
我想进行静默安装。我知道执行此操作的命令 "msiexec.exe /qn",但如果我的应用程序不是 运行 作为管理员,我将无法执行此操作。
注意:- 我的 msi 安装程序是使用 WIX 工具集创建的
Process process = new Process
{
StartInfo =
{
FileName = @"msiexec.exe",
Arguments = string.Format(@"/i ""E:\Build 16\ColiboConnect.msi"" /qn"),
UseShellExecute = false,
RedirectStandardInput = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = false
}
};
process.Start();
process.WaitForExit();
您正在请求静默 MSI 安装,因此 MSI 将不会显示任何 UI - 也不会显示 UAC 对话框。
您的父进程必须已经 运行 具有提升的权限,或者您必须从 Windows 请求提升并将权限令牌用于 运行 新进程。
我们使用 Windows 服务解决了我们的问题。我们的应用程序将下载新的 msi,然后调用 WCF 服务,传递安装程序的路径,该服务将毫无问题地安装新版本,因为我们的服务 运行 在本地帐户系统下,我认为这是唯一的支持的解决方案
我想进行静默安装。我知道执行此操作的命令 "msiexec.exe /qn",但如果我的应用程序不是 运行 作为管理员,我将无法执行此操作。 注意:- 我的 msi 安装程序是使用 WIX 工具集创建的
Process process = new Process
{
StartInfo =
{
FileName = @"msiexec.exe",
Arguments = string.Format(@"/i ""E:\Build 16\ColiboConnect.msi"" /qn"),
UseShellExecute = false,
RedirectStandardInput = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = false
}
};
process.Start();
process.WaitForExit();
您正在请求静默 MSI 安装,因此 MSI 将不会显示任何 UI - 也不会显示 UAC 对话框。
您的父进程必须已经 运行 具有提升的权限,或者您必须从 Windows 请求提升并将权限令牌用于 运行 新进程。
我们使用 Windows 服务解决了我们的问题。我们的应用程序将下载新的 msi,然后调用 WCF 服务,传递安装程序的路径,该服务将毫无问题地安装新版本,因为我们的服务 运行 在本地帐户系统下,我认为这是唯一的支持的解决方案