Wenn auf einem Windows Server Dienste nicht mit dem richtigen Konto gestartet werden, können diverse Fehler auftreten, z.B. der Fehler 1079:
![pwservices1 pwservices1](https://blog.ppedv.de/image.axd?picture=pwservices1_thumb.png)
Der Fehler entsteht, wenn mehrere Konten unter dem selben Prozess (z.B. svchost) laufen, dabei aber verschiedene Konten nutzen sollen.
Nun muss man also herausfinden, welche Dienste betroffen sind. Dies geht sicherlich auch über die services.msc (also in der GUI) – ist dann aber mit viel Arbeit verbunden. Einfacher wäre es sicherlich, dies über PowerShell herauszufinden.
Leider kennt das Cmdlet “Get-Service” keine Möglichkeit, die Logon-Werte auszugeben:
![pwservices2 pwservices2](https://blog.ppedv.de/image.axd?picture=pwservices2_thumb.png)
Selbst der Aufruf “Get-Service | fl *” zeigt kein passendes Attribut:
![pwservices3 pwservices3](https://blog.ppedv.de/image.axd?picture=pwservices3_thumb.png)
Was bleibt nun also? Eine Abfrage mittels WMI!
![pwservices4 pwservices4](https://blog.ppedv.de/image.axd?picture=pwservices4_thumb.png)
Und tatsächlich – hier gibt es nun ein Attribut “StartName”, welches das verwendete Konto enthält. Nun kann man also eine einfache Liste aller Dienste mit ihren Konten abrufen:
![pwservices5 pwservices5](https://blog.ppedv.de/image.axd?picture=pwservices5_thumb.png)
Will man statt den “internen” (teils kryptischen) Dienstnamen die sprechenden Namen sehen, und auch nach diesen sortieren, dann kann man folgenden Aufruf verwenden:
Get-WmiObject win32_service | Sort-Object Caption | ft Caption,StartName
![pwservices45 pwservices45](https://blog.ppedv.de/image.axd?picture=pwservices45_thumb.png)
Über Where-Object kann man nun auch gezielt nach Diensten mit einem bestimmten Konto suchen:
![pwservices7 pwservices7](https://blog.ppedv.de/image.axd?picture=pwservices7_thumb.png)