2017-06-05 125 views
0

我想在這裏提供的使用模擬類的非管理員帳戶中安裝Windows更新補丁(patch.msu)http://stackoverflow.com/questions/125341/how-do-you-do-impersonation-in-net 我對硬件管理員的用戶名,密碼和域進行硬編碼。 我嘗試了幾個LogonTypes但沒有影響,我得到以下錯誤/異常。模擬安裝應用程序c#

未提供所需的假冒等級或提供的假冒」。

我不知道如何進一步處理,我們需要在我們的客戶系統上安裝某些補丁,而無需共享管理員詳細信息。 您對此的指導非常感謝。

我的代碼示例

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

運行此類代碼的帳戶必須具有「身份驗證後模擬客戶端」用戶權限,該權限通常只能由諸如LocalSystem之類的帳戶使用。 –

回答

0

這是由於安全更新很久以前。

在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組策略,在本地計算機上更改配置

    • 單擊開始 - >設置 - >控制面板 - >管理工具 - >本地安全策略

然後

  • 展開本地策略並選擇用戶權限分配。
  • 在右窗格中,雙擊身份驗證後模擬客戶端。
  • 在安全策略設置對話框中,單擊添加用戶或組。
  • 在選擇用戶,計算機或組對話框中,鍵入將運行該應用程序的組或用戶的名稱。
  • 選擇檢查名稱並驗證名稱是否正確。
  • 重複應用於模擬客戶端驗證後的步驟設置爲創建全局對象設置。
相關問題