it-swarm.com.de

Der Unterschied zwischen dem Konto "Lokales System" und dem Konto "Netzwerkdienst"?

Ich habe einen Windows-Dienst geschrieben, der einen separaten Prozess erzeugt. Dieser Prozess erstellt ein COM-Objekt. Wenn der Dienst unter dem Konto "Lokales System" ausgeführt wird, funktioniert alles einwandfrei. Wenn der Dienst jedoch unter dem Konto "Netzwerkdienst" ausgeführt wird, wird der externe Prozess gestartet, das COM-Objekt kann jedoch nicht erstellt werden. Der von der COM-Objekterstellung zurückgegebene Fehler ist kein Standard-COM-Fehler (ich denke, er ist spezifisch für das zu erstellende COM-Objekt).

Wie stelle ich fest, wie sich die beiden Konten "Lokales System" und "Netzwerkdienst" unterscheiden? Diese integrierten Konten scheinen sehr mysteriös zu sein, und niemand scheint viel über sie zu wissen.

369
jmatthias

Da die Funktionsweise von Standarddienstkonten so verwirrend ist, werde ich versuchen, eine kurze Zusammenfassung zu geben.

Zuerst die tatsächlichen Konten:

  • LocalService account (bevorzugt)

    Ein eingeschränktes Dienstkonto, das dem Netzwerkdienst sehr ähnlich ist und Standarddienste mit den geringsten Berechtigungen ausführen soll. Im Gegensatz zu Network Service greift es jedoch als Anonymous Benutzer auf das Netzwerk zu.

    • Name: NT AUTHORITY\LocalService
    • das Konto hat kein Passwort. Alle von Ihnen angegebenen Passwortinformationen werden ignoriert.
    • HKCU steht für das LocalService-Benutzerkonto
    • hat minimal Berechtigungen auf dem lokalen Computer
    • präsentiert anonym Anmeldeinformationen im Netzwerk
    • [~ # ~] sid [~ # ~] : S-1-5-19
    • hat ein eigenes Profil unter dem Registrierungsschlüssel HKEY_USERS (HKEY_USERS\S-1-5-19)

  • NetworkService account

    Eingeschränktes Dienstkonto, mit dem standardmäßige privilegierte Dienste ausgeführt werden sollen. Dieses Konto ist weitaus eingeschränkter als das lokale System (oder sogar der Administrator), hat jedoch weiterhin das Recht, als Computer auf das Netzwerk zuzugreifen (siehe Warnung oben).

    • NT AUTHORITY\NetworkService
    • das Konto hat kein Passwort. Alle von Ihnen angegebenen Passwortinformationen werden ignoriert.
    • HKCU steht für das NetworkService-Benutzerkonto
    • hat minimal Berechtigungen auf dem lokalen Computer
    • zeigt die Anmeldeinformationen des Computers (z. B. MANGO$) den Remoteservern an
    • [~ # ~] sid [~ # ~] : S-1-5-20
    • hat ein eigenes Profil unter dem Registrierungsschlüssel HKEY_USERS (HKEY_USERS\S-1-5-20)
    • Wenn Sie versuchen, eine Aufgabe damit zu planen, geben Sie NETWORK SERVICE In das Dialogfeld Benutzer oder Gruppe auswählen ein

  • LocalSystem account (gefährlich, nicht benutzen!)

    Vollständig vertrauenswürdiges Konto, mehr als das Administratorkonto. Es gibt nichts auf einer einzelnen Box, was dieses Konto nicht kann, und es hat das Recht, als Computer auf das Netzwerk zuzugreifen (dies erfordert Active Directory und das Erteilen der Berechtigungen des Computerkontos für etwas).

    • Name: .\LocalSystem (Kann auch LocalSystem oder ComputerName\LocalSystem Verwenden)
    • das Konto hat kein Passwort. Alle von Ihnen angegebenen Passwortinformationen werden ignoriert.
    • [~ # ~] sid [~ # ~] : S-1-5-18
    • hat kein eigenes Profil (HKCU steht für den Standardbenutzer )
    • hat extensive Berechtigungen auf dem lokalen Computer
    • zeigt die Anmeldeinformationen des Computers (z. B. MANGO$) den Remoteservern an

Wenn es um den Zugriff auf das Netzwerk geht, bezieht sich dies ausschließlich auf SPNEGO (Negotiate), NTLM und Kerberos und nicht auf einen anderen Authentifizierungsmechanismus. Beispielsweise kann die Verarbeitung, die als LocalService ausgeführt wird, weiterhin auf das Internet zugreifen.

Das allgemeine Problem bei der Ausführung als Standard-Out-of-the-Box-Konto ist, dass Sie, wenn Sie eine der Standardberechtigungen ändern, die Menge der Funktionen erweitern, die mit diesem Konto ausgeführt werden können. Wenn Sie einer Datenbank DBO gewähren, kann Ihr Dienst, der als lokaler Dienst oder Netzwerkdienst ausgeführt wird, nicht nur auf diese Datenbank zugreifen, sondern auch auf alle anderen Konten, die als solche ausgeführt werden. Wenn jeder Entwickler dies tut, verfügt der Computer über ein Dienstkonto, das über die Berechtigung verfügt, praktisch alles zu tun (insbesondere die Obermenge aller verschiedenen zusätzlichen Berechtigungen, die diesem Konto gewährt wurden).

Unter Sicherheitsaspekten ist es immer vorzuziehen, als eigenes Dienstkonto zu arbeiten, das genau die Berechtigungen hat, die Sie für die Ausführung Ihres Dienstes und für nichts anderes benötigen. Die Kosten für diesen Ansatz sind jedoch das Einrichten Ihres Dienstkontos und das Verwalten des Kennworts. Es ist ein Balanceakt, den jede Anwendung verwalten muss.

In Ihrem speziellen Fall besteht das Problem, das Sie wahrscheinlich sehen, darin, dass die DCOM- oder COM + -Aktivierung auf einen bestimmten Kontensatz beschränkt ist. In Windows XP SP2, Windows Server 2003 und höher wurde die Aktivierungsberechtigung erheblich eingeschränkt. Sie sollten das Snap-In Komponentendienste MMC= verwenden, um Ihr bestimmtes COM-Objekt zu untersuchen Wenn Sie als Computerkonto auf nichts im Netzwerk zugreifen, sollten Sie ernsthaft in Betracht ziehen, Local Service (nicht Local System which) zu verwenden ist im Grunde das Betriebssystem).


In Windows Server 2003 Sie können eine geplante Aufgabe nicht ausführen als

  • NT_AUTHORITY\LocalService (Auch bekannt als Local Service Account) oder
  • NT AUTHORITY\NetworkService (Auch bekannt als Netzwerkdienstkonto).

Diese Funktion wurde nur mit Task Scheduler 2. hinzugefügt, das nur in Windows Vista/Windows Server 2008 und höher vorhanden ist.

Ein Dienst, der als NetworkService ausgeführt wird, zeigt die Computeranmeldeinformationen im Netzwerk an. Dies bedeutet, dass, wenn Ihr Computer mango heißt, dies würde als Computerkonto angezeigt werdenMANGO$:

enter image description here

669
Peter Oehlert