PDA

Vollständige Version anzeigen : Dienste auslesen mit VBS


Brainscanner
16.05.2006, 07:12
Hi,

ich muß mit einem VBS Script diverse Aufgaben erledigen. Eine davon ist es einen Dienst auszulesen, d.h. zu überprüfen, ob ein bestimmter Dienst vorhanden ist. Und dann am besten noch dessen Eigenschaften auslesen. Ich hab schon viel gegoogelt, aber noch nichts wirklich treffendes gefunden. Kann mir da jemand unter die Arme greifen? Für die anderen Sachen (z.B. Registry auslesen) hab ich schon genügend Quellen gefunden.

Brainscanner
16.05.2006, 13:51
Bin ein ganz schönes Stück weiter:

strComputer = "localhost"

Set wbemServices = GetObject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_Service")

set fso = createobject ("scripting.filesystemobject")
set ntwrk = createobject ("wscript.network")
set datei = fso.createtextfile("u:\test.txt")

datei.writeline ("ComputerName = " + ntwrk.computername & vbcrlf)

datei.writeline ("##########################################")
datei.writeline ("SERVICES: Service Name / State / Startmode")
datei.writeline ("##########################################" & vbcrlf)
For Each wbemObject In wbemObjectSet
datei.writeline (wbemObject.DisplayName & " / " & wbemObject.State & " / " & wbemObject.StartMode & " / " & wbemObject.seclogon)
Next

datei.close

Ich versuch jetzt noch rauszufinden wie ich das Konto, mit dem der Dienst gestartet wird, auslesen kann. In der Regel ist das zwar "System" aber nicht immer.

~~~dexter~~~
16.05.2006, 14:59
Hier hast Du:


Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set Prozesse = WMI.ExecQuery("Select * from Win32_Process")

For Each Prozess In Prozesse
Eigenschaft = Prozess.GetOwner(Benutzername, Benutzterdomain)
WScript.Echo "Prozess: " & Prozess.Name & " " & Benutzterdomain & "\" & Benutzername & "."
Next

Brainscanner
17.05.2006, 07:21
Auch gleich die Prozesse... Nett, danke!!

Fremdling
03.12.2008, 16:00
Hallo, ich möchte an dieser Stelle nochmal nachhaken. Ich suche auch zwingend genau diese Funktion:

"Alle Dienste auslesen sowie deren Benutzerkonten unter denen Sie ausgeführt werden auslesen"

Leider komme ich nur mit Batch einigermassen zurecht und vbs ist für mich ein noch absolutes Neuland.

Wäre super wenn man mir als Anfänger einen fertigen Codeschnipsel spendieren könnte.

LG Guest

_anton_
07.12.2008, 14:00
Hallo Fremdling,

probier's hiermit:
'(code)
<span style="font-family: Courier New,FixedSys;"><br><span style="color: #0000CC;">On Error Resume Next</span> &nbsp; &nbsp;<br>strComputer = &quot;.&quot;<br><span style="color: #0000CC;">Set</span> objWMIService = GetObject(&quot;winmgmts:\\&quot; & strComputer & &quot;\root\cimv2&quot;) &nbsp; <br><span style="color: #0000CC;">Set</span> colItems = objWMIService.ExecQuery(&quot;Select * from Win32_Service&quot;, , 48) &nbsp;<br>Text = Text & &quot;&lt;table width=100% border=1&gt;&quot;<br>Text = Text & &quot;&lt;tr&gt;&lt;td&gt;Caption:&lt;/td&gt;&quot;<br>Text = Text & &quot;&lt;td&gt;Description:&lt;/td&gt;&quot;<br>Text = Text & &quot;&lt;td&gt;DisplayName:&lt;/td&gt;&quot;<br>Text = Text & &quot;&lt;td&gt;Name:&lt;/td&gt;&quot;<br>Text = Text & &quot;&lt;td&gt;PathName:&lt;/td&gt;&quot;<br>Text = Text & &quot;&lt;td&gt;Started:&lt;/td&gt;&quot;<br>Text = Text & &quot;&lt;td&gt;StartMode:&lt;/td&gt;&quot; <br>Text = Text & &quot;&lt;td&gt;StartName:&lt;/td&gt;&quot;<br>Text = Text & &quot;&lt;td&gt;State:&lt;/td&gt;&quot;<br>Text = Text & &quot;&lt;td&gt;Status:&lt;/td&gt;&quot;<br><span style="color: #0000CC;">For Each</span> objItem <span style="color: #0000CC;">In</span> colItems &nbsp; <br>&nbsp; Text = Text & &quot;&lt;tr&gt;&lt;td&gt;&quot; & objItem.Caption & &quot;&lt;/td&gt;&lt;td&gt;&quot;<br>&nbsp; Text = Text & objItem.Description & &quot;&lt;/td&gt;&lt;td&gt;&quot;<br>&nbsp; Text = Text & objItem.DisplayName & &quot;&lt;/td&gt;&lt;td&gt;&quot;<br>&nbsp; Text = Text & objItem.Name & &quot;&lt;/td&gt;&lt;td&gt;&quot;<br>&nbsp; Text = Text & objItem.PathName & &quot;&lt;/td&gt;&lt;td&gt;&quot;<br>&nbsp; Text = Text & objItem.Started & &quot;&lt;/td&gt;&lt;td&gt;&quot;<br>&nbsp; Text = Text & objItem.StartMode & &quot;&lt;/td&gt;&lt;td&gt;&quot; <br>&nbsp; Text = Text & objItem.StartName & &quot;&lt;/td&gt;&lt;td&gt;&quot;<br>&nbsp; Text = Text & objItem.State & &quot;&lt;/td&gt;&lt;td&gt;&quot;<br>&nbsp; Text = Text & objItem.Status & &quot;&lt;/td&gt;&quot;<br><span style="color: #0000CC;">Next</span> <br>Text = Text & &quot;&lt;/table&gt;&quot;<br><span style="color: #0000CC;">Set</span> ie4 = CreateObject(&quot;InternetExplorer.Application&quot;) &nbsp; <br>ie4.navigate (&quot;about:blank&quot;)<br>ie4.Visible = <span style="color: #0000CC;">True</span> <br>ie4.document.body.innerHTML = Text<br>ie4.document.Title = &quot;Dienste&quot;<br><span style="color: #0000CC;">Set</span> ie4 = Nothing &nbsp;<br></span>
'(/code)

(als code markierten Text in Notepad eingeben,als dienste.vbs speichern und ausführen)
mfg Anton

oink0815
11.03.2009, 12:00
Hi,

schau einfach mal hier. da gibt es fast alles.

http://www.microsoft.com/germany/technet/scriptcenter/default.mspx


Gruss Thomas