【发布时间】:2017-11-06 08:30:03
【问题描述】:
我正在尝试使用此处提供的模拟类http://stackoverflow.com/questions/125341/how-do-you-do-impersonation-in-net 在非管理员帐户中安装 Windows 更新补丁(patch.msu) 我正在硬编码 Administrator 的用户名、密码和域。 我尝试了几种 LogonTypes 但没有任何影响,我收到以下错误/异常。
“未提供所需的模拟级别,或提供的模拟”。
我不知道如何进一步进行,我们需要在客户系统上安装某些补丁,而不向他们分享管理员详细信息。 非常感谢您的指导。
我的代码示例
try
{
using (Impersonation impersonate = new Impersonation(Environment.UserDomainName,
"administrator", "XXXXXX"))
{
Process proc = new Process();
proc.StartInfo.FileName = "wusa.exe";
proc.StartInfo.Arguments = strPath;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.Verb = "runas";
proc.Start();
proc.WaitForExit();
}
}
catch (Exception e)
{
throw new Exception(e.Message);
}
【问题讨论】:
-
您使用的实际代码在哪里?
-
运行此类代码的账号必须有“Impersonate a client after authentication”用户权限,一般只有LocalSystem等账号才能使用。
标签: c# windows impersonation