Der Schwerpunkt dieser Frage liegt auf der zweiten Hälfte.
Ich weiß, wie man eine Liste aller Dienste extrahiert und nach ihrem Status filtert. Ich bin mir jedoch nicht sicher, wie ich das Benutzerkonto extrahieren soll, für das der Dienst auf "Ausführen als" eingestellt ist.
Ich habe (leider) keine Möglichkeit, PowerShell zu verwenden, daher suche ich nach einem nativen CMD-Weg. Ich nahm an, dass es eine Möglichkeit geben würde, den Befehl sc query zu verwenden, aber alles, was aufgelistet wird, ist:
SERVICE_NAME
TYPE
STATE
WIN32_EXIT_CODE
SERVICE_EXIT_CODE
CHECKPOINT
WAIT_HINT
Zu Ihrer Information - Das Betriebssystem ist Windows 2003 SP2, und ich benötige diese Informationen für alle Dienste. Dies ist ein langwieriger Prozess, wenn ich ihn für jeden von ihnen manuell ausführen muss.
sc query
undwmic
?Sie können dies in zwei Schritten erreichen:
sc \\localhost query | findstr SERVICE_NAME
sc \\localhost qc
+ SERVICE_NAME +| findstr SERVICE_START_NAME
Ich würde ein Batch-Skript wie dieses empfehlen:
Das gibt Ihnen eine Ausgabe wie folgt:
Natürlich können Sie diese Ausgabe weiter bereinigen oder in eine CSV-Datei schreiben, wie Sie möchten.
quelle
CMD hat keine native Möglichkeit, dies zu tun. SC und NET sind integrierte Anwendungen, die mit Windows geliefert werden. Dies bedeutet jedoch nicht, dass sie nativ sind. Ein Administrator kann sie jederzeit entfernen und selbst CMD bleibt im Dunkeln.
Mit sc sdshow erhalten Sie Sicherheitsbeschreibungen. Dies erschwert jedoch die Arbeit, wenn Sie nicht wissen, wie SDDL-Zeichenfolgen gelesen werden.
Am einfachsten ist es, Sysinternals PsService.exe aus dem Tools-Paket abzurufen und als psservice security [service] zu verwenden. Die SDDL wird in lesbarem Format einschließlich der Kontonamen aufgelistet.
quelle
C:\Windows\System32\sc.exe
für alle Windows-Versionen geeignet?Obwohl Sie PowerShell nicht verwenden können, sollten Sie dennoch VBScript verwenden können, um die Informationen aus WMI abzurufen:
Hier ist ein VBS-Skript, das alle Dienste und das Konto auflistet, als das sie beginnen:
Speichern Sie es und führen Sie es dann mit aus
cscript ScriptName.vbs
.objService.State
würde Ihnen den aktuellen Status des Dienstes geben (da Sie erwähnt haben, dass Sie danach filtern möchten).Weitere Informationen zur Win32_Service-Klasse .
quelle