【发布时间】:2016-03-10 07:41:51
【问题描述】:
我的电脑上有两个帐户,一个管理员帐户和一个用户帐户。用户帐户具有安装新程序的管理员权限。我通常使用我的用户帐户。当我想为 SOL Server 2008 安装 SQL Server Service Pack 3 时,UAC 窗口提示我单击是或否以继续安装。
我不希望这种情况发生。在我的安装过程中我不需要中断。 我怎样才能抑制那个 UAC 消息框?
我正在从我的 C# 程序中调用 .BAT 文件。这是命令行:
start /WAIT C:\Temp\SQLSP3.exe /quiet
/IAcceptSQLServerLicenseTerms /Action=Patch /AllInstances
以下是 UAC 提示。请帮我解决这个问题。
这是使用管理员凭据提升 BAT 文件执行的 C# 代码。
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = windrive + @"temp\SQLSP3.BAT";
p.StartInfo.Arguments = DateTime.Now.ToShortDateString().ToString().Replace('/', '-') + ".db";
p.StartInfo.UserName = "Admin";
SecureString adminpassword = new SecureString();
adminpassword = ConvertToSecureString(Password);
p.StartInfo.Password = adminpassword;
try
{
p.Start();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.InnerException);
Console.ReadLine();
}
【问题讨论】:
-
我不确定这是否可以回答。安装显然需要管理员权限,因此需要向用户请求。
-
是的,我通过 C# exe 调用这个 BAT 文件,我在其中传递管理员密码。但 UAC 仍然提示用户单击是继续安装。
-
如何调用批处理文件?我不知道 C#,但也许有人会看一下代码。
-
在提升的命令窗口中运行批处理文件。 (或者它可以在做任何其他事情之前提升自己;我相信现有的问题和答案涵盖了如何做到这一点。)
标签: c# sql-server-2008 batch-file windows-server-2008-r2 uac