Es ist nicht ganz leicht, im Rahmen einer Dokumentation im Netzwerk die Server zu identifizieren, die mit Windows Server 2003 R2 betrieben werden. Es liegt zwar nahe, die Einträge des Active Directory zu prüfen, aber dort wird kein Unterschied sichtbar zwischen einem Server mit SP1 und einem mit R2 (was ja technisch auch dieselbe Grundlage ist).
Wie so oft, bietet auch hier WMI die Lösung: Dessen Klasse "Win32_OperatingSystem" bietet im Attribut "OtherTypeDescription" die gesuchte Information.
Hier ein Skript-Fragment (erzeugt mit Scriptomatic 2.0), das die benötigte Abfrage ausführt. Um die Daten für das ganze Netzwerk oder einen Teil davon zu sammeln, lassen sich mehrere Techniken anwenden, die ich in einem Artikel für heise Netze (kostenlos verfügbar) zusammengefasst habe.
(Dank an Thomas M. Hess für den Hinweis in der Newsgroup.)
-
On Error Resume Next
-
-
Const wbemFlagReturnImmediately = &h10
-
Const wbemFlagForwardOnly = &h20
-
-
arrComputers = Array("DC1")
-
For Each strComputer In arrComputers
-
WScript.Echo
-
WScript.Echo "=========================================="
-
WScript.Echo "Computer: " & strComputer
-
WScript.Echo "=========================================="
-
-
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "rootCIMV2")
-
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", _
-
wbemFlagReturnImmediately + wbemFlagForwardOnly)
-
-
For Each objItem In colItems
-
WScript.Echo "Caption: " & objItem.Caption
-
WScript.Echo "InstallDate: " & WMIDateStringToDate(objItem.InstallDate)
-
WScript.Echo "LastBootUpTime: " & WMIDateStringToDate(objItem.LastBootUpTime)
-
WScript.Echo "Name: " & objItem.Name
-
WScript.Echo "OSLanguage: " & objItem.OSLanguage
-
WScript.Echo "OSProductSuite: " & objItem.OSProductSuite
-
WScript.Echo "OSType: " & objItem.OSType
-
WScript.Echo "OtherTypeDescription: " & objItem.OtherTypeDescription
-
WScript.Echo "Version: " & objItem.Version
-
WScript.Echo
-
Next
-
Next
-
-
-
Function WMIDateStringToDate(dtmDate)
-
WScript.Echo dtm:
-
WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _
-
Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _
-
& " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2))
-
End Function
Verwandte Beiträge:
- Dienst- und Task-Konten identifizieren
Es ist keine schlechte Idee, die Kennwörter von Dienst- und Taskausführungskonten zu ändern. Vielfach sind diese nämlich mit einem, naja,... - Exchange Server 2003: Das Datenbanklimit per Skript setzen
Seit dem Service Pack 2 für Exchange Server 2003 ist die Datenbankgröße der Standard Edition nicht mehr auf 16 GB... - BGInfo um eigene Datenfelder erweitern
BGInfo von Sysinternals ist für viele Windows-Admins ein unverzichtbares Werkzeug. Es blendet Konfigurationsinformationen über den lokalen Rechner in das Hintergrundbild... - AD-Informationen schnell auslesen
Neben eineAm klassischen ADSI-Skript gibt es eine relativ einfache Möglichkeit, Informationen aus dem Active Directory auszulesen. Hierzu lässt sich das... - Wie aktualisiert man einen Domänencontroller auf Windows Server 2003 R2?
Das Release Windows Server 2003 R2 basiert auf zwei CDs. Auf der ersten CD ist Windows Server 2003 mit integriertem...


11. Januar 2007, 16:08 Uhr
http://faq-o-matic.net/?p=633


