静默安装 .msu Windows 更新
本文关键字:更新 Windows msu 安装 静默 | 更新日期: 2023-09-27 18:35:46
我在Windows更新静默安装时遇到了小问题。为什么我需要它?我有系统磁盘的位副本,我正在使用它重新安装win7(具有.net framework,Visual Studio,java和50 +其他应用程序的优势)。然后我需要安装一些重要的更新。我用 c# 编写了小的 utillity,工作正常,除了即使使用 startInfo.Arguments = "/quiet/norestart/passive";
安装也不会静音。不沉默 :我的意思是至少有两个窗口,例如询问我最终是否需要安装或重新启动选项。
在另一个论坛上说出了问题,人们如何部署修补程序 .msu 文件?但是解决方案对我来说有点不清楚。有人知道如何解决它吗?同样,startInfo.Arguments = "/quiet/norestart/passive";
或startInfo.Arguments = @"/qb!"+ "REBOOT=ReallySuppress"+ @"/qn";
不起作用,并在链接中解释了原因。 textBox1.Text
是所有修补程序和更新在一个目录中的位置。
{
string[] filePaths = Directory.GetFiles(textBox1.Text);
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = true;
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
//startInfo.Arguments = "/quiet/norestart/passive";
for (int i = 0; i < filePaths.Length; i++)
{
label1.Text = "Working";
startInfo.FileName = filePaths[i];
startInfo.Arguments = @"/qb!"+ "REBOOT=ReallySuppress"+ @"/qn";
try
{
Process.Start(startInfo.FileName).WaitForExit();
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
label1.Text = " Done ";
}
首先,
您只是将没有空格的参数链接在一起,因此只传递一个可能不起作用的参数。尝试
startInfo.Arguments = "/qb! REBOOT=ReallySuppress /qn"
最后,
我使用纯CMD行绕过了它。静默安装,无窗口,例外情况除外。
private void button1_Click(object sender, EventArgs e)
{
string[] filePaths = Directory.GetFiles(textBox1.Text);
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;
process.EnableRaisingEvents = false;
for (int i = 0; i < filePaths.Length; i++)
{
if (i == 0) { label1.Text = "Working On first task"; }
process.StartInfo.Arguments = "/C " + "@" + "'"" + filePaths[i] + "'"" + " /quiet /norestart";
process.Start();
process.WaitForExit();
label1.Text = (100 * i / filePaths.Length).ToString() + " % is done";
}
label1.Text = "Done";
}