Das LINQ-Beispiel von gerade eben erinnerte mich an ein Beispiel, dass mir mein Kollege Stefan erstellt hat. Damit kann man mittels WMI ebenfalls in einer sql-artigen Abfrage alle möglichen Dinge aus dem System erfragen. In dem untigen Beispiel wird für jeden im System installierten SQL-Server ein Fenster mit der Versionsnummer angezeigt.
Anleitung: Einfach GetVersion.vbs, kontrollieren, ob wirklich drin steht, was es soll, und dann in "getVErsion.vbs" umbenennen. Ausführen durch Doppelklick:
On Error Resume Next
set wmi = GetObject("WINMGMTS:\\.\root\Microsoft\SqlServer\ComputerManagement")
If err.number <> 0 THEN
MsgBox "WMI Klasse root\Microsoft\SqlServer\ComputerManagement nicht vorhanden – Es ist kein MS SQL Server 2005 installiert!"
Else
for each prop in wmi.ExecQuery("select * from SqlServiceAdvancedProperty where SQLServiceType = 1 AND PropertyName = 'VERSION'")
MsgBox prop.ServiceName & " " & prop.PropertyName & ": " & prop.PropertyStrValue, vbOKOnly, "SQL Server"
next
End If
Scriptomatic 2.0
http://www.microsoft.com/downloads/details.aspx?FamilyID=09dfc342-648b-4119-b7eb-783b0f7d1178&DisplayLang=en
http://www.microsoft.com/technet/scriptcenter/tools/wmimatic.mspx
Greg Stemp, Dean Tsaltas, Bob Wells
Scripting Clinic
WMI Scripting Primer
http://msdn2.microsoft.com/en-us/library/ms974579.aspx
Hallo Spencer,
danke für die Links. Sie sind eine gute Ergänzung. Gerade der Scriptomat ist prima.
Zwei Hinweise dazu aber noch: bei mir daheim läuft der Scriptomatic nicht, keine Ahnung warum. In der Firma schon. Da liefert er allerdings zum SQL-Server keine Infos. Zu anderen WMI-Quellen aber schon.
Den "WMI Scripting Primer" kannte ich noch nicht. Die Lektüre scheint sich zu lohnen.
Viele Grüße
Thomas