WMI - Pearson

Transcription

WMI - Pearson
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;
detaillierte bibliografische Daten sind im Internet über http://dnb.dnb.de abrufbar.
Die Informationen in diesem Produkt werden ohne Rücksicht auf einen eventuellen Patentschutz
veröffentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt.
Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen.
Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autoren
können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch
irgendeine Haftung übernehmen.
Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar.
Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in
elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und
Arbeiten ist nicht zulässig.
Fast alle Hard- und Softwarebezeichnungen und weitere Stichworte und sonstige Angaben,
die in diesem Buch verwendet werden, sind als eingetragene Marken geschützt.
Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht,
wird das ® Symbol in diesem Buch nicht verwendet.
10 9 8 7 6 5 4 3 2 1
15 14 13
ISBN 978-3-8273-3205-9 Print; 978-3-86324-559-7 PDF; 978-3-86324-225-1 ePUB
© 2013 by Addison-Wesley Verlag,
ein Imprint der Pearson Deutschland GmbH,
Martin-Kollar-Straße 10–12, D-81829 München/Germany
Alle Rechte vorbehalten
Umschlagkonzept: Kochan & Partner, München
Lektorat: Thomas Pohlmann
Korrektorat: Petra Kienle
Herstellung: Claudia Bäurle, cbaeurle@pearson.de
Satz: Nadine Krumm, mediaService, Siegen, www.mediaservice.tv
Druck und Verarbeitung: Kösel, Krugzell (www.KoeselBuch.de)
Printed in Germany
Kapitel 6 Komponenten für das Scripting
Um die Gruppenrichtlinie zu ändern, wählen Sie Bearbeiten im Kontextmenü der
Richtlinie. Dadurch öffnet sich der Group Policy Object Editor (GPEdit.dll), der
auch unter Windows 2000 schon vorhanden war.
WMI-Filter
Ein WMI-Filter ist ein in der WMI Query Language (WQL) festgelegter Suchausdruck (vgl. auch Kapitel 6.6.3). WMI-Filter können dazu verwendet werden, Gruppenrichtlinien fallweise auszuführen. Ein WMI-Filter besteht aus einer oder mehreren WQL-Abfragen. Wenn eine Gruppenrichtlinie an einen WMI-Filter gebunden
ist, dann wird sie nur ausgeführt, wenn alle WQL-Abfragen des Filters ein Ergebnis
liefern.
Auf diese Weise kann man die Ausführung einer Gruppenrichtlinie von einer
beliebigen Information im WMI-Repository abhängig machen. Beispielsweise liefert
die folgende WQL-Abfrage nur dann ein Ergebnis, wenn sie auf einem Computer
mit Windows XP (Windows Build 2600) ausgeführt wird:
SELECT *
FROM Win32_OperatingSystem
WHERE BuildNumber=2600
Indem Sie diesen WMI-Filter an eine Gruppenrichtlinie binden, erreichen Sie, dass
die Gruppenrichtlinie nur auf Windows XP-Computern ausgeführt wird.
Die WMI-Filter-Funktion ist nur ab Windows Server 2003-basierten Active Directory-Installationen verfügbar.
Ergebnismengen
Die für einen konkreten Active Directory-Benutzer oder -Computer geltenden Richtlinien zu ermitteln, ist nicht trivial, weil Container Gruppenrichtlinien an die Untercontainer vererben und weil an jeden Container beliebig viele Gruppenrichtlinien
gebunden sein können.
Wenn Sie eine Organisationseinheit anwählen, können Sie auf der Registerkarte
Gruppenrichtlinienvererbung sehen, welche Gruppenrichtlinien durch die Containervererbung auf eine Organisationseinheit einwirken.
Sie können auch die einzelnen Einstellungen betrachten, die für ein konkretes Objekt
auf Basis der Summe der wirkenden Gruppenrichtlinien gelten. Dies nennt man
den Resultant Set of Policies (RSoP). Man kann einen RSoP-Bericht sowohl auf der
Ebene einer Organisationseinheit (Ast Gruppenrichtlinienmodellierung) als auch auf
der Ebene eines Benutzers oder einer Gruppe (Ast Gruppenrichtlinienergebnisse)
einsehen. Im letzteren Fall kann man wählen, für welchen Computer der RSoP
angezeigt werden soll.
154
Group Policy Management-Komponente (GPMC Objects)
Bild 6.12: Beispiel für einen RSoP-Bericht
Aktualisierung von Gruppenrichtlinien
Normalerweise werden Gruppenrichtlinien nur in längeren Intervallen (fünf Minu- secedit.exe/
ten auf Domänencontrollern, 90 Minuten zzgl. einer zufälligen Verzögerung von 0 gpupbis 30 Minuten auf anderen Computern) aktualisiert. Diese für Testzwecke (und date.exe
auch einige Realwelt-Situationen) unbefriedigende Wartezeit kann durch die Nutzung der Kommandozeilenwerkzeuge secedit.exe bzw. gpupdate.exe oder die Reduzierung des Aktualisierungsintervalls manipuliert werden.
Die Kommandozeilenwerkzeuge secedit.exe (Windows 2000) bzw. gpupdate.exe (ab Windows XP) erzwingen die sofortige Aktualisierung aller Gruppenrichtlinien auf einem
System (siehe folgende Tabelle). Leider gibt es keine Skriptbefehle zum Erzwingen der
Gruppenrichtlinienaktualisierung; Sie können aber die Werkzeuge secedit.exe und
gpupdate.exe aus einem Skript heraus als externe Prozesse starten (vgl. Kapitel 16.2).
155
Kapitel 6 Komponenten für das Scripting
Group
refresh
interval
Gruppenrichtlinienaktualisierung in
Windows 2000
Gruppenrichtlinienaktualisierung ab
Windows XP
secedit /refreshpolicy
user_policy /enforce
secedit /refreshpolicy machine_policy /enforce
gpupdate /force
Eine andere Alternative (nur für Benutzerrichtlinien) besteht darin, das Aktualisierungsintervall herabzusetzen. Es ist möglich, durch die Gruppenrichtlinieneinstellung /Benutzerkonfiguration/Administrative Vorlagen/System/Group Policy/Group refresh
interval for users das Aktualisierungsintervall auf wenige Sekunden (Einstellung 0,
vgl. folgende Abbildung) zu reduzieren.
Wenn Sie das Aktualisierungsintervall in der „ Default Domain Policy“ ändern,
dann wirkt die Aktualisierung sowohl auf Veränderungen in allen bestehenden
Gruppenrichtlinien als auch in Bezug auf die Neuzuordnung von Gruppenrichtlinien oder die Entfernung bereits bestehender Gruppenrichtlinien.
Bild 6.13: Setzen des Aktualisierungsintervalls für Gruppenrichtlinien
156
Windows Management Instrumentation (WMI)
6.5.4
Beispiele
Konkrete Scripting-Beispiele zur GPMC-Komponente folgen in Kapitel 18.
6.6
Windows Management
Instrumentation (WMI)
Die Windows Management Instrumentation (kurz: WMI) ist die größte, mächtigste, WMI
umfassendste und komplizierteste Komponente für das Windows Scripting.
Die Windows Management Instrumentation ist ein übergreifender Ansatz zum Zugriff
auf alle möglichen Arten von System- und Netzwerkinformationen. WMI ermöglicht auch den Zugriff auf Informationen aus Quellen wie Registrierungsdatenbank, Dateisystem und Ereignisprotokolle, die durch andere Einzelkomponenten
bereits abgedeckt sind. Während WMI den Vorteil der Einheitlichkeit bietet, sind
die speziellen Komponenten im konkreten Anwendungsfall oft etwas einfacher zu
handhaben. Daneben gibt es aber unzählige Funktionen, die man nur mit WMI
realisieren kann.
WMI ist die Microsoft-Implementierung des Web Based Enterprise Managements WBEM
(WBEM). WBEM ist ein Standard der Desktop Management Task Force (DMTF) für
das Netz- und Systemmanagement, also zur Verwaltung von Netzwerk- und Systemressourcen (z.B. Hardware, Software, Benutzer). WBEM wurde ursprünglich
von BMC Software, Cisco Systems, Compaq, Intel und Microsoft entwickelt und
später an die DMTF übergeben. Aus historischen Gründen findet man in WMITools häufig noch die Bezeichnung WBEM.
Kern von WBEM ist das Common Information Model (CIM), das die durch WBEM zu CIM
verwaltenden Ressourcen durch objektorientierte Methoden modelliert. CIM ist
ein Framework zur Beschreibung sowohl physischer als auch logischer Objekte
(alias Managed Objects). Die DMTF versteht CIM als eine Vereinigung bestehender
Managementarchitekturen wie dem OSI Management Framework X.700 (Common
Management Information Protocol – CMIP) und dem Simple Network Management Protocol.
Ein Managed Object (MO) ist eine von WMI/WBEM verwaltete und im CIM Managed
Object
beschriebene Ressource in einem System oder einem Netzwerk.
Der Name Web Based Enterprise Management ist irreführend, weil er nahelegt, dass
es sich bei WBEM um eine grafische Benutzerschnittstelle auf Webbasis für das
Management von Systeminformationen handelt. WBEM ist jedoch lediglich
eine Architektur mit Programmierschnittstelle, also weder Tool noch Anwendung.
157
Kapitel 6 Komponenten für das Scripting
6.6.1
Installation
WMI ist in vielen verschiedenen Versionen im Umlauf, siehe Tabelle.
Tabelle 6.8
Verfügbarkeit
der WMIKomponente
Betriebssystem
Verfügbarkeit
Windows 95
Nicht enthalten, Add-On für WMI 1.5 kann installiert werden
Windows 98
Version 1.0 enthalten, Add-On für WMI 1.5 kann installiert werden
Windows ME
WMI 1.5 enthalten
Windows NT4
Nicht enthalten, Add-On für WMI 1.5 kann installiert werden
Windows 2000
WMI 1.5 gehört zum Standardinstallationsumfang
Windows XP
WMI 5.1 gehört zum Standardinstallationsumfang
Windows Server 2003
WMI 5.2 gehört zum Standardinstallationsumfang
Windows Vista und
Windows Server2008
WMI 6.0 gehört zum Standardinstallationsumfang
Windows 7 und
Windows Server
2008 R2
WMI 6.1 gehört zum Standardinstallationsumfang
Windows 8 und
WMI 6.2 gehört zum Standardinstallationsumfang
Windows Server 2012
Im Zuge von Windows 8/Windows Server 2012 entwickelte Microsoft auch eine
neue Implementierung von WMI. Microsoft nennt diese Version „ WMI 2“. Damit
bezieht Microsoft sich aber auf die grundlegende WMI-Infrastruktur, während
die Versionszählung 6.x sich auf die Inhalte im WMI-Repository bezieht. Microsoft
knüpft für die WMI-Infrastruktur an die alte Versionszählung (1.5) bei Windows 2000 an.
WMI 2 ist für alle Betriebssysteme verfügbar, auf denen auch PowerShell 3.0
verfügbar ist (also ab Windows 7 und Windows Server 2008) und wird zusammen mit PowerShell 3.0 als Teil des „ Windows Management Framework“ installiert.
Versionsnummer
ermitteln
Um die Versionsnummer des bei Ihnen installierten WMI zu ermitteln, starten Sie
das Skript WMI-Version.vbs von der Website zu diesem Buch (Verzeichnis /Skripte/
Kapitel06/).
'
'
'
'
WMI-Version.vbs
WMI-Version ermitteln
verwendet: WMI
-------------------------------
Dim objWO ' As WbemScripting.SWbemObject
Set objWO = GetObject("WinMgmts:root\default:__cimomidentification=@")
Msgbox "WMI-Version: " & objWO.versionusedtocreatedb
Listing 6.4: /Skripte/Kapitel06/WMI-Version.vbs
158
Windows Management Instrumentation (WMI)
Provider
WMI ist – genau wie ADSI – nicht in einer einzigen DLL realisiert. Für unterschied- Provider
liche Systembausteine gibt es unterschiedliche sogenannte WMI-Provider. Für
jeden WMI-Provider existiert eine DLL.
WMI kann genauso wie ADSI Fernzugriffe auf andere Computer realisieren.
Anders als bei ADSI muss dazu aber auf beiden Computern WMI installiert sein.
WMI starten
WMI wird durch die ausführbare Datei WinMgmt.exe implementiert. WinMgmt.exe Winläuft unter NT-basierten Systemen als Dienst unter dem Namen „ WinMgmt Mgmt.exe
(Windows-Verwaltungsinstrumentation)“. Auf Windows 9x/Windows ME wird
WinMgmt.exe beim ersten WMI-Aufruf als normaler Prozess gestartet, wenn ein
Aufruf erfolgt.
Bitte stellen Sie auf NT-basierten Systemen sicher, dass die WMI-Dienste sowohl
auf dem aufrufenden als auch auf dem aufgerufenen Rechner nicht deaktiviert
sind, weil sonst Ihre Skripte nicht funktionieren können.
6.6.2
WMI-Klassen
WMI 6.2 bietet derzeit mehrere tausend Klassen. Zum Beispiel gibt es auf einem
Windows 8 mit installiertem Office 2010 25.114 Klassen. Durch die Installation von
Zusatzprodukten kommen Dutzende, teilweise sogar Hunderte weiterer Klassen
hinzu, da heute viele Softwareprodukte einen WMI-Provider mitliefern.
WMI-Klassen beginnen meistens mit der Vorsilbe „ Win32“ oder „ CIM“. Spezielle
Systemklassen beginnen mit einem doppelten Unterstrich „ __“.
WMI-Klassennamen
Bedeutung
Win32_OperatingSystem
Klasse für das installierte Betriebssystem
Win32_CDRomDrive
CD-ROM-Laufwerk
Win32_Networkadapter
Netzwerkadapter
Win32_LogicalDisk
Laufwerk
Win32_VideoController
Grafikkarte
CIM_DataFile
Datei
CIM_Directory und Win32_Directory
Verzeichnis/Ordner
Win32_Product
Installierte Software
Win32_Process
Laufender Prozess
Win32_WordDocument
Ein Dokument für Microsoft Word
Win32_NTLogEvent
Ereignisprotokolleintrag
Win32_UserAccount
Benutzerkonto (lokales Konto oder Domänenkonto)
Tabelle 6.9
Beispiele für
WMI-Klassen
159
Kapitel 6 Komponenten für das Scripting
WMI-Klassennamen
Bedeutung
Win32_Share
Verzeichnisfreigabe im Netzwerk
Win32_PingStatus
Klasse zur Ausführung eines Ping
__Namespace
WMI-Namensraum
__Event
Basisklasse für WMI-Ereignisse
__InstanceDeletionEvent
Konkretes Ereignis, das ausgelöst wird, wenn ein
WMI-Objekt gelöscht wurde
6.6.3
Scripting-Hilfsklassen für WMI
Vom eigentlichen WMI ist die WMI-COM-Komponente abzugrenzen. Sie realisiert
ein Metaobjektmodell (vgl. Erläuterungen dazu im Kapitel „ COM“), um die sehr
große Anzahl von WMI-Grundklassen ansteuern zu können und es zu ermöglichen, dass zusätzliche WMI-Provider ohne Veränderung der WMI-COM-Komponente adressiert werden können.
Tabelle 6.10
Klassen der
WMI-COMKomponente
Klasse
Erläuterung
SWbemLocator
Diese Klasse stellt eine (von mehreren) Möglichkeiten dar, die Verbindung zu einem WMI-Server aufzubauen und Zugriff auf einen
Namensraum zu nehmen. Diese Klasse ist instanziierbar durch
WbemScripting.SWbemLocator.
SWbemObject
SWbemObject ist die zentrale Metaklasse für den Zugriff auf WMI-
Instanzen und WMI-Klassen.
160
SWbemObjectSet
Eine Objektmenge von Objekten des Typs SWbemObject.
SWbemServices
Ein SWbemServices-Objekt repräsentiert einen WMI-Namensraum
als Ganzes.
SWbemMethod
Repräsentiert eine Methode in einem MO
SWbemMethodSet
Objektmenge aller Methoden in einem MO
SWbemProperty
Repräsentiert ein Attribut in einem MO
SWbemPropertySet
Objektmenge aller Attribute in einem MO
SWbemObjectPath
Dient dem Lesen und Schreiben von WMI-Pfaden
SWbemNamedValue
Ein SWbemNamedValue speichert ein Attribut-Wert-Paar. Die Klasse
besitzt nur zwei Attribute (Name und Value).
SWbemNamedValueSet
Liste von SWbemNamedValue-Objekten, repräsentiert also eine Liste
von Attribut-Wert-Paaren. Dieses Instrument wird z.B. eingesetzt,
um die Schlüsselwerte eines MO zu ermitteln und um bei asynchronen Aufrufen Informationen an die Ereignisbehandlungsroutinen zu übermitteln.
SWbemPrivilege
Repräsentiert ein einzelnes Privileg
Windows Management Instrumentation (WMI)
Klasse
Erläuterung
SWbemPrivilegeSet
Liste aller Privilegien
SWbemQualifier
Repräsentiert einen Qualifier
SWbemQualifierSet
Repräsentiert eine Liste von Qualifiern
SWbemSecurity
Sicherheitseinstellungen, die aber auch über den WMI-Pfad
vorgenommen werden können. Die Klassen SWbemLocator,
SWbemServices, SWbemObject, SWbemObjectSet, SWbemObjectPath,
SWbemLastError und SWbemEventSource besitzen ein Attribut
Security_ vom Typ SWbemSecurity.
SWbemEventSource
Ein Objekt dieser Klasse ist das Ergebnis der Methode
ExecNotificationQuery() aus der Klasse SWbemServices. Nach der
Ausführung einer Aktion dient das SWbemEventSource-Objekt dazu,
die auftretenden Ereignisse nacheinander abzugreifen.
SWbemLastError
Informationen über den letzten Fehler. Der Aufbau der Klasse
entspricht exakt dem der Klasse SWbemObject.
SWbemSink
SWbemSink dient COM-Clients dazu, Benachrichtigungen von
Ereignissen und im Rahmen von asynchronen WMI-Operationen
zu empfangen.
SWbemLocator
"WbemScripting.SWbemLocator"
SWbemService
ConnectServer()
SWbemObjectSet
AssociatorsOf()
ExecQuery()
InstancesOf()
ReferencesTo()
SubclassesOf()
SWbemObject
InParameters
OutParameters
ExecMethod()
Get()
SWbemObjectPath
"WbemScripting.SwbemObjectPath"
Methods_
SWbemMethodsSet
Path_
SWbemMethod
SWbemNamedValueSet
Qualifiers
Keys
SWbemPropertySet
SWbemNamedValue
Properties_
SWbemProperty
Qualifiers
WbemQualifierSet
Qualifiers_
© Holger@Schwichtenberg.de
WbemQualifier
Bild 6.14: Das komplette Objektmodell der WMI-Scripting-Hilfsklassen
161
Kapitel 6 Komponenten für das Scripting
6.6.4
Objektauswahl
Grundsätzlich verwendet WMI den GetObject()-Befehl. Bei GetObject() anzugeben
ist eine Zeichenkette in einer speziellen Form, ein sogenannter WMI-Pfad.
Ein WMI-Pfad ist folgendermaßen aufgebaut:
Aufbau der
WMI-Pfade
WinMgmts:\\Computer\Namensraum:Klasse.Schluessel='wert'
Dabei bedeuten die jeweiligen Elemente Folgendes:
왘 WinMgmts ist ein feststehender Begriff, der dem WSH sagt, dass nun WMI zu ver-
wenden ist. Anders als bei ADSI ist die Groß-/Kleinschreibung egal.
왘 Computer steht für den Namen des anzusprechenden Computers. Ein Punkt in
Anführungszeichen (" ") steht dabei für den lokalen Computer, auf dem das Skript
läuft.
왘 Namensraum: Da WMI so viele Klassen besitzt, sind diese in einen hierarchischen
Baum einsortiert. Der Pfad in dem Baum wird Namensraum (engl. Namespace)
genannt.
왘 Klasse ist der Name der Klasse, die angesprochen werden soll.
왘 Mit Schluessel='wert' wird festgelegt, welche Instanz der Klasse angesprochen
werden soll. Dabei ist Schluessel der Name des Schlüsselattributs der Klasse
und Wert der Wert dieses Schlüsselattributs in der gesuchten Instanz.
Die folgende Tabelle zeigt Beispiele für den Zugriff auf WMI-Objekte am Beispiel der
Klasse Win32_LogicalDisk, die ein Laufwerk repräsentiert. Die Klasse liegt im Namensraum \root\cimv2. Wie Sie der Tabelle entnehmen können, sind viele Bestandteile der
Pfadangabe optional.
Tabelle 6.11
Beispiele für
WMI-Zugriffe
Objekt
Pfad
Die Instanz der Klasse Win32_LogicalDisk aus
dem Namensraum \root\cimv2: mit dem
Namen „D:“ auf dem lokalen Computer
GetObject("WinMgmts:\\.\root\cimv2:
Die Instanz der Klasse Win32_LogicalDisk
aus dem Namensraum \root\cimv2:
mit dem Namen „D:“ auf dem Computer
ServerE02
GetObject("WinMgmts:\\SERVERE02\root\cimv2:
Die Instanz der Klasse Win32_LogicalDisk
aus dem Standardnamensraum mit dem
Namen „D:“ auf dem lokalen Computer
GetObject("WinMgmts:
Win32_LogicalDisk.DeviceID='D:'")
Win32_LogicalDisk.DeviceID='D:'")
Win32_LogicalDisk.DeviceID='D:'")
Der sogenannte Standardnamensraum, in dem die Klasse gesucht wird, wenn
kein Namensraum explizit genannt wurde, ist in der Registrierungsdatenbank
festgelegt (HKEY_LOCAL_MACHINE\Software\Microsoft\WBEM\Scripting\Default
Namespace). Die Standardeinstellung ist \root\cimv2. Sie sollten diese Einstellung
nicht ändern.
162
Windows Management Instrumentation (WMI)
Beispiel
Ein Beispiel hilft, die Anwendung zu veranschaulichen. Das folgende Skript gibt Einzelobjekt
den Namen eines Laufwerks aus und ändert ihn dann. Wichtig ist der Aufruf der ansprechen
Methode Put_(). Änderungen in WMI-Objekten werden erst nach Aufruf dieser
Methode wirksam.
' WMI_EinzelObjekt.vbs
' Ändern des Namens eines Laufwerkes
' verwendet: WMI
' ------------------------------Const COMPUTERNAME = "ServerE02"
Set Laufwerk = GetObject("WinMgmts:\\" & COMPUTERNAME & _ "\root\cimv2:Win32_
LogicalDisk='C:'")
WScript.Echo "Name vorher: " & Laufwerk.VolumeName
Laufwerk.VolumeName = "Laufwerk C"
Laufwerk.Put_
WScript.Echo "Änderung ausgeführt!"
WScript.Echo "Name nachher: " & Laufwerk.VolumeName
Listing 6.5: Verwendung eines einzelnen WMI-Objekts
Mengenzugriffe: alle Instanzen
Eine schöne Besonderheit von WMI besteht darin, dass man nicht nur ein bestimmtes Objekt ansprechen kann, sondern auch alle Instanzen einer Klasse bzw. eine beliebige Teilmenge aus den Instanzen einer Klasse wählen kann.
Dazu nennt man bei GetObject() nur „ WinMgmts“ und den Namen des anzuspre- Alle
chenden Computers. Auf dem zurückgelieferten Objekt ruft man InstancesOf() Instanzen
unter Nennung des Klassennamens auf. Mit For Each kann man dann alle Instanzen ansprechen
auflisten.
'
'
'
'
WMI_Menge1.vbs
Größe der Laufwerke ermitteln
verwendet: WMI
-------------------------------
Set Computer = GetObject("WinMgmts:\\COMPUTERNAME")
Set menge = Computer.InstancesOf("Win32_LogicalDisk")
For Each o In menge
WScript.Echo o.name & " Größe:" & o.size
Next
Listing 6.6: Beispiel für das Auslesen aller Instanzen einer WMI-Klasse
Neu seit Windows Vista ist, dass man in einer WMI-Objektmenge über die Eigenschaft ItemIndex() direkt ein Element der Liste ansprechen kann. Beispielsweise
ist Menge.ItemIndex(1) das zweite Element, weil die Zählung bei 0 beginnt.
163
Copyright
Daten, Texte, Design und Grafiken dieses eBooks, sowie die eventuell
angebotenen eBook-Zusatzdaten sind urheberrechtlich geschützt. Dieses eBook
stellen wir lediglich als persönliche Einzelplatz-Lizenz zur Verfügung!
Jede andere Verwendung dieses eBooks oder zugehöriger Materialien und
Informationen, einschließlich

der Reproduktion,

der Weitergabe,

des Weitervertriebs,

der Platzierung im Internet, in Intranets, in Extranets,

der Veränderung,

des Weiterverkaufs und

der Veröffentlichung
bedarf der schriftlichen Genehmigung des Verlags. Insbesondere ist die
Entfernung oder Änderung des vom Verlag vergebenen Passwortschutzes
ausdrücklich untersagt!
Bei Fragen zu diesem Thema wenden Sie sich bitte an: info@pearson.de
Zusatzdaten
Möglicherweise liegt dem gedruckten Buch eine CD-ROM mit Zusatzdaten bei.
Die Zurverfügungstellung dieser Daten auf unseren Websites ist eine freiwillige
Leistung des Verlags. Der Rechtsweg ist ausgeschlossen.
Hinweis
Dieses und viele weitere eBooks können Sie rund um die Uhr und legal auf
unserer Website herunterladen:
http://ebooks.pearson.de