PC-Experience (https://www.pc-experience.de/wbb2/index.php)
- Artikel und Workshops: (https://www.pc-experience.de/wbb2/board.php?boardid=60)
-- Windows NT, 2000, XP, Tipps und Tricks: (https://www.pc-experience.de/wbb2/board.php?boardid=20)
--- Windows 2000/XP: Diensteoptimierung (Update 12.2010)-Workaround- (https://www.pc-experience.de/wbb2/thread.php?threadid=14361)


Geschrieben von Trinity am 10.03.2005 um 19:42:

Achtung Windows 2000/XP: Diensteoptimierung (Update 12.2010)-Workaround-




Achtung: dieser Artikel ist in keinen Fall auf Windows Vista oder Windows 7 übertragbar !




Einleitung


Wie definiert man die Bedeutung eines Dienstes unter einem NT-Betriebssystem?

"Als Vorgang einer algorithmisch ablaufenden Informationsverarbeitung im Kontext eines Betriebssystems".

Klingt doch etwas verwirrend nicht wahr?
Mit diesem Artikel möchten wir die Definition der Dienste unter Windows 2000/XP nicht nur näher erläutern, sondern vor allem auf die einzelnen Funktionen und Aufgaben eines Dienstes im Zusammenhang mit dem Betriebssystem eingehen. Mögliche und vor allem sinnvolle Optimierungen haben wir dabei berücksichtigt.

Die Windows-Dienste sind von zentraler Bedeutung für die Funktionsweise des Betriebssystems und der geladenen Programme. Zahlreiche Dienste werden vom System verwaltet und funktionell gesteuert. Dadurch werden Aktionen ermöglicht, wie beispielsweise das Anmelden am Betriebssystem, Datei- und Druckfunktionalität und natürlich auch die vielfältige Unterstützung in Netzwerken. Unter Windows 2000 und XP starten viele Komponenten des Betriebssystems als Dienst und die meisten davon sind für eine reibungslose Arbeit von Windows zwingend notwendig. Jedoch sind Dienste auch die Hauptangriffsfläche für Angreifer von außen, welche Berechtigungen und Funktionen eines Dienstes ausnutzen, um Zugriff auf eine lokale Arbeitsstation oder einen Server in unserem Netzwerk zu erhalten. Und damit stellen Dienste, vor allem die, die mit überflüssigen Berechtigungen ausgeführt werden, ein besonderes Sicherheitsrisiko dar. Abgesehen von den für den reibungslosen Ablauf des Betriebssystems notwendigen Diensten, sollten wir nicht benötigte Dienste deaktivieren. Damit dezimieren wir nicht nur eine Angriffsfläche, sondern erreichen auch einen leichten Performancegewinn, denn ein aktivierter und gestarteter Dienst läuft permanent im Hintergrund, unabhängig davon, ob wir den Dienst tatsächlich benötigen. Dieser Zustand belastet mitunter unnötigerweise unsere Systemressourcen.
Im Vordergrund unserer Bemühungen stehen aber ganz klar die Zugewinne an Sicherheit, die nicht von der Hand zuweisen sind.
All dies ereichen wir, indem wir nicht benötigte und gefärliche Dienste deaktivieren oder deren Autostartyp ändern. Hierbei ist jedoch höchste Vorsicht geboten, denn ein deaktivierter Dienst, der von einer Anwendung benötigt wird, wird nicht nur zu Fehlermeldungen führen, sondern auch die Gesamtfunktion des Programms verweigern, das ist definitiv nicht unser Ziel.




Definition von Diensten


Befassen wir uns vorab mit dem grundlegenden Dienstemodell, worauf die Windows NT-Architektur basiert. Dieses Modell umfasst Einzelmodule, die bestimmte Systemfunktionen einschließen. Viele Dienste stehen in Abhängigkeit zu anderen Diensten, eine Tatsache, die unser Augenmerk umso mehr schärfen sollte, wenn es darum geht, einen Dienst (auch als Prozess bezeichnet) abzuschalten oder gar zur Gänze zu deaktivieren. Ein Dienst bildet das Kernstück des Betriebssystem-Dienstcontrollers.
Hierbei handelt es sich um die Datei Services.exe, die wir im Verzeichnis \winnt\system32 finden.
Im „Windows Task-Manager“ auf der Registerkarte „Prozesse“ werden uns alle aktuell ausgeführten Dienste angezeigt. Abgesehen von den Systemdiensten, kann ein Dienst aber auch Teil eines Programms oder eine speziell benötigte Funktion einer Serveranwendung darstellen. Dienste werden auch durch sicherheitsrelevante Programme wie Desktop-Firewalls und Antivirenwächter gestartet, leider nutzen aber auch diverse Spionageprogramme und Viren diesen Weg, um sich bei jedem Start sofort in das System zu integrieren. Also Augen auf bei verdächtigen Aktionen eures Systems!




Diensteverwaltung


Die Betriebssysteme Windows 2000 und XP bieten uns eine komfortable Verwaltungsoberfläche in Form der „Microsoft Management Console“, kurz und bündig MMC genannt. Bereits mit der Installation unseres Betriebssystems werden eine Menge an vorgefertigter MMCs für den administrativen Bedarf bereitgestellt. Für den Handwerker ist der gute Schraubendreher im Werkzeugkoffer unverzichtbar, in einer MMC wird ein Werkzeug als „Snap-In“ bezeichnet. Und auch hier zählt die Anforderung, je nachdem wird die MMC mit unterschiedlichsten Snap Ins ausgestattet sein.

Die MMC „Computerverwaltung“, welche wir über die Systemsteuerung -> Verwaltung aufrufen können, sei hier als Beispiel genannt. In dieser MMC befindet sich unter anderem auch das Snap-In zur Diensteverwaltung. Dieses können wir aber auch solo starten:

Start –> Einstellungen -> Systemsteuerung -> Verwaltung -> Dienste
Alternativ bietet sich der Aufruf über Start - > Ausführen an.
In das Ausführen-Feld geben wir den Befehl services.msc ein und bestätigen diese Eingabe mit dem Button OK oder durch Drücken der ENTER-Taste (.msc steht für die Dateiendung einer MMC)





Standardmäßig finden wir im rechten Bereich des Dienstefensters 5 Spalten mit Informationen zu jedem aktuell installiertem Dienst. Diese Ansicht erhalten wir nur, wenn über das Menü "Ansicht" in der obigen Symbolleiste die Details eingeblendet werden.


Name: der vollständige Dienstname wird angezeigt.
Beschreibung: die Funktion des Dienstes.
Status: der aktuelle Zustand des Dienstes.
Autostarttyp: beschreibt das Verhalten des Dienstes beim Systemstart.
Anmelden als: zeigt an, über welches Konto der Dienst angemeldet wurde.







1. Allgemeine Eigenschaften eines Dienstes


Um die Eigenschaften eines Dienstes im Detail betrachten zu können, führen wir direkt auf dem Dienstnamen einen Doppelklick aus und wir landen im Eigenschaftsfenster.





In der ersten Registerkarte „Allgemein“ finden wir eine Menge an Informationen zu dem jeweiligen Dienst:

- Der Dienstname wird vollständig im Original angezeigt, in unserem Beispiel lautet der Name: „MSIServer“. Das Format des Dienstnamens entspricht auch dem vieler Befehlszeilenprogramme.
- Der Anzeigename, der auch gleichzeitig in der Übersicht des Dienstehauptfensters angezeigt wird, und diesen Dienst als „Windows Installer“ präsentiert.
- Die Beschreibung erklärt uns kurz und bündig die Funktion des Dienstes. Diese ist im Hauptfenster über die Ansicht „Erweitert“, auf die wir im unteren Bereich des Fensters umschalten können, aber besser einzusehen.
- Eine wesentliche Info gibt uns der Pfad zur EXE-Datei an. Damit können wir den Standort des Dienstes, wie auch den dazugehörigen Dateinamen und etwaiger Parameter lokalisieren. Der Pfad und der Dateiname des Dienstes können nicht verändert werden. Wenden wir uns nun einem sehr wichtigen Punkt zu, dem Startverhalten eines Dienstes.




Die Starttypen:

Wir unterscheiden drei Starttypen der Dienste unter Windows:

- Automatisch - Der Dienst wird automatisch beim Starten des Betriebssystems geladen und ausgeführt. Ganz unabhängig davon, ob dieser auch tatsächlich benötigt wird.

- Deaktiviert - Der Dienst wird beim Starten des Betriebssystems nicht geladen. Dienste, die von dem nicht gestarteten Dienst abhängig sind, werden ebenfalls nicht gestartet. Dieser Umstand kann zu Problemen führen, also Achtung beim Deaktivieren eines Dienstes.

- Manuell – Auch mit dieser Einstellung wird der Dienst beim Starten des Systems nicht geladen. Entweder müssen wir den benötigten Dienst manuell über die Konsole "Dienste" starten, oder ein Programm fordert den Start eines ihm zugehörigen Dienstes selbst an. Im Feld „Startparameter“, können eventuell benötigte Parameter eingetragen werden, die beim Starten des Dienstes von hier aus beachtet werden sollen. Diese Einstellungen werden im Bedarfsfall nur einmal ausgeführt und nicht dauerhaft gespeichert.




Die Anmeldung eines Dienstes:

Ein Dienst muss über ein Konto angemeldet sein, damit dieser auch auf Ressourcen und Objekte des Betriebssystems zugreifen kann. Wir unterscheiden hierbei aber ganz klar zwischen einem Systemkonto und dem uns üblich bekanntem Benutzerkonto, welches wir nach dem Start des Betriebssystems für unsere Benutzeranmeldung verwenden. Die meisten Dienste melden sich über das Systemkonto an, unabhängig von einem manuellen Eingriff unsererseits. Diese Standardeinstellung sollten wir nicht unüberlegt ändern, denn es kann durchaus sein, dass sich ein Dienst unter Verwendung eines geänderten Kontos nicht mehr starten lässt.

- Das lokale Systemkonto verfügt über Vollzugriff auf das System. Der Name des lokalen Systemkontos ist LocalSystem.





- Das lokale Dienstkonto ist ein spezielles Konto, das einem authentifizierten Benutzerkonto ähnelt. Dieses Konto verfügt über dieselben Zugriffsrechte auf Ressourcen und Objekte wie die Mitglieder der vordefinierten Gruppe „Benutzer“ (eingeschränkter Benutzer). Der Vorteil liegt darin, dass durch diesen eingeschränkten Zugriff das System geschützt wird, wenn einzelne Dienste gefährdet sein sollten. Dienste, die über das lokale Dienstkonto ausgeführt werden, greifen auf Netzwerkressourcen mit anonymen Anmeldeinformationen zu. Der Name des lokalen Dienstkontos lautet NT-AUTORITÄT\LocalService.





- Das Netzwerkdienstkonto ähnelt ebenfalls einem authentifizierten Benutzerkonto und verfügt über dieselben Zugriffsrechte wie das lokale Dienstkonto. Auch hier wirkt der Systemschutz durch die Einschränkung im Falle einer Gefährdung. Jedoch greifen Dienste, die über dieses Konto ausgeführt werden, auf die Anmeldeinformationen des Computerkontos auf Netzwerkressorucen zu. Ein Computerkonto ist beispielsweise in einer Domäne als Mitgliedscomputer registriert. Der Name des Netzwerkdienstkontos ist NT-AUTORITÄT\NetworkService.





- Im Register „Anmelden“ sehen wir auch die Checkbox „Datenaustausch zwischen Dienst und Desktop zulassen“. Anhand unseres Beispiels mit dem Dienst des Programms "O&O Defrag" wird durch Aktivierung dieser Checkbox angegeben, ob der Dienst auf dem Desktop eine Benutzeroberfläche anzeigt, welche von jedem Benutzer verwendet werden kann, der beim Start dieses Dienstes angemeldet ist und über die benötigten Rechte verfügt. Diese Option ist allerdings nur dann verfügbar, wenn der Dienst über das lokale Systemkonto ausgeführt wird.





Achtung: beide Konten existieren nur bei Windows XP und 2003 Server (NT-AUTORITÄT\LocalService und NT-AUTORITÄT\NetworkService) !




Wiederherstellen bei Dienstausfall:

Sollte ein Dienst während des laufenden Betriebes ausfallen, können wir in diesem Bereich mittels Drop-Down-Listen das Verhalten des Dienstes respektive des Systems je nach Anzahl der Fehlschläge beeinflussen. Unsere Beispielseinstellungen sind selbsterklärend und nach eigenem Ermessen vorzunehmen. Über den Button „Neustartoptionen“ unten rechts, könnt ihr angeben, nach wie vielen Minuten der Computer neu gestartet werden soll, sowie auch eine Nachricht an andere Computer im Netzwerk versenden. Vorausgesetzt, dass für diesen Bedarf ein Netzwerk vorhanden, und der Nachrichtendienst aktiviert ist.







Dienstabhängigkeiten:

Viele Dienste stehen in direkter Abhängigkeit zueinander und damit auch die Funktionsfähigkeit. In unserem Beispiel wird angezeigt, dass der Dienst „Remoteprozeduraufruf (RPC)“ in vielerlei Abhängigkeiten zu anderen Diensten steht. Es wäre fatal diesen Dienst zu beenden oder gar zu deaktivieren, da alle damit verbundenen Dienste ebenso nicht mehr funktionieren würden, bishin zum totalen Systemcrash. Wir sehen, dass viele Komponenten vom gestarteten RPC Dienst abhängig sind, dieser selbst jedoch in keiner Abhängigkeit zu einem anderen Dienst steht.






2. Diensteoptimierung und Konfiguration


Windows 2000 und XP gehen mit Diensten im Standard sehr üppig zur Sache. Nicht alle Dienste werden von uns im Status „gestartet“ benötigt. Der uns bereits bekannte Taskmanager eignet sich sehr gut, um die laufenden Prozesse, ob vom Systemkernel selbst oder vom Benutzer angefordert, einzusehen. Die Speicherauslastung wird damit ersichtlich, denn jeder gestartete Dienst, ob nun benötigt oder nicht, ist im Speicher aktiv und belastet somit unsere Systemressourcen.
Der Bedarf ist nicht nur vom System selbst abhängig, sondern auch von unseren eigenen Anforderungen und Arbeitsumgebungen. Die Dienstekonfiguration wird sich von einen Einzelplatzrechner gegenüber einer Netzwerkumgebung und Serverzusatzdiensten immer unterscheiden. Diese wesentlichen Kriterien müssen wir vorab genauestens abwägen, die Beschreibungen zu den einzelnen Diensten lesen und vor allem die Abhängigkeiten der Dienste untereinander berücksichtigen. Erst danach macht eine Konfiguration zur Optimierung auch Sinn, wir möchten ja ein stabiles System beibehalten. Wenn wir für unseren Eigenbedarf unnötige Dienste deaktivieren, erreichen wir auch einen Performancezuwachs für unser System. Zudem schließen wir damit einige Sicherheitsrisiken aus. Die optimale Übersicht der Dienste und deren Status bietet uns das Dienstehauptfenster, welches wir bereits kennen gelernt haben.


3. Die Konfiguration der Dienste



Folgende Elemente listen wir bei den nachstehenden Diensten auf:

- Den Anzeigenamen des Dienstes

- Die Sternchennotiz ** hinter dem Dienstnamen weist auf eine Änderung von Windows XP SP 1a zu Windows XP SP 2 hin! Diese Änderungen betreffen entweder den Anzeigenamen oder die Standardeinstellung des Dienstes. Der Hinweis kann aber auch für einen gänzlichen neuen Dienst, der erst ab SP 2 verfügbar wurde gelten.

- Eine kurze Erklärung zum jeweiligen Dienst soll uns die Funktion verständlich näher bringen.
- Standard: diese Einstellung finden wir unmittelbar nach der Basisinstallation des Systems vor.
- Empfehlung: Für eine sichere Konfiguration, die nicht zu aggressiv in das System eingrifft.
- System: Windows XP verfügt über mehr Dienste als Windows 2000, speziell nach SP 2. Von daher kann die Diensteauflistung je nach System, Servicepackstand und Eigenbedarf variieren.
- Konsequenz bei deaktiviertem Dienst: wir weisen speziell bei wichtigen Systemdiensten explizit auf die Folgen bei „Deaktivierung“ hin.

Spezielle Dienste für Serverbetriebssysteme werden nicht berücksichtigt, das würde den Rahmen dieses Workarounds sprengen. Zudem hängen serverspezifische Dienste von der individuell gegebenen Netzwerkumgebung ab.




Vor der Dienstekonfiguration zu beachten!

  1. Wir notieren uns die aktuellen Diensteinstellungen, indem wir eine Liste aus dem Dienstehauptfenster exportieren. Das geht sehr einfach über die Menüfunktion „Liste exportieren“. Diese Liste lässt sich auch in ein übersichtliches Excel-Tabellenformat übertragen, einfach die erzeugte *.txt-Datei mit Excel öffnen. Auch nach einer Basisinstallation kann man sich eine Übersichtsliste der Standarddiensteinstellungen ablegen.
  2. Bevor ein Dienst angehalten oder deaktiviert wird, sehen wir uns die Eigenschaften des jeweiligen Dienstes genauestens an, informieren uns über dessen Funktion - unter Berücksichtigung des installierten Soft- u. Hardwareequipments - und vor allem: wir kontrollieren die Abhängigkeiten des Dienstes, um Fehlfunktionen zu vermeiden!
  3. Diensteinstellungen wirken sich global auf das gesamte Betriebssystem aus, und sind für jeden Benutzer am System gültig.
  4. Bei Unsicherheiten betreffend einer Diensteinstellung, gilt die Empfehlung diesen auf „manuell“ zu setzen. Der manuelle Status erlaubt dem Betriebssystem den Dienst bei Anforderung eines Programme oder einer Anwendung selbst zu starten.
  5. Sollten sich einige Dienste in unserer nachstehenden Auflistung nicht auf eurem System befinden, dann kann dies eventuell vom Hersteller und dessen Vorinstallation abhängig sein und trifft in den meisten Fällen auf die Installation einer OEM Version der Windows XP Home-Edition zu.
  6. Unsere Angaben beziehen sich auf die Version von Windows XP Professional inkl. Servicepack 2 (SP 2) und auf Windows 2000 inkl. Servicepack 4. Für Abweichungen von XP SP 1 zu XP SP 2 wurde ein Vermerk hinzugefügt.








Erstellung eines Dienstprofiles


Wie eingangs bereits erwähnt, mit Diensten soll man nicht spielen. Es bietet sich aber eine akzeptable Testumgebung in Form von unterschiedlichen Hardware-Profilen an. Für jedes Hardwareprofil am lokalen Computer kann man die Diensteeinstellungen individuell vornehmen.


Wir legen uns ein neues Hardwareprofil an:

Mit einem Rechtsklick auf das Symbol Arbeitsplatz rufen wir dessen Eigenschaften auf. Wir gelangen in das Systemeigenschaftsfenster, wechseln in das Register "Hardware" und klicken unten rechts auf den Button "Hardwareprofile".





Unser aktuelles Profil wird mit dem Namen "Profil 1" angezeigt.





Um den Vorgang zu vereinfachen, kopieren wir unser aktuelles "Profil 1", indem wir auf den Button "Kopieren" klicken und einen neuen Namen für unser Testprofil vergeben.





Als Ergebnis bekommen wir nun 2 Profile in der Liste angezeigt. Im unteren Bereich des Fensters müssen wir nun die Option „Warten bis ein Hardwareprofil gewählt wird“ aktivieren, und eine Zeitangabe für die Dauer der Anzeige der vorhandenen Profile angeben, die beim Start von Windows zur Auswahl stehen.





Um nun auf Basis dieses Testprofils unsere Diensteeinstellungen vorzunehmen, öffnen wir wieder unser Dienstehauptfenster und doppelklicken auf den gewünschten Dienst um dessen Eigenschaften aufzurufen. Wir wechseln in das Register „Anmelden“, wählen mit einem Klick unser Testprofil aus, und deaktivieren den Dienst über den Button rechts unten.





Wird das Betriebssystem nun mit dem Testhardwareprofil gestartet, gelten die Diensteinstellungen, die wir für dieses zweite Profil vorgenommen haben. Wir arbeiten damit auf der sichern Seite, wenn es darum geht mehrere Diensteinstellungen am eigenen System zu testen.



Ein Tipp zur Speicherung der optimierten Dienste:

Da es sehr mühsam und unkomfortabel ist, die vormals optimierten Dienste nach einer Neuinstallation eures Betriebssystems wieder zu konfigurieren, liegt es nahe diese Optimierungen zu speichern, zumal das Rüstzeug dafür vorhanden ist und sehr einfach genutzt werden kann.

1. Öffnet dazu die Windows-Registrierung in dem ihr auf “Start/Ausführen” klickt und "regedit" eingebt.

2. Navigiert anschließend zum Schlüssel "HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services" und klickt dort auf “Datei/Exportieren”.



Wählt jetzt den Pfad sowie den Dateinamen und speichert diesen gesamten Teil der Registrierung. In Zukunft könnt ihr diese hoffentlich per Backup gespeicherte Reg-Datei problemlos per Doppelklick wieder ausführen und setzt die Dienste so sehr schnell wieder auf eure gewünschten Einstellungen.





Fazit


Um das Startverhalten der umfangreichen Dienste an die eigene System-Infrastruktur anzupassen ist ein genaues Einlesen und Abwägen des eigenen Bedarfs unumgänglich. Der Eingriff in das Betriebssystem ist sehr tief, Grund genug um Vorsicht walten zu lassen und die Konfiguration in Ruhe anzugehen. Letztendlich konnten wir mit unserer sicheren Dienstekonfiguration bis zu 70 MB an Arbeitsspeicher während des laufenden Betriebs gewinnen, ein Performanceschub, der nicht zu verachten ist.




Weiterführende Links und Artikel


Überflüssige Dienste von deinstallierten Programmen löschen

DCOM/RPC Schwachstellen abschotten

Windows 2000/XP: Der professionelle Taskmanager

Windows XP: Microsoft Management Konsole reparieren

Windows XP SP2: Servicepack 2 Artikel und Troubleshooting

Windows XP SP2: Das Servicepack 2 problemlos installieren -Workaround-

Die Windows-XP-Trilogie Teil 1: Der Performance-Workshop

Die Windows-XP-Trilogie Teil 3: Der Troubleshooting-Workshop

Safer Surfen...der Sicherheitsworkshop für Windows 2000/XP






Trinity


Forensoftware: Burning Board , entwickelt von WoltLab GmbH