Kann der Anmeldename für einen Windows-Dienst irgenwo abgefragt werden?
Hallo zusammen,
für eine Softwareprogrammierung möchte ich gerne ermitteln, wie sich ein bestimmter Dienst anmeldet (unter dem Reiter "Anmelden als" oder "lokales System" in dem Windows Dienst). Gibt es hierfür eine Variable oder einen Registry-Eintrag zur Dienstanmeldung, der den Wert zurückgeben kann?
Gruß
Bitbutcher1
für eine Softwareprogrammierung möchte ich gerne ermitteln, wie sich ein bestimmter Dienst anmeldet (unter dem Reiter "Anmelden als" oder "lokales System" in dem Windows Dienst). Gibt es hierfür eine Variable oder einen Registry-Eintrag zur Dienstanmeldung, der den Wert zurückgeben kann?
Gruß
Bitbutcher1
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 255949
Url: https://administrator.de/forum/kann-der-anmeldename-fuer-einen-windows-dienst-irgenwo-abgefragt-werden-255949.html
Ausgedruckt am: 23.12.2024 um 15:12 Uhr
3 Kommentare
Neuester Kommentar
Hallo Bitbutcher1,
die Dienste liegen in der Registry unter folgendem Pfad:
Jeder Dienst bekommt dort einen Unterordner, in dem ein REG_SZ-Wert namens ObjectName liegt welcher den User-Account enthält unter dem der Dienst gestartet wird.
Zusätzlich kannst du die Daten auch via WMI in der Klasse Win32_Service abfragen, hier ein Beispiel mit Powershell:
WMI kannst du ja mit jeder Programmiersprache abfragen, deswegen würde ich diese Methode bevorzugen.
Grüße Uwe
die Dienste liegen in der Registry unter folgendem Pfad:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services
Zusätzlich kannst du die Daten auch via WMI in der Klasse Win32_Service abfragen, hier ein Beispiel mit Powershell:
gwmi Win32_Service -Filter "Name = 'Browser'" | select -Expandproperty StartName
Grüße Uwe
Zitat von @timemaster:
Grundsätzlich würde aber eine direkte Abfragemöglich in .Net schöner sein. Hier gibt es aber scheinbar keine
interne Lösung. Ich werde es daher mit WMI versuchen.
Wieso, WMI-Abfragen sind in .NET problemlos nativ möglich ... hattest ja nicht erwähnt mit welcher Programmiersprache du arbeitest ...Grundsätzlich würde aber eine direkte Abfragemöglich in .Net schöner sein. Hier gibt es aber scheinbar keine
interne Lösung. Ich werde es daher mit WMI versuchen.
Beispiel:
Const SERVICENAME = "Fax"
Dim searcher As New System.Management.ManagementObjectSearcher("Select * From Win32_Service where Name='" & SERVICENAME & "'")
Dim result As System.Management.ManagementObjectCollection = searcher.Get()
For Each obj As Management.ManagementObject In result
MsgBox("Der Service-Account für den Dienst '" & SERVICENAME & "' lautet '" & obj.GetPropertyValue("StartName").ToString() & "'")
Next