【问题标题】:Impersonation to install application c#模拟安装应用程序c#
【发布时间】: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


【解决方案1】:

这是由于很久以前的安全更新造成的。

“在身份验证后模拟客户端”和“创建全局对象”用户权限最初是在 Windows 2000 Service Pack 4 中引入的,以帮助提高 Windows 的安全性。

Overview of the "Impersonate a Client After Authentication" and the "Create Global Objects" Security Settings (821546.KB.EN-US.2.2)

当您将“身份验证后模拟客户端”用户权限分配给用户时,您允许代表该用户运行的程序模拟客户端。此安全设置有助于防止未经授权的服务器模拟通过远程过程调用 (RPC) 或命名管道等方法连接到它的客户端。

当您想模拟域管理员时,您需要添加这些用户权限。

默认情况下,设备本地管理员组和设备本地服务帐户的成员被分配“身份验证后模拟客户端”用户权限。

解决方案

重要提示:这不会授予用户安装其他应用程序的完整管理员权限。

第一步的动作取决于环境:

  • 如果您使用 Active Directory 组策略,请编辑域控制器上的域安全策略:

    • 点击开始->程序->管理工具->域安全策略
  • 如果您没有使用 Active Directory 组策略,请更改本地计算机上的配置

    • 点击开始 -> 设置 -> 控制面板 -> 管理工具 -> 本地安全策略

然后

  • 展开本地策略并选择用户权限分配。
  • 在右窗格中,双击 Impersonate a client after authentication。
  • 在“安全策略设置”对话框中,单击“添加用户或组”。
  • 在“选择用户、计算机或组”对话框中,键入将运行应用程序的组或用户的名称。
  • 选择检查名称并验证名称是否正确。
  • 重复应用于在身份验证后模拟客户端设置到创建全局对象设置的步骤。

【讨论】:

    猜你喜欢
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 2011-06-17
    • 2012-10-07
    • 2010-12-22
    • 1970-01-01
    相关资源
    最近更新 更多