2017-06-05 2 views
0

Ich versuche, Windows Update Patch (patch.msu) in einem Nicht-Admin-Konto mit der hier bereitgestellten Identitätswechsel-Klasse zu installieren http://stackoverflow.com/questions/125341/how-do-you-do-impersonation-in-net Ich bin hardcoding den Benutzernamen, Passowrd und Domäne des Administrator. Ich habe versucht, mehrere LogonTypes, aber keine Auswirkungen und ich bekomme den folgenden Fehler/Ausnahme.Identitätsdiebstahl zur Installation der Anwendung C#

"Entweder wurde ein erforderlicher Identitätswechsel-Level nicht bereitgestellt oder der angegebene Identitätswechsel".

Ich habe keine Ahnung, wie es weiter geht, wir müssen bestimmte Patches auf unseren Kundensystemen installieren, ohne Admin-Details an sie zu senden. Ihre Anleitung dazu wird sehr geschätzt.

Mein Codebeispiel

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

Wo ist der ** tatsächliche ** Code, den Sie verwendet haben? –

+0

Das Konto, auf dem dieser Code ausgeführt wird, muss das Benutzerrecht "Annehmen eines Clients nach Authentifizierung" aufweisen, das normalerweise nur von Konten wie LocalSystem verfügbar ist. –

Antwort

0

Dies ist auf ein Sicherheitsupdate vor langer Zeit.

Die Benutzerrechte "Annehmen der Identität eines Clients nach Authentifizierung" und "Erstellen globaler Objekte" wurden erstmals in Windows 2000 Service Pack 4 eingeführt, um die Sicherheit in Windows zu erhöhen.

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

Wenn Sie Benutzer direkt an einen Benutzer der „eine Clientidentität nach Authentifizierung“ zuweisen, gestatten Sie Programme, die im Namen des Benutzers laufen, einen Client zu imitieren. Diese Sicherheitseinstellung verhindert, dass sich nicht autorisierte Server als Clients ausgeben, die über Methoden wie RPC (Remote Procedure Calls) oder Named Pipes eine Verbindung herstellen.

Da Sie sich als Domänenadministrator ausgeben möchten, müssen Sie diese Benutzerrechte hinzufügen.

Standardmäßig wird Mitgliedern der lokalen Administratorengruppe des Geräts und dem lokalen Dienstkonto des Geräts das Benutzerrecht "Annehmen eines Clients nach Authentifizierung" zugewiesen.

Lösung

WICHTIG: Diese geben nicht die volle Administratorrechte für den Benutzer andere Anwendungen zu installieren.

Die Aktion für den ersten Schritt ist abhängig von der Umgebung:

  • Wenn Sie die Sicherheitsrichtlinie für Domänen auf dem Domänencontroller Active Directory-Gruppenrichtlinien bearbeiten verwenden:

    • Click Start -> Programme -> Verwaltung -> Domänensicherheitsrichtlinie
  • Wenn Sie nicht Active Directory-Gruppenrichtlinien verwenden, um die Konfiguration auf dem lokalen Computer

    starten
    • Klicken Sie ändern -> Einstellungen -> Systemsteuerung -> Verwaltung -> Lokale Sicherheitsrichtlinien

Dann

  • Erweitern Sie lokale Richtlinien und wählen Sie Benutzerrechte zuweisen.
  • Doppelklicken Sie im rechten Fensterbereich auf Identität eines Clients nach Authentifizierung übernehmen.
  • Klicken Sie im Dialogfeld Sicherheitsrichtlinieneinstellung auf Benutzer oder Gruppe hinzufügen.
  • Geben Sie im Dialogfeld Benutzer, Computer oder Gruppen auswählen den Namen der Gruppe oder des Benutzers ein, der die Anwendung ausführen soll.
  • Wählen Sie Namen überprüfen und bestätigen Sie, dass der Name korrekt ist.
  • Wiederholen Sie die Schritte, die für die Einstellung Annehmen eines Clients nach Authentifizierung an die Einstellung Globale Objekte erstellen angewendet wurden.
Verwandte Themen