Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Es gab erhebliche Änderungen am Dienstmodell, um die Leistung, Zuverlässigkeit, Sicherheit, Verwaltung und Verwaltung von Diensten zu verbessern.
In der folgenden Tabelle sind die Verbesserungen der Dienste für Windows Vista zusammengefasst.
Verbesserung | Beschreibung |
---|---|
Verzögerter automatischer Start |
Verzögerte Dienste für den automatischen Start werden kurz nach dem Start des Systems gestartet. Dadurch wird die Systemstartleistung verbessert und gleichzeitig der automatische Start für diese Dienste bereitgestellt. Rufen Sie die ChangeServiceConfig2--Funktion mit SERVICE_CONFIG_DELAYED_AUTO_START_INFOauf, um das verzögerte Autostart-Flag festzulegen. |
Fehlererkennung und Wiederherstellung |
Wenn ein Dienst fehlschlägt, kann der Dienststeuerungs-Manager (Service Control Manager, SCM) eine Fehleraktion ausführen, z. B. einen Neustart des Diensts in einem Versuch, aus diesem Fehler wiederherzustellen. Rufen Sie ChangeServiceConfig2- mit SERVICE_CONFIG_FAILURE_ACTIONSauf, um eine Fehleraktion zu konfigurieren. |
Preshutdown-Benachrichtigungen |
Ein Dienst kann sich registrieren, um eine SERVICE_CONTROL_PRESHUTDOWN-Benachrichtigung in seiner HandlerEx--Funktion zu erhalten, bevor er die tatsächliche Benachrichtigung zum Herunterfahren empfängt. Dadurch erhalten Dienste eine längere Herunterfahren-Prozedur mehr Zeit, um ordnungsgemäß herunterzufahren. Rufen Sie ChangeServiceConfig2- mit SERVICE_CONFIG_PRESHUTDOWN_INFOauf, um den Timeoutwert festzulegen. |
Eingeschränkter Netzwerkzugriff |
Sie können Dienst-SIDs verwenden, um den Zugriff auf Ports, Protokolle oder die Richtung des Netzwerkdatenverkehrs einzuschränken. Um den Zugriff eines Diensts auf das Netzwerk einzuschränken, verwenden Sie die INetFwServiceRestriction--Schnittstelle. |
mit geringsten Berechtigungen ausgeführt |
Dienste können unter jedem Konto ausgeführt werden, das die erforderlichen Berechtigungen enthält (LocalService, NetworkService, LocalSystem, ein Domänenkonto oder ein lokales Konto), und geben die erforderlichen Berechtigungen an, indem sie ChangeServiceConfig2- mit SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFOaufrufen. Der SCM entfernt alle Berechtigungen, die nicht erforderlich sind. |
Dienstisolation |
Ein Dienst kann Objekte wie Dateien oder Registrierungsschlüssel für seine exklusive Verwendung isolieren, indem er sie mit einem Zugriffssteuerungseintrag sichert, der eine Dienst-SID enthält. Nachdem diese SID einem Dienst zugewiesen wurde, kann der Dienstbesitzer die Zugriffssteuerungslisten der Objekte ändern, um zugriff auf die SID zu gewähren. Dadurch kann ein Dienst auf bestimmte Objekte zugreifen, ohne unter einem Konto mit hohen Berechtigungen ausgeführt zu werden oder die Sicherheit für die Objekte zu verringern. Rufen Sie zum Festlegen der Dienst-SID ChangeServiceConfig2- mit SERVICE_CONFIG_SERVICE_SID_INFOauf. |
Änderungsbenachrichtigungen für den Dienststatus |
Dienste können sich registrieren, um benachrichtigt zu werden, wenn ein Dienst erstellt, gelöscht oder über eine Änderung des Status verfügt, indem die funktion NotifyServiceStatusChange verwendet wird. Dies ist effizienter als das Aufrufen der QueryServiceStatusEx--Funktion in einer Schleife, um den Status abzufragen. |
Session 0 Isolation |
Dienste werden immer in Sitzung 0 ausgeführt. Vor Windows Vista wurde dem ersten Benutzer, der sich anmelden soll, auch Sitzung 0 zugewiesen. Jetzt ist Sitzung 0 ausschließlich für Dienste und andere Anwendungen reserviert, die keiner interaktiven Benutzersitzung zugeordnet sind. (Der erste Benutzer, der sich anmelden soll, ist mit Sitzung 1 verbunden, der zweite Benutzer für die Anmeldung ist mit Sitzung 2 usw. verbunden.) Sitzung 0 unterstützt keine Prozesse, die mit dem Benutzer interagieren. Diese Änderung bedeutet, dass ein Dienst keine Nachricht an eine Anwendung posten oder senden kann und eine Anwendung keine Nachricht an einen Dienst senden oder posten kann. Darüber hinaus können Dienste kein Benutzeroberflächenelement wie ein Dialogfeld direkt anzeigen. Ein Dienst kann die WTSendMessage--Funktion verwenden, um ein Dialogfeld in einer anderen Sitzung anzuzeigen. |