我正在尝试使用此处提供的模拟类在非管理员帐户中安装Windows更新修补程序(patch.msu)http://stackoverflow.com/questions/125341/how-do-you-do-impersonation-in-net 我正在硬编码Administrator的用户名,passowrd和域名。 我尝试了几个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);
}
答案 0 :(得分:0)
这是由于很久以前的安全更新。
"认证后模拟客户端"和"创建全局对象"用户权限最初是在Windows 2000 Service Pack 4中引入的,以帮助提高Windows中的安全性。
在身份验证后分配"模拟客户端"用户对用户的权限,允许代表该用户运行的程序模拟客户端。此安全设置有助于防止未经授权的服务器模拟通过远程过程调用(RPC)或命名管道等方法连接到它的客户端。
如果您想冒充域管理员,则需要添加这些用户权限。
默认情况下,设备的本地管理员组成员和设备的本地服务帐户将被分配"在身份验证后模拟客户端"用户权利。
<强>解决方案强>
重要提示:这不会为用户提供安装其他应用程序的完全管理员权限。
第一步的操作取决于环境:
如果您使用的是Active Directory组策略,请编辑域控制器上的域安全策略:
如果未使用Active Directory组策略,请更改本地计算机上的配置
然后