5
Vorwort
Endlich ist er da: der Nachfolgeband zum erfolgreichen »Professional Series: Scripting Host Praxisbuch«. In den vergangenen vier Monaten wurde ich von E-Mails förmlich überschüttet, und viele Leser wünschten sich die Quellcodes und Hintergrundinformationen dazu, wie man selbst eigene Script-Befehlserweiterungen schreibt. Genau diese Informationen finden Sie in diesem Buch, und obwohl ich weiß, daß es Ihnen wahrscheinlich in den Fingern juckt, sofort zu den einzelnen Kapiteln zu springen und Resultate zu sehen – bitte gönnen Sie sich und mir drei Minuten, und lesen Sie dieses Vorwort bis zu Ende durch.
Was Sie in diesem Buch finden Dieses Buch setzt nahtlos auf dem Vorgängerband »Professional Series: Scripting Host Praxisbuch« auf. Das bedeutet: Sie finden keine Wiederholungen, sondern durchgängig neue und teilweise unglaubliche Möglichkeiten. Das bedeutet aber auch: Wenn Sie bisher noch keinerlei Berührung mit Scripts gehabt haben, dann ist der Vorgängerband die ideale Einstiegslektüre. Und darum geht es in diesem Buch:
Scripting Spy: Das geheime Script-Spionagetool Wo schlummern eigentlich all die versteckten COM-Objekte, die Ihre Scripts fernsteuern können? Woher weiß man, welche Befehle und Funktionen darin enthalten sind? Wie kann man zum Beispiel Winword fernsteuern oder sich die Rechtschreibkontrolle herausklauben, Windows 2000 eigene Texte vorlesen lassen oder den Akkustand des Notebooks überprüfen? Diese Antworten liefert ein kleines Tool, das Sie auf der Buch-CD finden. Der Scripting Spy durchleuchtet Ihr ganzes System und gewährt dann tiefste Einblicke in den inneren Aufbau aller COM-Objekte, die auf Ihrem System installiert sind. Auf Wunsch schreibt der Scripting Spy sogar Beispielskripte für Sie. Hier eine kleine Kostprobe, die der Scripting Spy ausgegraben hat: Auf Windows 2000-Systemen genügt dieses kleine Script, um Ihrem Computer das Sprechen beizubringen – wenn auch mit ausgeprägt amerikanischem Akzent: ’ VBS Windows Script Host File ’ automatisch generiert von Scripting Spy V1.0 set VTxtAuto = CreateObject("Speech.VoiceText") VTxtAuto.Register "", "Demo App" VTxtAuto.Enabled = true VTxtAuto.Speed = 180
6
Vorwort
text = InputBox("Was soll ich sagen?") VTxtAuto.Speak text, 2 MsgBox "Hören Sie mich?" ' ' ' '
"enabled" ist vom Typ "Property " Zurückgelieferter Wert ist vom Typ: Beschreibung von "enabled" Set the Enabled/Disabled state.
"Long"
Internet Explorer – komplett ausgezogen und offengelegt Internet Explorer im Detail: Der Internet Explorer ist ein enorm mächtiges Programm, denn er ist nicht nur für die Anzeige aller Ordner und Laufwerke verantwortlich, sondern kann auch als Scripting Host-Ausgabefenster genutzt werden. Wie der Internet Explorer hinter den Kulissen funktioniert und an welchen Strippen Ihre Scripts ziehen können, zeige ich Ihnen im Detail. Dabei enthülle ich auch das geheimnisvolle Shell.Application-Objekt, mit dem Sie in laufende ExplorerFenster eingreifen, virtuelle Ordner anzeigen und vieles mehr meistern.
Datenbankzugriffe per Script: Möglichkeiten über Möglichkeiten Entdecken Sie, wie leicht Ihre Scripts per ADODB auf jedwede Datenbank zugreifen, sei es Access, Oracle oder MS SQLServer. Kleine Scripts demonstrieren, wie Sie Daten in Datenbanken schreiben, daraus abfragen und sogar Datenbanken verwalten. Sie können per Script neue Tabellen anlegen, Datenbanken löschen und sogar einen Blick ins ansonsten streng geheime Datenbankschema werfen. Es gibt viel zu entdecken, und das Ergebnis hilft dabei, daß aus Datenbanken keine Datengräber werden. Schreiben Sie sich kleine Konvertierungsskripte, die Datenbankinfos direkt in Excel oder Winword ausgeben, oder lassen Sie Ihre Scripts Textlisten einlesen, die dann sofort in die passende Datenbank geschrieben werden.
Eigene neue Script-Befehle mit der Windows-API Windows-API und eigene Befehlserweiterungen schreiben: Ihnen reichen die eingebauten VBScript-Befehle nicht? Sie wollen die CD-Schublade öffnen, eine Internetverbindung herstellen oder NT-Benutzerkonten anlegen? Dann brauchen Sie Zugriff auf die internen Windows-APIFunktionen, und genau das ist ein ganz besonderer Schwerpunkt dieses Buches. Zuerst zeige ich Ihnen, wie Sie mit der kostenlosen Visual Basic CCE eigene Befehlserweiterungen schreiben. Die VB CCE befindet sich übrigens auf der Buch-CD. Anschließend überschütte ich Sie mit mehr als 30 sofort einsetzbaren Programmierprojekten, die Ihnen auf Anhieb Hunderte neuer Befehle bescheren. Natürlich finden Sie auf der Buch-CD den gesamten Quellcode der Projekte. Sie können also darin herumschmökern, den Quellcode ändern oder für eigene Projekte einsetzen. Die ideale Grundlage für ganz spezielle Kundenlösungen, und die Grundgebühr ist auch schon drin: Ich erhebe keine Lizenzgebühren für die Nutzung der Quellcodes, sofern Sie den Quellcode
Vorwort
7
entweder grundlegend ändern oder zumindest eine Referenz auf dieses Buch einfügen. Klar ist natürlich, daß Sie die Quellcodes nicht für eigene Bücher verwenden dürfen.
ADSI: NT-Benutzerkonten und skriptgesteuerte Administration ADSI ist serienmäßiger Teil von Windows 2000, aber auch kostenlos für Windows NT und Windows 9x nachrüstbar. Mit ADSI bekommen Ihre Scripts mit minimalem Aufwand vollen Zugriff auf lokale und globale Benutzerkonten, Gruppen, Computerdienste und Druckerwarteschlangen. Wer mag, kann so mit einem Zehnzeiler automatisiert Hunderte von neuen Benutzerkonten anlegen oder aber checken, welche Konten seit Ewigkeiten nicht mehr im Einsatz sind. Ein wahres Eldorado für NTSystemadministratoren also. Die ADSI-Scripts sparen Stunden und bisweilen sogar Tage.
WMI – Fernwartung, Ferninstallation und die Script-Zukunft Mit WMI werden Dinge möglich, die bislang schiere Phantasterei waren. WMI verwaltet nämlich nicht nur Ihren eigenen Computer, sondern kann quer über das Netzwerk auch jeden x-beliebigen anderen Computer verwalten. Ob Sie das neueste Microsoft Office-Paket überall in der Firma ferninstallieren wollen, ohne sich dabei aus Ihrem bequemen Ledersessel zu erheben, ob Sie herausfinden wollen, welcher RAM-DAC auf der Grafikkarte des Herrn Müller um die Ecke schuftet, oder ob Sie ferngesteuert Programme auf anderen Computern starten oder beenden wollen – alles ist möglich. Und noch viel mehr: WMI kann sich an Events binden, und Ihre WMI-Scripts könnten so vollautomatisch eine tägliche Liste der Programme anlegen, die in Ihrem Netzwerk gestartet und beendet werden oder bestimmten Personen verbieten, ausgewählte Programme auszuführen. WMI findet mit spielerischer Gelassenheit die MAC-Adressen aller Netzwerkkarten in Ihrem Netzwerk heraus, liefert die Sicherheits-IDs aller Benutzerkonten und kann Systeme sogar ferngesteuert neu starten lassen oder herunterfahren. WMI ist eine neue Technik von Windows 2000, die wie ADSI auch bei Windows NT und 9x kostenlos nachrüstbar ist. Weil WMI so universell einsetzbar ist und so unglaublich viele Informationen liefert, ist es ein zweiter Schwerpunkt dieses Buches. Deshalb finden Sie im Anhang B eine ausgesprochen ausführliche Dokumentation aller WMI-Win32-Klassen. Blättern Sie doch mal hin! Alle Informationen, die Sie dort entdecken, können von Ihren Scripts potentiell erfragt werden. Daneben finden Sie zig interessante neue Befehle, zum Beispiel, um einen Computer herunterzufahren oder neue Programme zu starten.
Was Sie brauchen, um loszuskripten... Bevor Sie irgend etwas anderes tun, sollten Sie auf der Buch-CD den neuesten Scripting Host Version 2.0 (5.1) installieren. Den finden Sie im Ordner WSH als STE51DE.EXE. Nur wer Windows 2000 verwendet, hat diese neueste Version bereits.
8
Vorwort
Diese einfache Datei genügt, um jedes 32-Bit-Windows (95 OSR2.1, 98, NT 4.0) mit dem Windows Scripting Host auszustatten. Einfacher geht’s nicht!
Noch mehr Infos und mein persönliches Angebot Brauchen Sie noch mehr Infos, dann schauen Sie auch mal bei www.wininfo.de/scripting vorbei. Hier bemühe ich mich, in meiner freien Zeit aktuelle Hinweise und Zusatzinfos zu hinterlegen. Falls Sie als Firma Interesse an den neuen Scripting-Möglichkeiten bekommen, aber weder Zeit noch Lust haben, alles selbst zu erforschen: Schulungen zum Thema gibt’s ebenfalls. Wer mag, erreicht mich direkt unter
[email protected]. Diesen Weg sind inzwischen schon viele Firmen gegangen, die per Script wichtige Projekte, Datenanbindungen, Administrationsprobleme und natürlich die Migration zu Windows 2000 meistern. Auch sonst freue ich mich sehr über Ihr Feedback, Anregungen und Ideen. Mailen Sie mir. Haben Sie bitte aber Verständnis dafür, daß ich nicht immer sofort antworten kann.
Blumen, Lob und wichtige Details Schließlich noch etwas in eigener Sache: Mit diesem Buch offenbare ich Ihnen mein gesamtes Know-how zu diesem Thema. Klar ist: Wir befinden uns auf Pionier-Terrain. Bestimmt wird das eine oder andere Script, die eine oder andere Befehlserweiterung noch kleine Macken enthalten. Hier sind Sie gefragt. Nehmen Sie meine Quellcodes und Beispiele als Anregungen, und wenn Sie sie weiterentwickeln, dann halten Sie mich bitte auf dem laufenden. Das gilt natürlich insbesondere für Fehler, die Sie entdecken. Apropos Fehler: Das Spionagetool Scripting Spy habe ich ursprünglich ausschließlich für meine eigene Bequemlichkeit programmiert, spontan in einer rotweinhaltigen Woche in der Provence. Dieses Tool liefert so brisante Informationen, daß ich mich entschlossen habe, es auf die Buch-CD zu geben. Es ist aber kein offizieller Teil des Buches, sondern zusammen mit seiner Beschreibung erst nachträglich ins Manuskript eingewandert. Ich sage dies deshalb so deutlich, weil das Tool nicht auf jedem System lauffähig sein wird. Da das Tool vollautomatisch die Windows-Registry analysiert und dies ein sehr komplexes Unterfangen ist, können defekte Registry-Schlüssel oder Dinge, die ich einfach während der Entwicklung nicht habe erahnen können, zum Programmabbruch führen. Falls ausgerechnet Ihnen das passiert, dann steinigen Sie mich nicht, sondern mailen Sie mir:
[email protected]. Ich bin bemüht, das Tool weiterzuentwickeln, doch dazu brauche ich Ihr Feedback. Eine Garantie für die Funktionsfähigkeit des Tools gebe ich ausdrücklich nicht. Ganz zum Schluß geht mein Dank an die freie Entwicklergemeinde, die im Internet uneigennützig wertvolle Lösungen und Informationen bereitstellt. Scripts und die damit verbundenen Technologien dürfen kein Geheimwissen sein. Diese Informationen gehören auf den Tisch, damit jeder sie nutzen kann. Vor allem aus diesem Grund habe ich mich dazu entschlossen, alle Quellcodes offenzulegen und damit meinen Teil zu tun, um die freie Entwicklergemeinde zu stärken, zu der Sie – hoffentlich – auch bald gehören.
9
Inhaltsverzeichnis 1
Sprachschatz Ihrer Scripts erweitern .................................................................... 27 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.2 1.2.1 1.2.2 1.3
2
Der Scripting Host – so funktioniert er wirklich ....................................................... 27 Dinge, die Sie kennen sollten.................................................................................. 28 Ein Script starten: das passiert hinter den Kulissen .................................................. 28 WSCRIPT.EXE oder CSCRIPT.EXE? ........................................................................... 31 Internet Explorer als Script Host einsetzen .............................................................. 31 Die besonderen Funktionen des Script Hosts .......................................................... 32 Objekte bereichern Ihren Script-Wortschatz............................................................ 33 Internet Explorer als sinnvoller Script Host .............................................................. 35 Internet Explorer als unsichtbarer Script Host.......................................................... 37 Streng geheim: HTA-Dateien des Internet Explorer 5 .............................................. 37 Scripts um zusätzliche Funktionen bereichern ......................................................... 39
Mit dem Scripting Spy geheime Systemobjekte ausspionieren .................. 41 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.4 2.5 2.6 2.6.1 2.7 2.7.1 2.7.2 2.8 2.8.1 2.8.2 2.8.3
Scripting Spy – das müssen Sie wissen .................................................................... 41 Scripting Spy installieren......................................................................................... 42 Nachschauen, welche Objekte es auf Ihrem System gibt......................................... 42 Detailinformationen zu einem Objekt sehen ........................................................... 45 Wichtige Objekte in die Favoritenliste übernehmen ................................................ 45 Potentiell nutzlose Objekte aus der Liste verbannen................................................ 46 Röntgen-Schirm: Welche Funktionen schlummern in den Objekten?......................... 46 Wie COM-Objekte aufgebaut sind .......................................................................... 47 Nach Informationen suchen ................................................................................... 50 Wo soll gesucht werden? ........................................................................................ 50 Wonach suchen Sie eigentlich?............................................................................... 51 Wie soll gesucht werden – genau oder unscharf?.................................................... 51 Szenario 1: Nach einer ProgID suchen .................................................................... 51 Szenario 2: Nach nützlichen Befehlen suchen ......................................................... 53 Neue Scripting-Funktionen entdecken .................................................................... 53 VBScript und WSH durchleuchten........................................................................... 54 Hilfe zu individuellen Script-Befehlen bekommen.................................................... 55 Geheime Hilfedateien liefern Profi-Informationen.................................................... 56 Vollautomatisch Scripts erstellen............................................................................. 57 Szenario 1: Den Rechner scriptgesteuert herunterfahren ......................................... 57 Szenario 2: Den Inhalt eines Ordners auflisten ........................................................ 60 Fremde Programme per Script fernsteuern ............................................................. 63 Winwords Rechtschreibprüfung für eigene Zwecke nutzen ..................................... 64 Wichtige Dinge, an die Sie denken sollten .............................................................. 66 Noch mehr Automation: Automatisch Texte korrigieren ......................................... 66
10 3
Inhaltsverzeichnis
Die eingebauten WSH-Befehle: Wscript-Objekt ................................................ 69 3.1 3.1.1 3.1.2 3.1.3 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.4 3.4.1 3.4.2 3.4.3 3.4.4 3.5 3.5.1 3.5.2 3.5.3 3.5.4
4
Informationen über den Scripting Host................................................................... 69 Das Application-Objekt........................................................................................... 69 Die Version des WSH ermitteln ............................................................................... 70 Pfadnamen und geheime Antworten ...................................................................... 70 Informationen über das Script bekommen .............................................................. 72 Begleitinformation aus dem Scriptordner öffnen..................................................... 72 Logbuch-Datei: Wann und wie oft wird ein Script benutzt? .................................... 73 Drag&Drop: Argumente ans Script übergeben ....................................................... 74 Argumente an Scripts verfüttern ............................................................................. 74 Scripts als DOS-Befehle einsetzen ........................................................................... 75 Mit den DOS-Streams Ein- und Ausgaben ins DOS-Fenster machen........................ 76 Piping – Ergebnisse von anderen Befehlen verfeinern.............................................. 78 Mit Echo: Ergebnisse direkt ans DOS-Fenster .......................................................... 80 Mit Events arbeiten................................................................................................. 81 CreateObject: Geheimtür zu fremden Objekten...................................................... 81 ConnectObject: Eventüberwachung einschalten ..................................................... 83 DisconnectObject: Eventüberwachung ausknipsen ................................................ 83 GetObject: In bestehende Objekte einklinken ......................................................... 84 Scripts anhalten und sofort beenden ...................................................................... 85 Interactive: Alle Benutzerausgaben unterdrücken.................................................... 86 Sleep: Script eine zeitlang anhalten ........................................................................ 86 Quit: Script sofort beenden .................................................................................... 86 Timeout: Script mit eingebauter Notbremse ........................................................... 86
Zugriff auf das Dateisystem: Scripting.FileSystemObject .............................. 89 4.1 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.2.10 4.2.11 4.2.12 4.2.13 4.2.14 4.2.15 4.2.16 4.2.17 4.2.18
Das Objekt-Modell kennenlernen............................................................................ 89 Allgemeine Befehle des Scripting.FileSystemObject................................................. 90 BuildPath................................................................................................................ 91 CopyFile ................................................................................................................. 91 CopyFolder............................................................................................................. 91 DeleteFile ............................................................................................................... 91 DeleteFolder ........................................................................................................... 92 DriveExists .............................................................................................................. 92 FileExists ................................................................................................................. 92 FolderExists............................................................................................................. 92 GetAbsolutePathName ........................................................................................... 92 GetBaseName......................................................................................................... 93 GetDriveName ....................................................................................................... 93 GetExtensionName................................................................................................. 93 GetFileName .......................................................................................................... 93 GetFileVersion ........................................................................................................ 94 GetParentFolderName ............................................................................................ 94 GetTempName....................................................................................................... 94 MoveFile................................................................................................................. 95 MoveFolder ............................................................................................................ 95
Inhaltsverzeichnis 4.3 4.3.1 4.3.2 4.3.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.4.10 4.4.11 4.4.12 4.5 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.6 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.6.8 4.6.9 4.6.10 4.6.11 4.6.12 4.6.13 4.6.14 4.6.15 4.6.16 4.6.17 4.6.18 4.6.19 4.7 4.7.1
11
Laufwerke managen ............................................................................................... 95 GetDrive – spezifisches Laufwerk heraussuchen....................................................... 95 Drives – alle Laufwerke, die es gibt ......................................................................... 95 Drive – das Laufwerk eines Ordners ........................................................................ 95 Methoden und Eigenschaften des Drive-Objekts..................................................... 96 AvailableSpace........................................................................................................ 96 DriveLetter.............................................................................................................. 97 DriveType............................................................................................................... 97 FileSystem .............................................................................................................. 97 FreeSpace ............................................................................................................... 98 IsReady ................................................................................................................... 98 Path........................................................................................................................ 98 RootFolder.............................................................................................................. 98 SerialNumber ......................................................................................................... 98 ShareName ............................................................................................................ 99 TotalSize................................................................................................................. 99 VolumeName ......................................................................................................... 99 Ordner managen.................................................................................................... 99 CreateFolder......................................................................................................... 101 GetFolder ............................................................................................................. 101 GetSpecialFolder................................................................................................... 101 RootFolder............................................................................................................ 101 ParentFolder ......................................................................................................... 101 Subfolders ............................................................................................................ 102 Eigenschaften des Folder-Objekts ......................................................................... 102 Attributes ............................................................................................................. 103 Copy .................................................................................................................... 104 CreateTextFile....................................................................................................... 104 DateCreated ......................................................................................................... 105 DateLastAccessed ................................................................................................. 106 DateLastModified ................................................................................................. 106 Delete................................................................................................................... 106 Drive .................................................................................................................... 106 Files ...................................................................................................................... 106 IsRootFolder ......................................................................................................... 107 Move.................................................................................................................... 107 Name ................................................................................................................... 107 ParentFolder ......................................................................................................... 107 Path...................................................................................................................... 108 ShortName........................................................................................................... 108 ShortPath ............................................................................................................. 108 Size ...................................................................................................................... 108 SubFolders............................................................................................................ 108 Type ..................................................................................................................... 109 Dateien managen ................................................................................................. 109 GetFile.................................................................................................................. 109
12
Inhaltsverzeichnis 4.7.2 4.8 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.8.9 4.8.10 4.8.11 4.8.12 4.8.13 4.8.14 4.8.15 4.8.16 4.9 4.9.1 4.9.2 4.9.3 4.10 4.10.1 4.10.2 4.10.3 4.10.4 4.10.5 4.10.6 4.10.7 4.10.8 4.10.9 4.10.10 4.10.11 4.10.12 4.10.13
5
Files ...................................................................................................................... 109 Eigenschaften und Methoden des File-Objekts...................................................... 110 Attributes ............................................................................................................. 110 Copy .................................................................................................................... 110 DateCreated ......................................................................................................... 111 DateLastAccessed ................................................................................................. 111 DateLastModified ................................................................................................. 111 Delete................................................................................................................... 111 Drive .................................................................................................................... 112 Move.................................................................................................................... 112 Name ................................................................................................................... 112 OpenAsTextStream............................................................................................... 112 ParentFolder ......................................................................................................... 113 Path...................................................................................................................... 113 ShortName........................................................................................................... 113 ShortPath ............................................................................................................. 113 Size ...................................................................................................................... 113 Type ..................................................................................................................... 114 Dateien neu anlegen, auslesen und verändern ...................................................... 114 CreateTextFile....................................................................................................... 115 OpenTextFile ........................................................................................................ 115 OpenAsTextStream............................................................................................... 116 Eigenschaften und Methoden von TextStreamObject ........................................... 116 AtEndOfLine ......................................................................................................... 116 AtEndOfStream..................................................................................................... 117 Close .................................................................................................................... 117 Column ................................................................................................................ 117 Line ...................................................................................................................... 117 Read ..................................................................................................................... 117 ReadAll ................................................................................................................. 117 ReadLine............................................................................................................... 117 Skip ...................................................................................................................... 118 SkipLine................................................................................................................ 118 Write .................................................................................................................... 118 WriteBlankLines .................................................................................................... 118 WriteLine .............................................................................................................. 118
Zugriff auf die Webansicht: Shell.Application ................................................. 119 5.1 5.2 5.2.1 5.3 5.3.1 5.3.2 5.3.3 5.3.4
Das Objekt-Modell kennenlernen.......................................................................... 119 Die Service-Funktionen des Shell.Application-Objekts ........................................... 120 Versionen und aktuelle Shell-Komponenten.......................................................... 121 Beispielscripts für Shell.Application ....................................................................... 122 CanStartStopService ............................................................................................. 122 CascadeWindows ................................................................................................. 123 ControlPanelItem ................................................................................................. 123 EjectPC ................................................................................................................. 123
Inhaltsverzeichnis 5.3.5 5.3.6 5.3.7 5.3.8 5.3.9 5.3.10 5.3.11 5.3.12 5.3.13 5.3.14 5.3.15 5.3.16 5.3.17 5.3.18 5.3.19 5.3.20 5.3.21 5.3.22 5.3.23 5.3.24 5.3.25 5.3.26 5.3.27
6
13
Explore ................................................................................................................. 123 FileRun ................................................................................................................. 124 FindComputer ...................................................................................................... 124 FindFiles ............................................................................................................... 124 FindPrinter............................................................................................................ 124 GetSystemInformation.......................................................................................... 124 Help ..................................................................................................................... 125 IsRestricted ........................................................................................................... 125 IsServiceRunning .................................................................................................. 126 MinimizeAll .......................................................................................................... 126 Open.................................................................................................................... 126 RefreshMenu ........................................................................................................ 126 ServiceStart .......................................................................................................... 126 ServiceStop........................................................................................................... 127 SetTime ................................................................................................................ 127 ShellExecute ......................................................................................................... 127 ShowBrowserBar................................................................................................... 128 ShutdownWindows .............................................................................................. 128 Suspend ............................................................................................................... 128 TileHorizontally..................................................................................................... 129 TileVertically ......................................................................................................... 129 TrayProperties ...................................................................................................... 129 UndoMinimizeALL ................................................................................................ 129
Zugriff auf die Webansicht: Shell.Application ................................................. 131 6.1 6.1.1 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.3.8 6.3.9 6.3.10 6.3.11 6.3.12 6.3.13
Auf Ordner zugreifen: das Folder-Objekt............................................................... 131 Auf ein unsichtbares Folder-Objekt zugreifen ........................................................ 132 Der Inhalt eines Ordners: das FolderItem-Objekt................................................... 134 Direkt ein FolderItem-Objekt ansprechen.............................................................. 134 Mit BrowseForFolder Ordnernamen erfragen ........................................................ 137 Virtuelle Ordner über Codezahlen ansprechen...................................................... 138 Mit GUIDs virtuelle Ordner im Explorer sichtbar machen ...................................... 141 Der innere Aufbau des FolderItem-Objekts............................................................ 144 ExtendedProperty ................................................................................................. 144 GetFolder ............................................................................................................. 154 GetLink................................................................................................................. 155 InvokeVerb ........................................................................................................... 156 InvokeVerbEx........................................................................................................ 159 IsBrowsable .......................................................................................................... 160 IsFileSystem .......................................................................................................... 160 IsFolder................................................................................................................. 160 IsLink .................................................................................................................... 160 ModifyDate .......................................................................................................... 160 Name ................................................................................................................... 160 Parent................................................................................................................... 161 Path...................................................................................................................... 161
14
Inhaltsverzeichnis 6.3.14 6.3.15 6.3.16 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.4.7 6.4.8 6.4.9 6.4.10 6.4.11 6.4.12 6.4.13 6.4.14 6.4.15 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.5.5 6.5.6
7
Size ...................................................................................................................... 161 Type ..................................................................................................................... 161 Verbs .................................................................................................................... 161 Der innere Aufbau des Folder-Objekts................................................................... 161 Application ........................................................................................................... 162 CopyHere ............................................................................................................. 162 DismissedWebViewBarricade ................................................................................ 164 GetDetailsOf......................................................................................................... 164 HaveToShowWebViewBarricade............................................................................ 168 Items .................................................................................................................... 168 MoveHere............................................................................................................. 168 NewFolder............................................................................................................ 169 OfflineStatus......................................................................................................... 169 Parent................................................................................................................... 169 ParentFolder ......................................................................................................... 170 ParseName ........................................................................................................... 170 Self ....................................................................................................................... 170 Synchronize.......................................................................................................... 170 Title ...................................................................................................................... 171 Den Explorer fernsteuern: IWebBrowser2.............................................................. 171 Kosmetik: Die Display-Eigenschaften des Explorers steuern ................................... 172 Navigieren: Inhalt im Explorer anzeigen ............................................................... 173 Per Script in den Explorer-Inhalt eingreifen ........................................................... 174 Dateien im Explorer ferngesteuert markieren ........................................................ 175 Eigenschaften-Dialogfenster aufrufen.................................................................... 177 In HTML-Dokumente eingreifen ........................................................................... 178
Eigene Script-Befehlserweiterungen schreiben............................................... 181 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.1.6 7.2 7.2.1 7.2.2 7.3 7.3.1 7.3.2 7.3.3 7.4 7.4.1 7.4.2 7.4.3
Die Visual Basic CCE startklar machen................................................................... 181 Die VB CCE kennenlernen..................................................................................... 182 Der Project Explorer – Ihr Inhaltsverzeichnis.......................................................... 183 Ihr neues COM-Objekt mit Leben füllen ............................................................... 185 Ihr COM-Objekt testen: Kompilieren .................................................................... 186 Der erste Versuch: Ihren neuen Befehl von Scripts aus ansprechen........................ 187 Die Vorteile neuer COM-Objekte .......................................................................... 188 Die Windows-API verwenden: CD-ROM-Schublade öffnen und schließen ............. 188 Ein neues Projekt starten....................................................................................... 189 Die CD-ROM-Schublade fernsteuern..................................................................... 189 Eigene Dialogfenster entwerfen ............................................................................ 190 Ein Dialogfenster gestalten ................................................................................... 191 Der Test: Ihr eigenes Dialogfenster im Einsatz testen............................................. 197 Wichtige Rahmen-Kosmetik .................................................................................. 198 Ihre neuen COM-Objekte an andere weitergeben................................................. 198 COM-Objekte direkt weitergeben......................................................................... 199 Eigene Setup-Pakete schnüren .............................................................................. 199 Empfehlungen aus der Praxis ................................................................................ 200
Inhaltsverzeichnis
8
15
Programmier-Trickkiste ............................................................................................ 201 8.1 8.1.1 8.2 8.2.1 8.3 8.4 8.5 8.6 8.6.1 8.6.2 8.7 8.7.1 8.7.2 8.8 8.8.1 8.9 8.10 8.11 8.11.1 8.11.2 8.11.3 8.11.4 8.11.5 8.11.6 8.12 8.12.1 8.12.2 8.13 8.13.1 8.13.2 8.13.3 8.13.4 8.13.5 8.13.6 8.13.7 8.13.8 8.14 8.15 8.15.1 8.16 8.16.1 8.17 8.17.1 8.18 8.18.1
Befehlserweiterungen zum Leben erwecken.......................................................... 201 VBP-Projektdateien mit der VB CCE verknüpfen .................................................... 201 Anwendungen zuverlässig in den Vordergrund schalten ....................................... 202 Umschaltsperre abschalten ................................................................................... 202 Bildschirmfotos schießen ...................................................................................... 203 Die Zwischenablage lesen und ändern.................................................................. 205 Echte Laufwerksgrößen – ohne 2 GB Bug! ............................................................ 205 Auswahldialog für Ordner..................................................................................... 206 Flags verwenden – und sogar Dateien aussuchen! ................................................ 207 Virtuelle Ordner – Ihr Dialogfenster spielt mit ....................................................... 208 Icons verwalten – das Icon-Dialogfenster .............................................................. 210 Nach Icons suchen ............................................................................................... 211 Icon-Liste anlegen................................................................................................. 212 Icons konvertieren und verändern......................................................................... 213 System-Icons verändern........................................................................................ 215 Noch ein undokumentiertes Fenster: Disk-Formatierung....................................... 217 Ganz eigene Dialogfenster entwerfen ................................................................... 218 Internet-Zugang automatisieren ........................................................................... 219 Internetverbindungen herstellen und abbauen ..................................................... 220 Zugriff auf FTP-Verzeichnisse ................................................................................ 221 Dateien per FTP herunterladen ............................................................................. 221 Lokale Webseiten auf den Webserver hochladen................................................... 222 Art des Internetzugangs ermitteln......................................................................... 226 Winsock: Hostnamen und IP-Adressen .................................................................. 227 Listen anzeigen mit dem ListView-Tool ................................................................. 228 Listen anlegen und sortieren................................................................................. 228 Listen sortieren, ohne Dialogfenster anzuzeigen ................................................... 230 Multimediageräte fernsteuern............................................................................... 230 Multimediageräte aussuchen ................................................................................ 231 Herausfinden, was das CD-ROM gerade tut .......................................................... 233 Typ der eingelegten CD bestimmen ..................................................................... 233 Details über Musik-CDs erfahren........................................................................... 235 Musik-CDs sekundengenau anspielen ................................................................... 236 MIDI-Dateien spielen ............................................................................................ 237 Video-Dateien anschauen ..................................................................................... 237 Automatisch CD-Tracks in WAV-Dateien verwandeln ............................................ 238 Speicherhaushalt genau beobachten .................................................................... 239 Verschiedene nützliche Systeminformationen ....................................................... 240 Liste der installierten Schriften .............................................................................. 241 Echte unabhängige Dialogfenster generieren........................................................ 241 Dialogfenster mit Fortschrittsanzeige .................................................................... 242 NT-Service-Dienste verwalten ............................................................................... 244 Zustandsbericht aller Dienste................................................................................ 244 Windows herunterfahren – auch remote............................................................... 245 Den eigenen Computer neu starten...................................................................... 245
16
Inhaltsverzeichnis 8.18.2 8.19 8.19.1 8.19.2 8.19.3 8.19.4 8.19.5 8.19.6 8.19.7 8.19.8 8.19.9 8.20 8.20.1 8.20.2 8.21 8.21.1 8.21.2 8.21.3 8.21.4 8.21.5 8.21.6 8.22 8.22.1 8.23 8.23.1 8.23.2 8.23.3 8.23.4 8.23.5 8.23.6 8.23.7 8.24 8.24.1 8.24.2 8.24.3 8.24.4 8.24.5 8.25 8.25.1 8.25.2 8.25.3 8.26 8.26.1 8.27 8.27.1 8.28
Ein System ferngesteuert herunterfahren .............................................................. 246 NT-Benutzerkonten verwalten .............................................................................. 246 Benutzerkonten eines Rechners listen.................................................................... 247 Benutzerkonten filtern .......................................................................................... 247 Neue Benutzerkonten anlegen.............................................................................. 248 Benutzerkonten löschen ....................................................................................... 249 Kennworte ändern................................................................................................ 249 Globale Gruppen auflisten .................................................................................... 249 In welchen Gruppen bin ich Mitglied? .................................................................. 250 Konten in eine Gruppe einfügen........................................................................... 250 Primären Domänencontroller finden..................................................................... 250 Informationen über Ihr Betriebssystem ................................................................. 251 Windows-Version ermitteln................................................................................... 251 Werden bestimmte DLLs bei mir unterstützt? ....................................................... 252 Programme steuern und beenden ........................................................................ 252 Programme starten: der herkömmliche Weg......................................................... 252 Programme per API fernsteuern ............................................................................ 253 Programme per API starten................................................................................... 253 Prüfen, ob ein Programm noch läuft ..................................................................... 255 Warten, bis ein Programm beendet wird .............................................................. 255 Fremde Programme schließen .............................................................................. 255 Eigenschaften-Seiten anzeigen.............................................................................. 256 Eigenschaften von Laufwerken, Dateien, Druckern................................................ 257 Zugriff auf die Registry.......................................................................................... 257 Unterschlüssel auflisten......................................................................................... 258 Einträge in einem Registry-Schlüssel listen ............................................................ 258 Versionsunabhängige Scripts schreiben ................................................................ 259 Variablentyp von Registry-Einträgen herausfinden................................................. 260 Binärdaten lesen und schreiben ............................................................................ 260 Registry-Daten löschen ......................................................................................... 260 Herausfinden, ob es einen bestimmten Schlüssel gibt ........................................... 261 Bildschirmauflösung und Farbtiefe ändern ............................................................ 261 Alle verfügbaren Grafikkarten-Einstellungen sehen ................................................ 262 Aktuelle Grafikkarten-Einstellungen sichtbar machen ............................................ 262 Beste Bildwiederholrate ermitteln ......................................................................... 262 Eine andere Bildwiederholfrequenz einstellen........................................................ 263 Bildschirmauflösung ändern ................................................................................. 263 Dateien kopieren und löschen .............................................................................. 263 TEMP-Dateien in den Papierkorb löschen.............................................................. 264 Papierkorb löschen ............................................................................................... 265 Backups anlegen................................................................................................... 265 Icons im Gerätefeld der Taskleiste anzeigen .......................................................... 267 Scripts per Taskleisten-Icon steuern....................................................................... 267 Versionsinformationen über Dateien erhalten ....................................................... 268 Informationen über Dateien herausfinden............................................................. 268 Eigene HTML-Dialogfenster verwenden ............................................................... 269
Inhaltsverzeichnis 8.28.1 8.28.2 8.28.3 8.28.4 8.28.5 8.28.6
9
17
Einfache HTML-Dialogfenster verwenden.............................................................. 269 Schaltflächen mit Scriptprozeduren verbinden...................................................... 271 Kommunikation zwischen HTML-Vorlage und Script............................................. 272 Luxus-Optionen für HTML-Dialoge ....................................................................... 274 Formulareingaben prüfen ..................................................................................... 276 Optionsfelder verwenden ..................................................................................... 277
Auf Datenbanken zugreifen: Universal Data Access ...................................... 279 9.1 9.1.1 9.1.2 9.2 9.2.1 9.2.2 9.2.3 9.3 9.3.1 9.3.2 9.4 9.4.1 9.4.2 9.4.3 9.5 9.5.1 9.6 9.7 9.7.1 9.7.2 9.7.3 9.7.4 9.7.5 9.8 9.8.1 9.8.2 9.8.3 9.9 9.10 9.10.1 9.10.2
Wie kommt man an ADO DB heran? .................................................................... 279 ADO DB Versionsdschungel: So blicken Sie durch................................................. 281 ADO DB-Version bestimmen: die Zweite............................................................... 282 Informationen aus einer Datenbank auslesen ........................................................ 282 Den Inhalt einer Datenbank auflisten .................................................................... 283 Eigene Daten in die Datenbank einfügen .............................................................. 284 Daten aus der Datenbank löschen ........................................................................ 285 Wie’s funktioniert: ADO DB auf die Finger geschaut ............................................. 286 Eine Datenbankverbindung herstellen................................................................... 286 Mit SQL die Datenbank »bedienen« ..................................................................... 287 SELECT: Daten auswählen..................................................................................... 287 Nur ganz bestimmte Datensätze herausfischen..................................................... 287 Datenbank-Ergebnis sortieren ............................................................................... 288 Wichtige Fallen rund um SELECT .......................................................................... 288 INSERT INTO: Neue Daten in die Datenbank schreiben ........................................ 288 Tücken rund um INSERT INTO ............................................................................. 289 DELETE – Informationen aus der Datenbank streichen .......................................... 290 Die innere Struktur einer Datenbank aufdecken .................................................... 290 Feldnamen sichtbar machen................................................................................. 290 Variablentypen der Felder entschlüsseln................................................................ 291 Alle Tabellen in der Datenbank auflisten ............................................................... 292 Das Schema: So kommen Sie an Infos heran......................................................... 293 Na also: Systemtabellen von normalen Tabellen unterscheiden ............................ 294 Eigene Tabellen anlegen ....................................................................................... 296 Alle Tabellen in einer Datenbank löschen.............................................................. 296 Eigene neue Datenbank-Tabellen anlegen ............................................................ 297 Das steckt dahinter: Variablentypen auflisten ........................................................ 300 Die innere Struktur Ihrer Datenbankzugriffe.......................................................... 301 System-DSN: Datenbanken systemweit administrieren ......................................... 303 Eine neue System-Datenbank anlegen .................................................................. 303 Auf eine DSN-Datenbank zugreifen ...................................................................... 305
10 ADSI: Netzwerk und Benutzerkonten verwalten ............................................ 307 10.1 10.1.1 10.2 10.2.1 10.3
ADSI – die Geheimtür in die Netzwerkwelt aufstoßen ........................................... 307 Welche Datenquellen kann ADSI sichtbar machen? .............................................. 308 WinNT: Computerverwaltung par excellence........................................................ 308 Alle Computer auflisten, die momentan online sind.............................................. 309 Spionage: Welche Informationen liefert ein Objekt eigentlich?.............................. 310
18
Inhaltsverzeichnis 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.4.3 10.5 10.5.1 10.5.2 10.6 10.6.1 10.6.2 10.6.3 10.6.4 10.7 10.7.1 10.7.2 10.7.3 10.7.4 10.7.5 10.7.6 10.7.7 10.7.8 10.7.9 10.7.10 10.7.11 10.7.12 10.8 10.8.1 10.8.2 10.8.3 10.8.4 10.8.5 10.8.6 10.8.7 10.9 10.9.1 10.9.2 10.9.3 10.9.4 10.9.5 10.10 10.10.1 10.10.2 10.10.3 10.10.4
Domänen-Informationen ausfragen ...................................................................... 312 Standardeigenschaften der Domäne ändern ......................................................... 313 Das Schema: »Bedienungsanleitung« eines Objekts .............................................. 314 Welche Objekte gibt es eigentlich? ....................................................................... 316 Den Typ eines beliebigen Objekts herausfinden .................................................... 317 Objekte und deren Inhalt managen ...................................................................... 318 ADSI-Fehler: Wissen, was schiefläuft...................................................................... 318 Wichtige ADSI-Fehler abfangen ............................................................................ 318 Fehlerursachen direkt erfragen: eigene Befehlserweiterung ................................... 321 Informationen über Computer erfragen................................................................ 324 Alle Computer sehen, die gerade online sind ........................................................ 324 Details über Computer erfragen ........................................................................... 324 Hardware-Inventurliste erstellen............................................................................ 325 Alle Drucker im Netzwerk auflisten ....................................................................... 326 Benutzerkonten verwalten .................................................................................... 327 Alle Benutzerkonten eines Computers auflisten ..................................................... 327 Ein neues Benutzerkonto anlegen ......................................................................... 329 Benutzerkonten wieder entfernen ......................................................................... 330 Kennwörter ändern .............................................................................................. 331 Spezielle Einstellungen des Benutzerkontos setzen ................................................ 334 Wie lange ist ein Kennwort bereits in Benutzung?................................................. 336 Wann hat ein Benutzer sich das letzte Mal eingeloggt?......................................... 338 Details der Benutzerkonten selbst festlegen .......................................................... 339 Benutzer-Flags des Kontos setzen ......................................................................... 340 Ein Konto sperren ................................................................................................. 341 Beim nächsten Einloggen Kennwortänderung erzwingen ..................................... 344 Kennwortänderungen verbieten ........................................................................... 344 Gruppen-Verwaltung............................................................................................ 345 Welche Gruppen gibt es überhaupt? .................................................................... 345 Welche Eigenschaften bieten Gruppen-Objekte? .................................................. 346 In welchen Gruppen ist ein Benutzer Mitglied?..................................................... 347 Eine neue Benutzergruppe anlegen ...................................................................... 349 Benutzerkonten in die neue Gruppe einfügen....................................................... 350 Benutzer aus einer Gruppe entfernen.................................................................... 352 Benutzergruppen löschen ..................................................................................... 352 Services – Windows-Dienste verwalten.................................................................. 352 Welche Dienste laufen gerade? ............................................................................. 353 Welche Eigenschaften bieten Dienste? .................................................................. 353 Zustandsbericht über alle Dienste erstellen ........................................................... 354 Einen Dienst starten oder beenden ....................................................................... 360 Das Startverhalten von Diensten ändern ............................................................... 361 Freigegebene Ordner verwalten............................................................................ 362 Alle freigegebenen Ordner auflisten...................................................................... 362 Einen neuen freigegebenen Ordner anlegen......................................................... 365 Eine Freigabe rückgängig machen ........................................................................ 366 Schauen, wer welche Freigaben zur Zeit nutzt ...................................................... 366
Inhaltsverzeichnis 10.11 10.11.1 10.11.2 10.11.3 10.11.4 10.11.5 10.11.6
19
Netzwerkdrucker – Druckaufträge managen ......................................................... 368 Welche Drucker stehen im Netzwerk zur Verfügung?............................................ 369 Die Eigenschaften der Drucker-Warteschlangen .................................................... 369 Wie geht es meinem Drucker? Ein Statusreport..................................................... 371 Die Aufträge eines Druckers sichtbar machen ....................................................... 372 Druckerwarteschlange komplett löschen............................................................... 374 Priorität einzelner Druckaufträge ändern............................................................... 374
11 WMI: Computerverwaltung lokal und quer durchs Netz ............................ 377 11.1 11.1.1 11.2 11.2.1 11.2.2 11.2.3 11.2.4 11.2.5 11.2.6 11.3 11.3.1 11.3.2 11.3.3 11.4 11.4.1 11.4.2 11.4.3 11.4.4 11.4.5 11.4.6 11.5 11.5.1 11.5.2
WMI und WBEM: Ihre ultimative Allzweckwaffe .................................................... 377 So geht’s: Mit WMI fremde Computer untersuchen.............................................. 377 WMI startklar machen: So läuft die Sache rund..................................................... 379 Der Fahrplan: So werden Sie zum WMI-Profi......................................................... 380 WMI nachrüsten ................................................................................................... 380 Der erste Test: Funktioniert WMI?......................................................................... 381 Ferngesteuert auf WMI zugreifen .......................................................................... 382 Windows 95/98 – WMI total trotz eingebauter Sperren ........................................ 383 Wichtige Details, die Sie kenen sollten .................................................................. 385 Grundlagen: So kommen Sie an WMI-Informationen............................................ 385 Weitere Möglichkeiten, um an WMI-Informationen zu gelangen .......................... 386 Netzwerkzugriffe: WMI ferngesteuert ................................................................... 386 Informationen mit SQL abfragen .......................................................................... 387 Endlich verständlich: Einsatz von Monikern........................................................... 388 Mit dem WMI-Dienst verbinden – lokal und remote ............................................. 388 WMI-Namespace festlegen ................................................................................... 388 Direkt mit WMI-Geräteklassen verbinden .............................................................. 389 Bestimmte Geräte und Klassen direkt ansprechen ................................................. 390 Spezialoperationen: Sonderrechte aktivieren......................................................... 391 Impersonation: Herausfinden, wer die WMI-Aktion verantwortet .......................... 392 Welche Informationen hat WMI auf Lager? ........................................................... 393 Liste erstellen: Diese Klassen unterstützt WMI ....................................................... 393 Alle Informationen über eine Klasse finden............................................................ 394
12 Mit WMI-Klassen arbeiten ....................................................................................... 403 12.1 12.1.1 12.2 12.2.1 12.2.2 12.2.3 12.2.4 12.3 12.3.1 12.3.2 12.3.3 12.3.4
Mit Win32_OperatingSystem experimentieren ..................................................... 403 Einen Computer herunterfahren (oder neu starten) .............................................. 404 Programme ferngesteuert starten ......................................................................... 406 Welche Programme laufen gerade? ...................................................................... 406 Alle Infos über Prozesse anzeigen.......................................................................... 407 Programme ferngesteuert starten ......................................................................... 409 Programme ferngesteuert beenden ...................................................................... 410 Programme ferngesteuert installieren ................................................................... 410 Ferninstallation – was sind die Voraussetzungen?.................................................. 411 Ferngesteuert Programmpakete installieren .......................................................... 411 Programme ferngesteuert deinstallieren................................................................ 412 Asynchrone Programminstallation und -Deinstallation .......................................... 413
20
Inhaltsverzeichnis 12.4 12.4.1 12.4.2 12.4.3
A
Auf der Buch-CD ......................................................................................................... 427 A.1 A.2 A.3 A.4 A.5 A.6
B
Mit WMI auf System-Ereignisse reagieren ............................................................. 416 Auf Events warten................................................................................................. 417 Programmstarts protokollieren.............................................................................. 418 Sinnvolle Management-Tools entwickeln .............................................................. 421
Scripting Host und Zubehör ................................................................................. 427 Scripting Spy – Das Spionagetool ......................................................................... 427 Scriptbeispiele öffnen statt abtippen..................................................................... 428 Visual Basic-Entwicklungsumgebung..................................................................... 428 Programmierprojekte en masse............................................................................. 428 WMI – Tools für wahres WMI-Vergnügen ............................................................. 428
WMI Klassenreferenz ................................................................................................ 429 B.1 B.2 B.3 B.4 B.5 B.6 B.7 B.8 B.9 B.10 B.11 B.12 B.13 B.14 B.15 B.16 B.17 B.18 B.19 B.20 B.21 B.22 B.23 B.24 B.25 B.26 B.27 B.28 B.29 B.30 B.31 B.32 B.33
Wie Sie diese Referenz nutzen............................................................................... 429 Win32_1394Controller ......................................................................................... 429 Win32_1394ControllerDevice............................................................................... 432 Win32_ACE .......................................................................................................... 432 Win32_Account.................................................................................................... 432 Win32_AccountSID............................................................................................... 433 Win32_AllocatedResource..................................................................................... 434 Win32_ApplicationCommandLine ........................................................................ 434 Win32_ApplicationService .................................................................................... 434 Win32_AssociatedBattery...................................................................................... 435 Win32_AssociatedProcessorMemory ..................................................................... 435 Win32_BIOS ......................................................................................................... 435 Win32_BaseBoard................................................................................................. 437 Win32_BaseService ............................................................................................... 440 Win32_Battery...................................................................................................... 453 Win32_Binary ....................................................................................................... 456 Win32_BindImageAction ...................................................................................... 456 Win32_BootConfiguration .................................................................................... 457 Win32_Bus ........................................................................................................... 457 Win32_CDROMDrive............................................................................................ 460 Win32_CIMLogicalDeviceCIMDataFile .................................................................. 464 Win32_COMApplication....................................................................................... 464 Win32_COMApplicationClasses ............................................................................ 465 Win32_COMApplicationSettings .......................................................................... 465 Win32_COMClass................................................................................................. 465 Win32_COMSetting ............................................................................................. 466 Win32_CacheMemory .......................................................................................... 466 Win32_CheckCheck.............................................................................................. 471 Win32_ClassInfoAction ......................................................................................... 471 Win32_ClassicCOMApplicationClasses.................................................................. 472 Win32_ClassicCOMClass ...................................................................................... 472 Win32_ClassicCOMClassSetting ........................................................................... 473 Win32_ClassicCOMClassSettings .......................................................................... 475
Inhaltsverzeichnis B.34 B.35 B.36 B.37 B.38 B.39 B.40 B.41 B.42 B.43 B.44 B.45 B.46 B.47 B.48 B.49 B.50 B.51 B.52 B.53 B.54 B.55 B.56 B.57 B.58 B.59 B.60 B.61 B.62 B.63 B.64 B.65 B.66 B.67 B.68 B.69 B.70 B.71 B.72 B.73 B.74 B.75 B.76 B.77 B.78 B.79 B.80 B.81
21
Win32_ClientApplicationSetting ........................................................................... 475 Win32_CodecFile.................................................................................................. 475 Win32_ComClassAutoEmulator ............................................................................ 481 Win32_ComClassEmulator.................................................................................... 481 Win32_CommandLineAccess................................................................................ 482 Win32_ComponentCategory................................................................................ 482 Win32_ComputerSystem...................................................................................... 483 Win32_ComputerSystemProcessor ....................................................................... 487 Win32_ComputerSystemProduct.......................................................................... 487 Win32_Condition ................................................................................................. 488 Win32_CreateFolderAction ................................................................................... 488 Win32_CurrentProbe............................................................................................ 489 Win32_DCOMApplication .................................................................................... 492 Win32_DCOMApplicationAccessAllowedSetting ................................................... 493 Win32_DCOMApplicationLaunchAllowedSetting.................................................. 493 Win32_DCOMApplicationSetting ......................................................................... 493 Win32_DMAChannel............................................................................................ 494 Win32_DependentService .................................................................................... 495 Win32_Desktop .................................................................................................... 495 Win32_DesktopMonitor ....................................................................................... 497 Win32_DeviceBus ................................................................................................. 499 Win32_DeviceMemoryAddress ............................................................................. 500 Win32_DeviceSettings .......................................................................................... 500 Win32_Directory .................................................................................................. 501 Win32_DirectorySpecification............................................................................... 506 Win32_DiskDrive .................................................................................................. 507 Win32_DiskDriveToDiskPartition........................................................................... 512 Win32_DiskPartition ............................................................................................. 512 Win32_DisplayConfiguration ................................................................................ 515 Win32_DisplayControllerConfiguration................................................................. 516 Win32_DriverVXD ................................................................................................ 517 Win32_DuplicateFileAction ................................................................................... 519 Win32_Environment ............................................................................................. 520 Win32_EnvironmentSpecification ......................................................................... 521 Win32_ExtensionInfoAction .................................................................................. 521 Win32_Fan ........................................................................................................... 522 Win32_FileSpecification ........................................................................................ 525 Win32_FloppyController....................................................................................... 526 Win32_FloppyDrive .............................................................................................. 529 Win32_FontInfoAction.......................................................................................... 532 Win32_Group....................................................................................................... 532 Win32_GroupUser ................................................................................................ 533 Win32_HeatPipe ................................................................................................... 533 Win32_IDEController ............................................................................................ 536 Win32_IDEControllerDevice.................................................................................. 538 Win32_IRQResource ............................................................................................. 538 Win32_ImplementedCategory.............................................................................. 540 Win32_InfraredDevice .......................................................................................... 540
22
Inhaltsverzeichnis B.82 B.83 B.84 B.85 B.86 B.87 B.88 B.89 B.90 B.91 B.92 B.93 B.94 B.95 B.96 B.97 B.98 B.99 B.100 B.101 B.102 B.103 B.104 B.105 B.106 B.107 B.108 B.109 B.110 B.111 B.112 B.113 B.114 B.115 B.116 B.117 B.118 B.119 B.120 B.121 B.122 B.123 B.124 B.125 B.126 B.127 B.128 B.129
Win32_IniFileSpecification .................................................................................... 542 Win32_InstalledSoftwareElement.......................................................................... 543 Win32_Keyboard .................................................................................................. 544 Win32_LaunchCondition ...................................................................................... 546 Win32_LoadOrderGroup ...................................................................................... 547 Win32_LoadOrderGroupServiceDependencies...................................................... 547 Win32_LoadOrderGroupServiceMembers ............................................................. 548 Win32_LogicalDisk ............................................................................................... 548 Win32_LogicalDiskRootDirectory .......................................................................... 551 Win32_LogicalDiskToPartition .............................................................................. 551 Win32_LogicalFileAccess....................................................................................... 552 Win32_LogicalFileAuditing ................................................................................... 552 Win32_LogicalFileGroup....................................................................................... 552 Win32_LogicalFileOwner ...................................................................................... 553 Win32_LogicalFileSecuritySetting ......................................................................... 553 Win32_LogicalMemoryConfiguration ................................................................... 553 Win32_LogicalProgramGroup............................................................................... 554 Win32_LogicalProgramGroupDirectory ................................................................ 554 Win32_LogicalProgramGroupItem........................................................................ 554 Win32_LogicalProgramGroupItemDataFile ........................................................... 555 Win32_LogicalShareAccess ................................................................................... 555 Win32_LogicalShareAuditing ................................................................................ 555 Win32_LogicalShareSecuritySetting ...................................................................... 556 Win32_MIMEInfoAction........................................................................................ 556 Win32_MSIResource ............................................................................................. 557 Win32_MemoryArray ........................................................................................... 557 Win32_MemoryArrayLocation .............................................................................. 561 Win32_MemoryDevice ......................................................................................... 561 Win32_MemoryDeviceArray ................................................................................. 565 Win32_MemoryDeviceLocation ............................................................................ 565 Win32_MotherboardDevice.................................................................................. 565 Win32_MoveFileAction ......................................................................................... 567 Win32_NTEventlogFile ......................................................................................... 568 Win32_NetworkAdapter ....................................................................................... 575 Win32_NetworkAdapterConfiguration.................................................................. 577 Win32_NetworkAdapterSetting ............................................................................ 598 Win32_NetworkClient .......................................................................................... 599 Win32_NetworkConnection ................................................................................. 599 Win32_NetworkLoginProfile ................................................................................. 600 Win32_NetworkProtocol ...................................................................................... 604 Win32_ODBCAttribute ......................................................................................... 606 Win32_ODBCDataSourceAttribute ....................................................................... 606 Win32_ODBCDataSourceSpecification.................................................................. 606 Win32_ODBCDriverSoftwareElement.................................................................... 607 Win32_ODBCDriverSpecification .......................................................................... 607 Win32_ODBCSourceAttribute............................................................................... 608 Win32_ODBCTranslatorSpecification .................................................................... 608 Win32_OSRecoveryConfiguration......................................................................... 609
Inhaltsverzeichnis B.130 B.131 B.132 B.133 B.134 B.135 B.136 B.137 B.138 B.139 B.140 B.141 B.142 B.143 B.144 B.145 B.146 B.147 B.148 B.149 B.150 B.151 B.152 B.153 B.154 B.155 B.156 B.157 B.158 B.159 B.160 B.161 B.162 B.163 B.164 B.165 B.166 B.167 B.168 B.169 B.170 B.171 B.172 B.173 B.174 B.175 B.176 B.177
23
Win32_OnBoardDevice ........................................................................................ 610 Win32_OperatingSystem...................................................................................... 612 Win32_OperatingSystemQFE................................................................................ 617 Win32_PCMCIAController .................................................................................... 617 Win32_PNPAllocatedResource .............................................................................. 619 Win32_POTSModem ............................................................................................ 619 Win32_POTSModemToSerialPort.......................................................................... 625 Win32_PageFile .................................................................................................... 625 Win32_PageFileElementSetting............................................................................. 631 Win32_PageFileSetting ......................................................................................... 632 Win32_PageFileUsage........................................................................................... 632 Win32_ParallelPort ............................................................................................... 633 Win32_Patch ........................................................................................................ 635 Win32_PatchFile ................................................................................................... 635 Win32_PatchPackage ........................................................................................... 636 Win32_PhysicalMemory ....................................................................................... 636 Win32_PhysicalMemoryArray ............................................................................... 638 Win32_PhysicalMemoryLocation .......................................................................... 640 Win32_PnPDevice ................................................................................................ 640 Win32_PnPEntity .................................................................................................. 641 Win32_PointingDevice ......................................................................................... 643 Win32_PortConnector .......................................................................................... 646 Win32_PortResource............................................................................................. 647 Win32_PortableBattery ......................................................................................... 648 Win32_PowerManagementEvent.......................................................................... 652 Win32_PrintJob .................................................................................................... 652 Win32_Printer ...................................................................................................... 654 Win32_PrinterConfiguration ................................................................................. 657 Win32_PrinterController ....................................................................................... 660 Win32_PrinterDriverDll ......................................................................................... 660 Win32_PrinterSetting ........................................................................................... 660 Win32_PrinterShare .............................................................................................. 660 Win32_PrivilegesStatus ......................................................................................... 661 Win32_Process ..................................................................................................... 661 Win32_ProcessStartup .......................................................................................... 666 Win32_Processor .................................................................................................. 669 Win32_Product..................................................................................................... 673 Win32_ProductCheck ........................................................................................... 675 Win32_ProductResource....................................................................................... 675 Win32_ProductSoftwareFeatures .......................................................................... 675 Win32_ProgIDSpecification .................................................................................. 676 Win32_ProgramGroup ......................................................................................... 676 Win32_ProgramGroupContents ........................................................................... 677 Win32_ProgramGroupOrItem .............................................................................. 677 Win32_Property ................................................................................................... 677 Win32_ProtocolBinding ........................................................................................ 677 Win32_PublishComponentAction ......................................................................... 678 Win32_QuickFixEngineering ................................................................................. 678
24
Inhaltsverzeichnis B.178 B.179 B.180 B.181 B.182 B.183 B.184 B.185 B.186 B.187 B.188 B.189 B.190 B.191 B.192 B.193 B.194 B.195 B.196 B.197 B.198 B.199 B.200 B.201 B.202 B.203 B.204 B.205 B.206 B.207 B.208 B.209 B.210 B.211 B.212 B.213 B.214 B.215 B.216 B.217 B.218 B.219 B.220 B.221 B.222 B.223 B.224 B.225
Win32_Refrigeration ............................................................................................. 679 Win32_Registry .................................................................................................... 682 Win32_RegistryAction........................................................................................... 682 Win32_RemoveFileAction ..................................................................................... 684 Win32_RemoveIniAction....................................................................................... 684 Win32_ReserveCost .............................................................................................. 685 Win32_SCSIController .......................................................................................... 686 Win32_SCSIControllerDevice................................................................................ 689 Win32_SID ........................................................................................................... 689 Win32_SMBIOSMemory ....................................................................................... 690 Win32_ScheduledJob............................................................................................ 693 Win32_SecurityDescriptor .................................................................................... 696 Win32_SecuritySetting ......................................................................................... 697 Win32_SecuritySettingAccess ............................................................................... 697 Win32_SecuritySettingAuditing ............................................................................ 697 Win32_SecuritySettingGroup................................................................................ 697 Win32_SecuritySettingOfLogicalFile...................................................................... 698 Win32_SecuritySettingOfLogicalShare .................................................................. 698 Win32_SecuritySettingOfObject ........................................................................... 698 Win32_SecuritySettingOwner ............................................................................... 698 Win32_SelfRegModuleAction................................................................................ 698 Win32_SerialPort .................................................................................................. 699 Win32_SerialPortConfiguration............................................................................. 703 Win32_SerialPortSetting ....................................................................................... 706 Win32_Service...................................................................................................... 706 Win32_ServiceControl .......................................................................................... 711 Win32_ServiceSpecification .................................................................................. 712 Win32_ServiceSpecificationService ....................................................................... 713 Win32_SettingCheck ............................................................................................ 713 Win32_Share ........................................................................................................ 713 Win32_ShareToDirectory ...................................................................................... 716 Win32_ShortcutAction.......................................................................................... 716 Win32_ShortcutFile .............................................................................................. 717 Win32_ShortcutSAP.............................................................................................. 722 Win32_SoftwareElement....................................................................................... 723 Win32_SoftwareElementAction............................................................................. 724 Win32_SoftwareElementCheck ............................................................................. 724 Win32_SoftwareElementCondition ....................................................................... 725 Win32_SoftwareElementResource ......................................................................... 725 Win32_SoftwareFeature........................................................................................ 726 Win32_SoftwareFeatureAction.............................................................................. 727 Win32_SoftwareFeatureCheck .............................................................................. 727 Win32_SoftwareFeatureParent .............................................................................. 727 Win32_SoftwareFeatureSoftwareElements ............................................................ 727 Win32_SoundDevice ............................................................................................ 728 Win32_StartupCommand..................................................................................... 730 Win32_SubDirectory ............................................................................................ 730 Win32_SystemAccount......................................................................................... 730
Inhaltsverzeichnis B.226 B.227 B.228 B.229 B.230 B.231 B.232 B.233 B.234 B.235 B.236 B.237 B.238 B.239 B.240 B.241 B.242 B.243 B.244 B.245 B.246 B.247 B.248 B.249 B.250 B.251 B.252 B.253 B.254 B.255 B.256 B.257 B.258 B.259 B.260 B.261 B.262 B.263 B.264
25
Win32_SystemBIOS .............................................................................................. 731 Win32_SystemBootConfiguration ......................................................................... 732 Win32_SystemDesktop ......................................................................................... 732 Win32_SystemDevices .......................................................................................... 732 Win32_SystemDriver ............................................................................................ 732 Win32_SystemDriverPNPEntity ............................................................................. 737 Win32_SystemEnclosure ....................................................................................... 737 Win32_SystemLoadOrderGroups.......................................................................... 740 Win32_SystemLogicalMemoryConfiguration ........................................................ 740 Win32_SystemMemoryResource........................................................................... 740 Win32_SystemNetworkConnections ..................................................................... 741 Win32_SystemOperatingSystem........................................................................... 741 Win32_SystemPartitions ....................................................................................... 742 Win32_SystemProcesses ....................................................................................... 742 Win32_SystemProgramGroups ............................................................................. 742 Win32_SystemResources....................................................................................... 742 Win32_SystemServices ......................................................................................... 742 Win32_SystemSetting........................................................................................... 743 Win32_SystemSlot................................................................................................ 743 Win32_SystemSystemDriver ................................................................................. 745 Win32_SystemTimeZone ...................................................................................... 745 Win32_SystemUsers ............................................................................................. 745 Win32_TapeDrive ................................................................................................. 746 Win32_TemperatureProbe.................................................................................... 749 Win32_Thread...................................................................................................... 752 Win32_TimeZone ................................................................................................. 754 Win32_Trustee ..................................................................................................... 755 Win32_TypeLibraryAction..................................................................................... 756 Win32_USBController ........................................................................................... 756 Win32_USBControllerDevice................................................................................. 759 Win32_UninterruptiblePowerSupply ..................................................................... 759 Win32_UserAccount ............................................................................................. 763 Win32_UserDesktop ............................................................................................. 765 Win32_VideoConfiguration .................................................................................. 765 Win32_VideoController ........................................................................................ 767 Win32_VideoSettings............................................................................................ 771 Win32_VoltageProbe ............................................................................................ 771 Win32_WMIElementSetting.................................................................................. 774 Win32_WMISetting .............................................................................................. 775
Stichwortverzeichnis ................................................................................................. 779
27
1
Sprachschatz Ihrer Scripts erweitern
Woher kommt die »Intelligenz« und Macht Ihrer Scripts? Wer bestimmt, was Sie mit Scripts tun können – und was nicht? Wie erweitern Sie Macht und Einfluß Ihrer Scripts und fügen genau die Funktionen hinzu, die Sie gerade brauchen? Lesen Sie in diesem Kapitel, was wirklich hinter Scripts steckt und wie Sie in nur wenigen Minuten Ihren Scripts jede noch so exotische Windows-Funktion beibringen – oder einfach nur die CD-ROM-Schublade auf- und zuklappen.
1.1
Der Scripting Host – so funktioniert er wirklich
Am besten schauen Sie sich einfach in Zeitlupe an, was passiert, wenn Sie ein Script auf Ihrem Computer ausführen. So wird sofort klar, wer alles daran beteiligt ist – und welche enormen Erweiterungsmöglichkeiten sich dadurch bieten!
Bild 1.1: Scripts sind ganz normale Textdateien
Dafür benötigen Sie zuerst als Versuchskaninchen ein einfaches Script: 1. Starten Sie den Texteditor: im Startmenü wählen Sie Ausführen und geben ein: NOTEPAD [Enter]. 2. Geben Sie nun das folgende Beispielscript ein: MsgBox WScript.ScriptFullName
3. Speichern Sie dieses Script: wählen Sie im Datei-Menü Speichern unter, stellen Sie oben in der Ausklappliste Speichern in ein: Desktop, und speichern Sie das Script als test.vbs [Enter]. Ganz wichtig: hängen Sie an den Dateinamen die Extension .vbs an! 4. Schließen Sie dann den Editor. Fertig. Auf Ihrem Desktop liegt nun ein Beispielscript.
28
Kapitel 1: Sprachschatz Ihrer Scripts erweitern
Bild 1.2: Textdateien mit der Extension VBS verwandeln sich in ausführbare Scripts
1.1.1
Dinge, die Sie kennen sollten...
Und was, wenn das Beispiel nicht auf Anhieb klappen sollte? Hier die wichtigsten Lösungen aus der Praxis: • Liegt auf Ihrem Desktop nur eine ganz normale Textdatei, die nicht das typische Script-Icon trägt? Dann ist auf Ihrem System der Scripting Host noch nicht installiert. Holen Sie das kurz nach, und starten Sie dazu auf der Buch-CD im Verzeichnis WSH das Programm STE51DE. EXE. Der Scripting Host wird installiert, und spätestens nach einem Neustart funktionieren Ihre Scripts wie geplant. • Sie haben sich vertippt und wollen den Inhalt des Scripts nachträglich verändern? Dann klicken Sie mit der rechten Maustaste auf die Scriptdatei und wählen Bearbeiten. Schon wird Ihnen der Script-Text zur Bearbeitung vorgelegt. Speichern Sie Änderungen im Datei-Menü mit Speichern. • Sie wollen genauer wissen, wo Fehler in Ihrem Script liegen? Dann installieren Sie den ScriptDebugger. Den finden Sie auf der Buch-CD im Ordner WSH als DEBUGGER9x.EXE (für Windows 95 und 98) und DEBUGGERNT.EXE (für Windows NT und 2000). Tip: WSH auf neuestem Stand – das ist wichtig! Auch wenn bei Ihnen bereits der WSH installiert ist, sollten Sie trotzdem STE51DE.EXE installieren. Diese Datei enthält nämlich den neuesten WSH 2.0, der nicht nur um wesentliche Fehler bereinigt ist, sondern außerdem schneller läuft und viele neue Befehle mitbringt. Eine ausführliche Einführung in die generelle Scripterstellung und den Umgang mit dem Debugger finden Sie im Vorgängerband »Franzis: Professional Series Scripting Host Praxisbuch«.
1.1.2
Ein Script starten: das passiert hinter den Kulissen
Öffnen Sie nun Ihr Beispielscript! Wenn auf Ihrem System der Windows Scripting Host installiert ist, dann wird das Script gestartet und präsentiert in einem kleinen Dialogfenster seinen Namen. Öffnet sich dagegen nur der Editor und zeigt den Script-Text, dann ist der WSH bei Ihnen noch nicht installiert. Installieren Sie ihn so wie gerade beschrieben rasch nach. Sobald Sie (irgendeine) Datei öffnen, schaut sich Windows die Dateiextension an. Im Beispiel entdeckt es die Extension .VBS. Daraufhin schaut es in seiner internen Registrierungsdatenbank nach, was es mit solchen Dateien machen soll. Sie können ebenfalls nachschauen:
1.1
Der Scripting Host – so funktioniert er wirklich
29
1. Wählen Sie im Startmenü Ausführen und geben Sie ein: REGEDIT [Enter]. Der Registrierungseditor startet. 2. Doppelklicken Sie in der linken Spalte auf HKEY_CLASSES_ROOT, und suchen Sie den Unterschlüssel .vbs. Wenn der WSH installiert ist, finden Sie ihn und sehen in der rechten Spalte den Eintrag VBSFile. 3. Suchen Sie nun den Schlüssel, der so heißt wie der Begriff in der rechten Spalte, also den Schlüssel VBSFile. Jetzt sind Sie am Ziel. Der Unterschlüssel ScriptEngine legt zum Beispiel fest, welche »Sprache« in vbs-Scripts gesprochen wird, und über shell – open – command entdecken Sie auch gleich das Programm, mit dem vbs-Scripts hinter den Kulissen geöffnet werden: WSCRIPT.EXE – der Scripting Host.
Bild 1.3: In der Registry ist vermerkt, wer Ihre Scriptdateien ausführt
Windows findet also über seine Registry heraus, wer für vbs-Dateien zuständig ist, und verfüttert das Script anschließend an den Scripting Host, nämlich an das Programm WSCRIPT.EXE. Bevor ich Ihnen gleich zeige, wie der Scripting Host das Script eigentlich ganz genau verspeist, möchte ich den Scripting Host etwas aus seinem dunklen Versteck zerren. Sie können ihn nämlich auch direkt aufrufen, ganz ohne Script: 1. Wählen Sie im Startmenü Ausführen, und geben Sie ein: WSCRIPT.EXE [Enter]. 2. Schwupp, schon meldet er sich zu Wort: mit einem Dialogfenster. Darin legen Sie Grundeinstellungen fest, die für alle Scripts gelten. Wenn Sie wollen, können Sie zum Beispiel ein Timeout festlegen. Scripts, die länger als diese Zeit brauchen, werden kurzerhand abgebrochen. Wählen Sie diese Option nicht! Sie würde sonst für alle Scripts gelten, und später könnte es leicht passieren, daß umfangreiche Scripts nicht bis zu Ende ausgeführt werden. Besser ist, ein Timeout maßgeschneidert für das jeweilige Script festzulegen. Dazu klicken Sie Ihre Scriptdatei mit der rechten Maustaste an, wählen Eigenschaften und klicken auf das Register Script. Jetzt sehen Sie dieselben Einstellmöglichkeiten, die diesmal aber nur für dieses Script allein gelten – schon wesentlich besser.
30
Kapitel 1: Sprachschatz Ihrer Scripts erweitern
Bild 1.4: In diesem Dialog werden die generellen WSH-Eigenschaften definiert
Bild 1.5: Besser: Eigenschaften nur für ein bestimmtes Script setzen
Die allermeisten Feineinstellungen regelt der Scripting Host gar nicht in seinem Dialogfenster. Machen Sie das nächste Experiment: 1. Wählen Sie im Startmenü Ausführen, und geben Sie ein: WSCRIPT.EXE /? [Enter]. 2. Schon besser: der Scripting Host präsentiert nun all seine Geheimoptionen, und die können ausgesprochen nützlich werden. Mehr dazu in einem Moment.
1.1
1.1.3
Der Scripting Host – so funktioniert er wirklich
31
WSCRIPT.EXE oder CSCRIPT.EXE?
Den Scripting Host gibt es gleich zweimal: einmal als Windows-Programm und ein zweites Mal als DOS-Programm. Wobei das etwas gelogen ist: auch die DOS-Version des Scripting Host läuft nur unter Windows. Allerdings öffnet diese Version ein DOS-Fenster und macht es sich darin gemütlich. Wollen Sie ein Script testweise mit der DOS-Version ausführen? Dann klicken Sie Ihr Script mit der rechten Maustaste an und wählen anstelle von Öffnen den Befehl Mit Eingabeaufforderung öffnen. Sollen Scripts grundsätzlich mit CSCRIPT.EXE (und nicht wie in der Voreinstellung mit WSCRIPT.EXE) ausgeführt werden, dann verwenden Sie diesen Befehl: WSCRIPT.EXE //H:CScript [Enter]. Um wieder WSCRIPT.EXE zur Voreinstellung zu machen, verwenden Sie das Gegengift: WSCRIPT.EXE //H:WScript [Enter].
1.1.4
Internet Explorer als Script Host einsetzen
Gerade haben Sie entdeckt, daß einfache Scriptdateien vom Windows Scripting Host ausgeführt werden. Entweder WSCRIPT.EXE oder CSCRIPT.EXE liest Ihren Scriptcode und verfüttert ihn dann an Windows. Das ist die Voraussetzung, damit Ihr Script nützliche Dinge anstellen kann. Allerdings ist der Windows Scripting Host nicht der einzige Script Host. Es gibt viele weitere Programme, die Scriptcode lesen und ausführen können. Der Internet Explorer ist nur ein Beispiel. Er führt ebenso wie der Windows Scripting Host kreuzbrav Scripts aus, die Sie in Webseiten einbetten. Machen Sie dazu den folgenden Test: 1. Wählen Sie im Startmenü Ausführen, und geben Sie ein: NOTEPAD [Enter]. Der Texteditor startet. Nun geben Sie Ihr Script ein, das diesmal in ein rudimentäres HTML-Rahmenwerk eingebunden ist: <script language = "VBScript"> MsgBox "Hallo Welt!"
2. Speichern Sie diesen Code: Wählen Sie im Datei-Menü Speichern unter, stellen Sie oben in der Liste Speichern in ein: Desktop, und klicken Sie dann in die Zeile Dateiname. Speichern Sie Ihre Testdatei als SCRIPT.HTM [Enter]. Auf dem Desktop liegt nun eine Webseite. Die Dateiextension HTM hat aus dem einfachen Text eine HTML-Datei gemacht, und wenn Sie sie öffnen, dann startet der Internet Explorer – oder jeder andere Browser, der auf Ihrem System für HTML-Dateien zuständig ist. Allerdings wird Ihr Script nur dann ausgeführt, wenn Sie den Internet Explorer verwenden. Andere Browser unterstützen die Scriptsprache VBScript nicht und beschränken sich auf JavaScript. Verwenden Sie den Internet Explorer als Standardbrowser, dann erscheint tatsächlich ein Dialogfenster und begrüßt Sie.
32 1.1.5
Kapitel 1: Sprachschatz Ihrer Scripts erweitern
Die besonderen Funktionen des Script Hosts
Zusätzlich zu den normalen Scriptbefehlen, die in allen Script Hosts gleich sind, blendet der jeweils gewählte Script Host sich selbst als Objekt ein. Das klingt ungeheuer technisch, ist aber eigentlich ganz banal: Wenn Sie Ihr Script als VBS- oder JS-Datei im Windows Scripting Host ausführen, dann blendet der Windows Scripting Host unerkannt hinter den Kulissen sich selbst als WScript-Objekt ein. Über dieses Objekt bekommen Sie also Zugriff auf die persönlichen Befehle des Windows Scripting Hosts. Diese Befehle stehen Ihnen immer zur Verfügung, ganz gleich, welche Scriptsprache Sie im WSH einsetzen, und oben hatten Sie bereits gesehen, wie Sie WScript.ScriptFullName dazu einsetzen, den Namen der Scriptdatei herauszufinden. Führen Sie dagegen ein Script im Internet Explorer aus, dann gibt es kein WScript-Objekt. WScript.ScriptFullName ist also in einem Script, das eingebettet in einer Webseite abläuft, nicht vorhanden – und auch gar nicht sinnvoll. Schließlich gibt es in diesem Fall gar keine eigenständige Scriptdatei, deren Namen man verkünden könnte. Statt dessen blendet der Internet Explorer ein anderes Objekt ein: document. Es entspricht dem HTML-Dokument, in das Ihr Script eingebettet ist, und dieses Objekt bringt ähnlich wie WScript eine ganze Reihe persönlicher Funktionen mit. Wiederum stehen Ihnen diese Funktionen in allen Scripts Ihrer Webseite zur Verfügung, ganz gleich, ob Sie VBScript, JavaScript oder irgendeine andere Scriptsprache einsetzen. Probieren Sie zum Beispiel das folgende Beispiel aus: <script language = "VBScript"> MsgBox TypeName(document) document.write "Hello!" document.parentWindow.alert "Hello!"
Speichern Sie es im Texteditor als TEST2.HTM, und öffnen Sie dann die Datei! Diesmal passiert eine Menge mehr: Zuerst gibt Ihr Script den Objekttyp aus, der sich hinter document verbirgt: HTMLDocument. Anschließend verwendet das Script die write-Methode des document-Objekts, um einen Text ins Internet Explorer-Fenster auszugeben. Danach erfragt das Script via parentWindow das Fensterobjekt, in dem das HTML-Dokument angezeigt wird, und kann über die alert-Methode dieses Fensterobjektes ein Dialogfenster auf den Bildschirm zaubern. Sie könnten den Code auch etwas anders schreiben: <script language = "VBScript"> MsgBox TypeName(document) document.write "Hello!" set fenster = document.parentWindow
1.1
Der Scripting Host – so funktioniert er wirklich
33
fenster.alert "Hello!" MsgBox TypeName(fenster)
Speichern Sie die Datei als TEST3.HTM. Hier wird das Fensterobjekt zuerst in einer eigenen Variablen gespeichert: fenster. TypeName verrät Ihnen den offiziellen Namen des Fensterobjekts: HTMLWindow (oder bei moderneren Internet Explorern HTMLWindow2).
1.1.6
Objekte bereichern Ihren Script-Wortschatz
Eben haben Sie bereits gesehen, wie Sie den eingeschränkten Wortschatz Ihrer Scripts kräftig aufstocken können. Das Geheimnis sind Objekte. Dahinter verbergen sich »Black Boxes«, deren Innenleben Ihnen herzlich egal sein kann. Haben Sie erst einen Weg gefunden, auf ein Objekt zuzugreifen, dann stehen Ihren Scripts anschließend alle Funktionen zur Verfügung, die dieses Objekt anzubieten hat. Einige Objekte – wie WScript oder document – werden von Anfang an vom jeweiligen Script Host zur Verfügung gestellt. Andere Dokumente – wie HTMLWindow – werden von Objektfunktionen zurückgeliefert. parentWindow ist solch eine Funktion, und wenn Sie das Objekt unter einem eigenen Namen speichern wollen, dann verwenden Sie dazu wie im letzten Beispiel den Set-Befehl. Tip: Set – bei fremden Objekten ungeheuer wichtig! VBScript braucht den Set-Befehl nie, Sie hingegen schon! Set ist ungeheuer wichtig, wenn Sie mit Objekten arbeiten. Objekte sind nämlich keine normalen Variablen, sondern hinter Objekten steckt eine Referenz auf das Objekt. Deshalb dürfen solche Referenzen nur mit Set an eine Variable übergeben werden.
Die allermeisten Objekte allerdings dümpeln unbenutzt und unerkannt in den weiten Tiefen Ihres Windows-Systems umher. Solche Objekte sprechen Sie mit den VBScript-Befehlen CreateObject und GetObject an. Ein ganz besonders wichtiges Objekt heißt Scripting.FileSystemObject. Es stellt Ihnen alle nur denkbaren Befehle rund um Ihr Dateisystem zur Verfügung. Schauen Sie mal: ’ 1-1.vbs set filesystem = CreateObject("Scripting.FileSystemObject") ’ Auf einen Ordner zugreifen: set ordner = filesystem.GetFolder("C:\") ’ Alle Dateien auflisten liste = "" for each datei in ordner.files liste = liste & datei.name & ", " next ’ anzeigen MsgBox liste
34
Kapitel 1: Sprachschatz Ihrer Scripts erweitern
Hier verschafft sich das Script zuerst mit CreateObject Zugriff auf das Scripting.FileSystemObject und speichert mit Hilfe von Set eine Referenz darauf in der Variablen filesystem. Danach kann es alle Befehle einsetzen, die dieses Objekt zu bieten hat. Zuerst verwendet das Script GetFolders und läßt sich ein Ordnerobjekt zurückliefern. Es wird mit Set der Variablen ordner zugewiesen. Danach kann eine Schleife alle Dateien heraussuchen, die in diesem Ordner gelagert werden. Dazu verwendet die Schleife die Funktion files des Ordner-Objekts. Das Resultat: ein Dialogfenster listet fein säuberlich alle Dateinamen auf. Prima. Es kann höchstens sein, daß das Dialogfenster nicht groß genug ist, um wirklich alle Dateinamen anzuzeigen, aber das ist momentan verschmerzbar. Sicher wird sich spätestens jetzt eine zweifelnde Frage einschleichen: Wo um alles in der Welt erfährt man die nötigen Details über Objekte und ihre Funktionen? Wer verrät, welche Funktionen in Scripting.FileSystemObject schlummern und wie man sie einsetzt? Keine Sorge, diese Frage beantwortet sich in einem Moment ganz von selbst! Zuerst muß sich der Bogen schließen: Was passiert, wenn man das Scripting.FileSystemObject nicht im WSH verwendet, sondern zum Beispiel in einem eingebetteten Script im Internet Explorer? Ausprobieren: <script language = "VBScript"> set fs = CreateObject("Scripting.FileSystemObject") ’ Auf einen Ordner zugreifen: set ordner = fs.GetFolder("C:\") ’ Alle Dateien auflisten liste = "" for each datei in ordner.files liste = liste & datei.name & ", " next ’ anzeigen MsgBox liste
Wenn Sie diesen Code als TEST4.HTM speichern und dann die HTML-Datei öffnen, dann können vier Dinge passieren:
Es öffnet sich kein Internet Explorer, sondern ein anderer Browser. Sonst passiert nichts. Das ist normal, nur der Internet Explorer versteht VBScript. Für andere Browser ist das Script unsichtbar und müßte in JavaScript geschrieben sein.
Es öffnet sich der Internet Explorer, aber sonst passiert gar nichts. In diesem Fall verbieten die Sicherheitseinstellungen, daß »unsichere« ActiveX-Komponenten ausgeführt werden.
1.2
Internet Explorer als sinnvoller Script Host
35
Der Internet Explorer öffnet ein Dialogfenster und fragt nach, ob »potentiell unsichere ActiveX-Komponenten« gestartet werden sollen. Wenn Sie auf Ja klicken, wird das Script ausgeführt und listet die Dateinamen auf.
Der Internet Explorer öffnet sich und führt Ihr Script sofort aus.
Bild 1.6: Der Internet Explorer führt Scripts unter Umständen nicht sofort aus
Was sind »unsichere« ActiveX-Komponenten? Jedes Objekt, das Ihr Script via CreateObject oder GetObject öffnet, ist eine ActiveX-Komponente. Enthält dieses Objekt Befehle, die gefährlich sein könnten, dann gilt es als »unsicher«. Das Scripting.FileSystemObject-Objekt zum Beispiel ist potentiell gefährlich: Es lassen sich damit nicht nur Inhalte auf Ihrer Festplatte auskundschaften. Über den Delete-Befehl könnten damit sogar Dateien gelöscht werden. Damit gilt dieses Objekt zu Recht als »möglicherweise unsicher« – solch ein Objekt sollte auf keinen Fall als Teil einer Webseite gestartet werden können, denn sonst wären all Ihre Daten in Gefahr.
1.2
Internet Explorer als sinnvoller Script Host
Der Internet Explorer kann nur dann als sicherer Script Host verwendet werden, wenn einerseits sichergestellt ist, daß Sie sich beim Surfen im Internet keine gefährlichen ActiveX-Komponenten einfangen, andererseits aber lokale HTML-Dateien auf Ihrem System ohne Hemmnisse und Einschränkungen ausgeführt werden. Wie geht so was? Die Sicherheitseinstellungen des Internet Explorers sind die Lösung. Für alle »Außenbereiche« muß die Ausführung von potentiell gefährlichen Scripts streng verboten sein. Für HTML-Dateien, die Sie von Ihrer lokalen Festplatte aus öffnen, sollen dagegen alle Scriptbefehle aktiviert sein. Leider versteckt der Internet Explorer die wichtigen Sicherheitseinstellungen für die lokalen HTML-Dateien in seinem Dialogfenster. Lernen Sie deshalb gleich bei dieser Gelegenheit die »Macht« Ihrer Scripts kennen. Das nächste Script ist Ihr universeller Internet Explorer Generalschlüssel. Dieses Script schaltet auf Wunsch lokale Scripts frei und verbietet gleichzeitig in allen »externen« Zonen – wie zum Beispiel dem Internet – die Ausführung potentiell gefährlicher ActiveX-Komponenten. Damit sichern Sie Ihren Internet Explorer gegen viele Internet-Gefahren und gewinnen gleichzeitig einen neuen Scripting Host hinzu.
36
Kapitel 1: Sprachschatz Ihrer Scripts erweitern
’ 1-2.vbs ' die nötigen Funktionen für den Registry-Zugriff bekommen ' WScript.Shell stellt sie zur Verfügung set wshshell = CreateObject("WScript.Shell") ' Hier lagern die Sicherheitseinstellungen des Internet Explorers key1 = "HKEY_CURRENT_USER\Software\Microsoft\Windows" _ & "\CurrentVersion\Internet Settings\Zones\" ' dieser Eintrag ist für potentiell unsichere ' ActiveX Komponenten zuständig key2 = "\1201" ' ActiveX-Komponenten in den Zonen 1 bis 5 verbieten for x = 1 to 5 wshshell.RegWrite key1 & x & key2, 2, "REG_DWORD" next ' ActiveX-Komponenten in der Zone 0 (lokale Dateien) wahlweise ' nur auf Nachfrage oder sofort ausführen curstat = wshshell.RegRead(key1 & "0" & key2) select case curstat case 1: status = "Bei ActiveX Objekten wird nachgefragt." _ & " Wollen Sie Objekte direkt ausführen lassen?" action = 0 case 2: status = "ActiveX Objekte werden nicht ausgeführt." _ & " Wollen Sie Objekte direkt ausführen lassen?" action = 0 case 0: status = "ActiveX Objekte werden ausgeführt. " _ & "Wollen Sie lieber nachfragen lassen?" action = 1 case else: MsgBox "Unbekannte Einstellung." WScript.Quit end select ' Nachfragen, was gewünscht ist: answer = MsgBox(status, vbYesNo+vbQuestion) if answer = vbYes then wshshell.RegWrite key1 & "0" & key2, action, "REG_DWORD" MsgBox "Einstellungen geändert!", vbInformation end if
Tip: Internet Explorer als »Hilfs-Scripting-Host«! Natürlich brauchen Sie das obige Script nicht unbedingt. Sie können auch von Hand den Registrierungseditor REGEDIT.EXE öffnen und dann im angegebenen Schlüssel die Veränderungen manuell eintragen. HKCU steht dabei für HKEY_CURRENT_USER. Das kann praktisch sein: Vielleicht wollen Sie Scripts auf zahlreichen Rechnern im Netzwerk einsetzen, haben aber keine Lust, dort überall den WSH zu installieren. Sofern mindestens der IE4 auf den Computern installiert ist und sofern Sie die Registry-Änderungen von oben auf diesen Rechnern durchführen, kann also auch der Internet Explorer als sofort einsetzbarer Windows Script Host verwendet werden.
1.2
1.2.1
Internet Explorer als sinnvoller Script Host
37
Internet Explorer als unsichtbarer Script Host
Damit der Internet Explorer als vernünftiger Script Host eingesetzt werden kann, muß ein Weg gefunden werden, um das Internet Explorer-Fenster zu verstecken. Schließlich ist es wenig elegant, wenn ständig ein leeres IE-Fenster Ihre Scriptaktionen begleitet. Mit dem folgenden Rahmenwerk können Sie jedes beliebige VBScript-Script vom Internet Explorer ausführen lassen, ohne daß sein Fenster dabei störend zutage tritt. Speichern Sie es als TEST5.HTM. <script language = "VBScript"> document.parentWindow.resizeTo 0,0 ’ ...hier folgt der Scriptcode MsgBox "Script läuft ohne IE-Fenster!" ' ...hier könnte weiterer Scriptcode stehen
Eingebettet in dieses Rahmenwerk führt Ihr Internet Explorer nun jedes beliebige VBScript-Script aus, ohne daß auf dem Computer der Windows Scripting Host installiert zu sein braucht. Es geht also auch ohne. Allerdings sollten Sie beachten, daß der WSH als Teil seiner Installation eine Reihe von zusätzlichen Komponenten mitinstalliert. Das Scripting.FileSystemObject gehört zum Beispiel dazu, und so kann es durchaus sein, daß auf einem WSH-losen System zwar der Internet Explorer einwandfrei Ihre Scripts ausführt, aber wichtige Zusatzobjekte fehlen. Tip: Scripting.FileSystemObject – wo kommt es eigentlich her? Schauen Sie sich das Problem stellvertretend am wichtigen Scripting.FileSystemObject an: nur mit diesem Objekt ist es möglich, per Script das Dateisystem zu verwenden. Der WSH bringt das Objekt mit, aber der ist nicht der einzige: Wenn Sie auf dem Computer den Internet Information Server oder den Personal Web Server installieren, wird ebenfalls das Scripting.FileSystemObject installiert. Sie können das Objekt sogar separat installieren – völlig losgelöst vom WSH. Dazu kopieren Sie die Datei SCRRUN.DLL in den Windows-Systemordner und registrieren die Datei: Im Startmenü wählen Sie Ausführen und geben ein: REGSVR32.EXE SCRRUN.DLL [Enter].
1.2.2
Streng geheim: HTA-Dateien des Internet Explorer 5
Das Malheur mit Sicherheitsbeschränkungen und lokalen Scripts hat Microsoft natürlich erkannt und reagiert. Bei Windows 2000 können Sie deshalb ab sofort Webseiten als universelle Bedienflächen für Ihre Scripts einsetzen, ohne daß Sie sich um die ActiveX-Sicherheitseinstellungen zu kümmern brauchen. Das Geheimnis sind HTA-Dateien. Solche Dateien werden im IE 5 geöffnet, und die meisten Scripting-Objekte stehen in HTA-Dateien unabhängig von den Sicherheitseinstellungen zur Verfügung. Das ist möglich, weil HTA-Dateien nur
38
Kapitel 1: Sprachschatz Ihrer Scripts erweitern
lokal ausführbar sind, nicht über das Web. Zugleich spart sich das Internet Explorer-Fenster seine üblichen Symbolleisten und Menüs und konzentriert sich nur auf die Darstellung Ihrer Scripts. Allerdings sind nur solche Befehle erlaubt, die im IE-Fenster ablaufen. Der MsgBox-Befehl ist tabu, und deshalb müßten Sie das vorangegangene Beispielscript nur etwas umwandeln. Speichern Sie es als TEST6.HTA. <script language = "VBScript"> set fs = CreateObject("Scripting.FileSystemObject") ’ Auf einen Ordner zugreifen: set ordner = fs.GetFolder("C:\") ’ Alle Dateien auflisten liste = "" for each datei in ordner.files liste = liste & datei.name & ", " next ’ anzeigen MsgBox liste
Denken Sie bitte daran: HTA-Dateien funktionieren nur bei Windows 2000. HTA-Dateien besitzen kein eigenes Icon und werden deshalb immer mit dem Windows-Standard-Icon für unbekannte Dateien ausgerüstet.
Bild 1.7: Webseiten mit HTA-Extension werden als lokale Management Console geöffnet
1.3
1.3
Scripts um zusätzliche Funktionen bereichern
39
Scripts um zusätzliche Funktionen bereichern
Eins ist klar: In diesem Buch geht es nicht um die reine Scripterstellung. Wie Sie VBScript verwenden und damit nützliche Scripts schreiben, habe ich bereits in meinem ersten Buch zum Windows Scripting Host in allen Details beschrieben: Franzis Professional Series Windows Scripting Host Praxisbuch. In diesem Buch geht es darum, wie Sie Ihren Scripts neue und bessere Befehle beibringen. Befehle, mit denen Sie zum Beispiel Windows NT/2000 Benutzerkonten verwalten, CD-Schubladen ausfahren oder fremde Programme fernsteuern. Jede Scripterweiterung geht dabei denselben Weg: über CreateObject oder GetObject greift Ihr Script auf zusätzliche Objekte zu, die die nötigen neuen Funktionen zur Verfügung stellen. Doch gibt es ganz unterschiedliche Wege, an Objekte heranzukommen:
Im Kapitel 2 lernen Sie ein wertvolles Tool kennen, das ich für Sie programmiert habe und das Sie auf der Buch-CD finden. Dieses Tool analysiert vollautomatisch Ihr System und verrät, welche Objekte es eigentlich auf Ihrem System gibt, wie ihr Innenleben aussieht und welche Funktionen und Befehle darin schlummern. Dieses Spionage-Tool schreibt Ihnen auf Wunsch sogar das komplette Grundgerüst für Ihre Scripts. Allein mit diesem Tool und dem Wissen, das es bereitstellt, gewinnen Sie Hunderte neuer Funktionen hinzu.
Im Kapitel 3 verrate ich Ihnen, wann GetObject sinnvoll eingesetzt wird. Ich zeige Ihnen, wie Sie sich per GetObject ins ADSI (Active Directory Service Interface) einklinken und so Windows NT/2000-Benutzerkonten verwalten, Ordner im Netzwerk freigeben und BetriebssystemDienste starten und beenden.
Im Kapitel 4 stelle ich Ihnen die kostenlose Visual Basic Control Creation Edition vor. Sie erlaubt Ihnen, ganz eigene Objekte zu schreiben. Das ist weit weniger schwierig, als Sie glauben, und mit der VB CCE stehen Ihren Scripts plötzlich Tausende neuer Funktionen zur Verfügung.
41
2
Mit dem Scripting Spy geheime Systemobjekte ausspionieren
Auf Ihrem System schlummern Hunderte von ActiveX-Objekten mit Tausenden von nützlichen Funktionen, nur verrät Ihnen das niemand! All diese Funktionen könnten Sie sofort und ohne weitere Kosten in eigenen Scripts einsetzen. Wenn Sie wüßten, wo diese verborgenen Objekte schlummern, wie sie angesprochen werden und welche Funktionen darin versteckt sind. Rätseln Sie nicht länger! Ich habe für Sie ein universelles Spionagetool entwickelt. Es befindet sich auf der Buch-CD und braucht nur noch installiert zu werden. Dieses Spionagetool verrät Ihnen alles, was Sie wissen müssen, um auch die verstecktesten Systemfunktionen in Ihren Scripts zu nutzen. Lernen Sie auf den nächsten Seiten die verblüffenden Möglichkeiten des Scripting Spy genau kennen! Ganz nebenbei werden Sie dabei nicht nur eine interessante Reise durch Ihr System machen, sondern sehr viel »Expertenwissen« über COM-Objekte hinzugewinnen. Und zwar gänzlich schmerzfrei, denn der Scripting Spy enthüllt den Aufbau von COM-Objekten und macht das Innenleben wie mit einem Röntgen-Apparat sichtbar und transparent. Wer sofort loslegen will, kann natürlich auch gleich zu Kapitel 2 springen. Clever ist das aber nicht, denn nur mit den Infos der folgenden Seiten behalten Sie den Überblick und können alles souverän meistern.
2.1
Scripting Spy – das müssen Sie wissen
Der Scripting Spy ist eine kostenlose Beigabe zu diesem Buch, und einem geschenkten Gaul schaut man nicht ins Maul. So oder ähnlich könnte man die Sache formulieren, denn der Scripting Spy ist mein persönliches Objekt-Röntgen-Gerät, mit dem ich zahlreiche Geheimnisse in diesem Buch enträtseln konnte. Dieses Tool ist in einer Rotwein-reichen Woche in der Provence entstanden und war nie für den kommerziellen Markt bestimmt. Ich kann deshalb keinerlei Garantien über die Funktionstüchtigkeit dieses Tools geben. Trotzdem bin ich für jegliches Feedback an
[email protected] dankbar und verspreche natürlich, das Tool weiterzuentwickeln. Der kritischste Moment ist der Programmstart selbst: Hier analysiert der Scripting Spy alle Objekte auf Ihrem Computer, und das funktioniert auch in aller Regel wunderbar. Dumm nur, wenn in Ihrer Registry Inkonsistenzen entdeckt werden: Der Scripting Spy kann sich bei unlogischen RegistrySchlüsseln durchaus verabschieden, weil mir die Zeit fehlte, jedwede Fehlerbedingung abzufangen.
42
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
Falls Sie übrigens ein Hardcore-C-Programmierer sind und zufällig mit dem Gedanken spielen, das Tool zusammen mir mir zu perfektionieren, dann melden Sie sich bitte.
2.1.1
Scripting Spy installieren
Um Ihr Spionagetool zu installieren, starten Sie auf der Buch-CD im Verzeichnis SCRIPTING SPY das Programm SETUP.EXE. Klicken Sie dann auf OK und anschließend auf die große Schaltfläche mit dem Installations-Symbol. Das Programm wird installiert, und Sie finden den Scripting Spy anschließend in Ihrem Programme-Menü. Tip: Probleme bei der Installation? Sollte die Installation nicht klappen, dann sind dafür vermutlich Versionskonflikte verantwortlich – das alte Windows-Problem, auch »DLL HELL« genannt. Kontrollieren Sie, ob im Software-Modul der Systemsteuerung möglicherweise schon ein früher installierter Scripting Spy gemeldet wird, und deinstallieren Sie ihn dort. Hilft alles nichts, dann mailen Sie mir:
[email protected].
2.1.2
Nachschauen, welche Objekte es auf Ihrem System gibt
Starten Sie den Scripting Spy in Ihrem Programme-Menü. Ein Dialogfenster erscheint und bittet um etwas Geduld, während das Tool Ihr System unter die Lupe nimmt. Dies ist der kritischste Moment, weil hierbei die Registry untersucht wird. Fehleinträge in der Registry können den Scripting Spy verwirren und zur Aufgabe zwingen. Wie lange der Suchprozeß dauert, hängt von zwei Dingen ab: der Geschwindigkeit Ihres Rechners und natürlich der Anzahl der Programme, die auf Ihrem Computer installiert sind.
Bild 2.1: Der Scripting Spy untersucht automatisch Ihr gesamtes System
2.1
Scripting Spy – das müssen Sie wissen
43
Tip: Scripting Spy benötigt den Scripting Host! Weil der Scripting Spy ein Tool für die Scriptprogrammierung ist, muß der WSH auf Ihrem System installiert sein. Andernfalls quittiert der Scripting Spy den Dienst. Wie Sie den WSH blitzschnell auf Ihrem System installieren, wenn er noch fehlt, lesen Sie in Kapitel 1 – oder Sie sparen sich das Blättern und installieren die Datei STE51DE.EXE von der Buch-CD.
Anschließend können Sie per Klick auf Info die Version Ihres WSH kontrollieren und mit Akzeptiert die Spionagearbeit aufnehmen:
Bild 2.2: Der Scripting Spy meldet Version des Scripting Host und der Sprach-Engines
Im Register Modul aussuchen sehen Sie eine lange Liste mit Namen. Vielleicht kommen Ihnen diese Namen bekannt vor (siehe Bild 2.3). In der Voreinstellung listet der Scripting Spy alle Programm-IDs auf, die sogenannten ProgIDs. Die kennen Sie schon, denn die ProgIDs sind die offiziellen Namen der Objekte. Mit diesen ProgID-Namen locken Sie Objekte hervor und können sie anschließend in eigenen Scripts nutzen. Die Liste zeigt allerdings der Übersicht wegen nicht sofort die ganze ProgID. Weil ProgIDs immer aus zwei Teilen bestehen, die durch einen Punkt getrennt sind, zeigt die Liste zuerst nur den ersten Teil. Doppelklicken Sie auf solch einen Eintrag, dann sehen Sie in den Untereinträgen alle ProgIDs, die den ersten Teil im Namen gemeinsam teilen. Probieren Sie’s einfach aus: Oben hatten Sie bereits das Scripting.FileSystemObject kennengelernt, mit dessen Hilfe Sie das gesamte Dateisystem im Griff haben. Suchen Sie in der Liste nach dem Begriff Scripting, und doppelklicken Sie dann darauf! Drei Untereinträge erscheinen: • Scripting.Dictionary • Scripting.FileSystemObject • Scripting.Encoder
44
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
Sie sehen also auf einen Blick: Das Scripting-Modul enthält gleich drei Objekte, und das Scripting.FileSystemObject Objekt ist nur eins davon.
Bild 2.3: Aha, der Scripting Spy listet alle Objekte auf, die es bei Ihnen gibt!
Der Scripting Spy kann aber noch viel mehr Infos liefern. Klicken Sie auf das Register Beschreibung, dann listet der Scripting Spy die Objekte geordnet nach ihrer Beschreibung. Das Scripting.FileSystemObject würden Sie nun unter dem Eintrag FileSystem Object finden.
Bild 2.4: Auf Wunsch auch anders: COM-Objekte nach Hersteller sortiert
2.1
Scripting Spy – das müssen Sie wissen
45
Die Beschreibung-Ansicht ist vor allem dann wichtig, wenn Sie selbst auf die Pirsch gehen möchten und nicht genau wissen, wo sich Nachschauen lohnt. Die Beschreibung Steuerelement für Kodak-Bildbearbeitung ist einfach aussagekräftiger als die ProgID, die dahinter steckt: imaging.editctrl. Wollen Sie die Objekte dagegen nach Herkunft sortieren, dann klicken Sie auf das Register Hersteller. Jetzt sehen Sie alle Hersteller, die ActiveX-Objekte auf Ihrem Computer installiert haben. Der Eintrag »n/a« faßt alle Objekte zusammen, bei denen kein Hersteller angegeben ist.
2.1.3
Detailinformationen zu einem Objekt sehen
Ganz gleich, ob Sie sich für die Ansicht ProgID, Beschreibung oder Hersteller entschieden haben: Sobald Sie einen Oberbegriff der Liste per Doppelklick öffnen und dann einen Untereintrag anklicken, sehen Sie rechts alle wichtigen Detailinformationen zu diesem Objekt. Wählen Sie zum Beispiel das Register ProgID, und suchen Sie den Eintrag Scripting. Doppelklicken Sie darauf, und klicken Sie auf den Untereintrag Scripting.FileSystemObject. Rechts sehen Sie nun Detailinformationen über das Objekt. Sie sehen zum Beispiel, daß dieses Objekt ein »In-Process Server« ist und in der Datei SCRRUN.DLL lebt. Tip: In-Process und Out-of-Process – das steckt dahinter... Die meisten ActiveX-Objekte sind In-Process-Objekte. In-Process heißt: das Objekt kann nicht als eigenständiges Programm laufen, sondern muß in den Adreßraum eines anderen Programms eingeklinkt werden. Greift Ihr Script auf ein In-Process-Objekt zu, dann klinkt sich das Objekt in den Adreßraum des Script Hosts ein. Für Sie hat das alles nur eine praktische Konsequenz: auf In-Process-Objekte muß Ihr Script warten. Solange das In-Process-Objekt eine Aufgabe erledigt, ist die weitere Script-Abarbeitung angehalten. Bei Out-of-Process-Objekten kann Ihr Script dagegen weiterarbeiten, während das Objekt seine Arbeit erledigt.
2.1.4
Wichtige Objekte in die Favoritenliste übernehmen
Sehr viele ActiveX-Objekte, die der Scripting Spy auflistet, sind entweder nur für interne Zwecke gedacht oder interessieren Sie schlichtweg nicht. Damit Sie sich nicht immer wieder durch die lange Gesamtliste klicken müssen, können Sie interessante Objekte in Ihre persönliche Hit-Liste übernehmen. Suchen Sie einfach ein Objekt heraus, das Sie interessiert. Das wichtige Scripting.FileSystemObject sollte zum Beispiel dazugehören. Tip: So klappt’s am besten Am besten picken Sie sich für den Anfang genau ein interessantes Objekt heraus, zum Beispiel Scripting.FileSystemObject, und fügen es zu Ihren Favoriten hinzu. Anschließend erforschen Sie dieses Objekt so wie unten beschrieben. Haben Sie es anschließend genauestens kennengelernt, dann können Sie optimal entscheiden, ob es weiterhin als nützliches Objekt in der Favoritenliste bleiben soll oder lieber wieder herausfliegt.
46
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
Anschließend knöpfen Sie sich das nächste unbekannte Objekt aus der Gesamtliste vor und machen weiter, bis Sie entweder keine Lust mehr oder alle Objekte analysiert haben. In Ihrer Favoritenliste finden Sie dann stets alle wichtigen Objekte, die Ihren Scripts nützliche Zusatzfunktionen bescheren.
In der rechten Spalte klicken Sie dann auf die Schaltfläche Scripting.FileSystemObject zu Favoriten hinzufügen. Mit derselben Schaltfläche entfernen Sie das Objekt auch wieder aus der Liste. Sobald Sie mindestens ein Objekt zum »Favoriten« erklärt haben, wacht die Option »nur Favoriten« auf. Wählen Sie diese Option, dann schrumpft die Objektliste und zeigt nur noch die von Ihnen handverlesenen Objekte an – praktisch!
2.1.5
Potentiell nutzlose Objekte aus der Liste verbannen
Auf Ihrem System können Hunderte von ActiveX-Objekten installiert sein. Welche sind interessant für einen Scripter? Natürlich könnten Sie alle Objekte der Reihe nach untersuchen, aber das wäre ein zeitraubendes Unterfangen. Deshalb hilft Ihnen der Scripting Spy auf Wunsch! Wählen Sie die Option vorselektiert, dann entfernt der Scripting Spy alle Objekte aus der Liste, die vermutlich keine interessanten Script-Befehle enthalten. Aber auch in der Gesamtliste (Option alle zeigen) bekommen Sie Hinweise: Symbol
Bedeutung Interessantes Objekt, enthält mindestens eine Funktion Vermutlich uninteressant: enthält keine Funktionen, nur Informationen und Subs Dieses Objekt wurde zu den Favoriten hinzugefügt Vorsicht: keine TypeLibrary für dieses Objekt gefunden. Wenn Sie es trotzdem auswählen, sucht der Scripting Spy ausführlicher nach einer TypeLibrary, kann aber nicht garantieren, daß es wirklich eine gibt
Tab. 2.1: Info-Symbole zeigen, wie interessant ein unbekanntes COM-Objekt ist
2.2
Röntgen-Schirm: Welche Funktionen schlummern in den Objekten?
Die Namen der auf Ihrem System versammelten Objekte kennen Sie jetzt. Nur nützen Ihnen die natürlich herzlich wenig, wenn Sie nicht auch wissen, welche Funktionen darin überhaupt zur Verfügung gestellt werden. Deshalb hat der Scripting Spy einen eingebauten Röntgenschirm, der auf Wunsch jedes Objekt genau durchleuchtet und alle geheimen Informationen preisgibt. Suchen Sie sich dazu auf dem Register Modul aussuchen zuerst das Objekt heraus, in das Sie hineinschauen wollen. Wählen Sie zum Beispiel das Scripting.FileSystemObject. Anschließend klicken Sie unten auf die Schaltfläche Details oder doppelklicken auf den Eintrag.
2.2
Röntgen-Schirm: Welche Funktionen schlummern in den Objekten?
47
Schwupp, sofort analysiert der Scripting Spy das ausgewählte Objekt und schaltet um auf das Register Röntgen. Ganz oben finden Sie ein Textfeld namens Typelib Datei. Es enthält den Namen der Type Library, die für dieses Objekt zuständig ist. Darunter listet der Scripting Spy alle Einzelteile auf, die es im Objekt finden konnte. Außerdem markiert er automatisch die »Klasse«, die für das ausgewählte Objekt zuständig ist. Im Falle des Scripting.FileSystemObject wird also die Klasse FileSystemObject aufgeklappt und darin das Interface IFileSystem3 markiert. In der Liste rechts daneben verrät der Scripting Spy, wie Ihr Script an das markierte Interface herankommt. Ganz korrekt meldet es in diesem Beispiel, IFileSystem3 sei direkt durch Scripting.FileSystemObject ansprechbar. Stimmt.
Bild 2.5: Röntgenschirm: Liefert automatisch die Geheiminfos aus unbekannten Objekten
In der Liste darunter schließlich sehen Sie alle Funktionen und Befehle, die Ihnen über Scripting.FileSystemObject zur Verfügung stehen. Heureka!
2.2.1
Wie COM-Objekte aufgebaut sind
Eigentlich brauchen Sie sich keine grauen Haare wachsen zu lassen, denn wenn Sie keine Lust auf technische Details haben, dann ignorieren Sie diesen Abschnitt einfach höflich. Der Scripting Spy stellt Ihnen auch ohne dieses Detailwissen zuvorkommend die Funktionen und Befehle unbekannter Objekte zur Verfügung.
48
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
Allerdings ist es höchst spannend und interessant, sich den internen Aufbau von COM-Objekten näher anzusehen. Das Wissen, das Sie hier gewinnen, hilft Ihnen sehr dabei, die Zusammenhänge optimal zu verstehen. Schauen Sie sich dazu noch einmal die Liste oben links an: noch ist hier wahrscheinlich das IFileSystem3-Objekt markiert. Scrollen Sie testweise durch die Liste, und schauen Sie sich an, was sonst noch darin zu sehen ist. Jedes COM-Objekt enthält sogenannte CoClasses. Das sind eigenständige Objekte, die bestimmte Befehle anbieten. Die Liste zeigt Ihnen alle CoClasses, also alle Objekte, die in der betreffenden ActiveX-Komponente enthalten sind. Wie Sie von oben wissen, wohnt das Scripting.FileSystemObject in der Datei SCRRUN.DLL. Diese Datei enthält sehr viel mehr Intelligenz als nur das Scripting.FileSystemObject. Fünf CoClasses meldet Ihnen der Scripting Spy. Alle CoClasses, die über ProgIDs direkt von Ihren Scripts aus ansprechbar sind, werden mit diesem Symbol markiert: . Alle CoClasses, an die Ihr Script nicht direkt herankommt, erhalten dieses Symbol: . Klicken Sie in der Liste nacheinander auf die verschiedenen CoClasses! Im Feld rechts daneben sehen Sie sofort, wie Ihr Script an dieses Objekt herankommt: CoClass
So kommen Sie heran:
Dictionary Encoder Files FileSystemObject Folders
Scripting.Dictionary Scripting.Encoder Files in Modul Folder Scripting.FileSystemObject Subfolders in Modul Folder
Tab. 2.2: Die CoClasses des Scripting.FileSystemObject
Aha! Die Befehle des FileSystemObject können Sie also direkt über CreateObject (»Scripting.FileSystemObject«) ansprechen! An ein Files-Objekt kommen Sie dagegen nicht direkt heran. Trotzdem geht es, denn der Scripting Host kennt die internen Zusammenhänge: Der Befehl Files aus dem Modul Folder liefert Ihnen ein Files-Objekt! Nur: Wo bekommt man ein Folder-Modul her? Dazu gleich mehr, denn für solch knifflige Fragen hat der Scripting Spy eine eingebaute Automatik. Alle CoClasses enthalten sogenannte Standard-Interfaces. Das bedeutet bloß, das die CoClass intern aus weiteren Einzelteilen besteht. Doppelklicken Sie zum Beispiel auf die CoClass FileSystemObject: Sofort sehen Sie, daß das Standard-Interface IFileSystem3 heißt. Das Standard-Interface wird mit diesem Symbol markiert: . Einige CoClasses enthalten zusätzlich ein Event-Interface. Mehr zu Events lesen Sie in Kapitel 3.4. Event-Interfaces werden mit diesem Symbol markiert: . Möchten Sie noch tiefer in die Materie einsteigen, dann doppelklicken Sie auf das Standardinterface, also zum Beispiel auf IFileSystem3. Jetzt sehen Sie zwei weitere Unterpunkte: Input und Output.
2.2
Röntgen-Schirm: Welche Funktionen schlummern in den Objekten?
49
Input listet alle Zusatzinfos auf, die Sie kennen müssen, wenn Sie die Funktionen und Befehle dieses Interface aufrufen wollen. Doppelklicken Sie auf Input! Nun sehen Sie zum Beispiel den Eintrag SpecialFolderConst, und wenn Sie darauf klicken, sehen Sie unten die besonderen Konstanten, mit denen das FileSystemObject spezielle Ordner bezeichnet. Output listet übersichtlich alle Objekte auf, die Sie von den Funktionen dieses Interface zurückgeliefert bekommen können. Input und Output können Sie für den Augenblick getrost ignorieren. Diese Informationen werden später aber wichtige Hilfestellung leisten. Nicht umsonst organisiert der Scripting Spy die Liste der CoClasses und Interfaces baumartig. Weil der Scripting Host automatisch die Verwandtschaftsbeziehungen der einzelnen Module berücksichtigt, sehen Sie sofort, daß IFileSystem3 das Standardinterface von FileSystemObject ist, die beiden also zusammengehören. Ohne diese Zuordnung wäre es wesentlich schwieriger, die vielen einzelnen Objekte vernünftig zuzuordnen. Dennoch können Sie auch eine »flache« Ansicht auf den Inhalt der ActiveX-Komponente bekommen. Dazu öffnen Sie den Eintrag TypeLib, der mit diesem Symbol markiert ist: .
Bild 2.6: Wichtig: der Scripting Host verrät die Zahlenwerte interner Konstanten
Nun sehen Sie – nach Kategorien sortiert – die Einzelteile des ActiveX-Objekts: Kategorie
Beschreibung
Alias
Entspricht eigentlich einem anderen Objekt und sorgt dafür, daß dieses andere Objekt unter einem anderen (und meist freundlicheren) Namen angesprochen werden kann. Funktioniert also sozusagen wie eine Verknüpfung. Aufzählung; enthält meist Konstanten und Zusatzinformationen Die »Klassen«, also die Objekte, die im ActiveX-Modul schlummern Interface einer Klasse
Enum CoClass DispInterface
50
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
Kategorie
Beschreibung
Interface Record Union
Interface einer Klasse Zusatzinformation; zum Beispiel benutzerdefinierte Variablentypen Bei Visual Basic nicht verwendet
Tab. 2.3: Die Klassen einer TypeLibrary
Tip: Konstanten – hier stehen die Werte! Ganz besonders wichtig ist der Eintrag Enum! Darin finden Sie alle Konstanten und deren Werte. Das ist enorm nützlich, denn viele Befehle erwarten bestimmte Zahlenwerte, und die Informationen aus Enum verraten Ihnen, welche Zahlenwerte richtig sind.
2.3
Nach Informationen suchen
Der Scripting Spy enthält eine komfortable Suchfunktion, die Ihnen wertvolle Dienste leistet, wenn Sie bestimmte Informationen dringend benötigen oder auf der Pirsch nach Funktionen sind, die Sie für ein Projekt gebrauchen könnten. Alle Suchfunktionen erreichen Sie über das Register Suchen.
2.3.1
Wo soll gesucht werden?
Jede Suche besteht aus drei Schritten. Im ersten Schritt legen Sie fest, wo gesucht werden soll: Wo suchen?
Beschreibung
Aktuelles Objekt
Wenn Sie sich bereits ein Objekt herausgepickt und mit dem Röntgenschirm untersucht haben, dann sucht der Scripting Spy in diesem Objekt. Das ist ideal, wenn Sie sich mit einem einzelnen Objekt beschäftigen und zum Beispiel nach Objekten, Befehlen oder Konstanten suchen. Haben Sie bereits Objekte in Ihre Favoritenliste eingefügt, dann sucht diese Option in allen Favoriten-Objekten. Das ist ideal, um Informationen zu finden, von denen Sie nicht genau wissen, welches Objekt sie eigentlich bereitstellt. Suchen Sie so zum Beispiel nach Befehlen, die Sie nachschlagen wollen. Diese Option sucht in allen ActiveX-Objekten, die auf Ihrem System installiert sind. Weil das sehr viele sind, kann die Suche enorm lange dauern. Einige Minuten sollten Sie schon einplanen. Diese Option ist ideal, wenn Sie einfach mal schauen wollen, ob es einen Befehl zum Thema »Battery« gibt, oder wenn Sie recherchieren möchten.
Favoriten
Überall
Tab. 2.4: Legen Sie fest, an welchen Orten gesucht werden soll
2.3
2.3.2
Nach Informationen suchen
51
Wonach suchen Sie eigentlich?
Der zweite Schritt legt fest, wonach Sie eigentlich suchen. Sind Sie auf der Suche nach einem bestimmten Befehl, oder fahnden Sie nach einem Objekt? Auch nach ProgIDs kann gesucht werden. Option
Beschreibung
Befehle Module ProgIDs
Findet Funktionen, Befehle und Eigenschaften Findet Module wie zum Beispiel das FileSystemObject oder das Folder-Modul Findet ProgIDs wie zum Beispiel Shell.Application oder Wscript.Shell
Tab. 2.5: Art der gesuchten Information festlegen
2.3.3
Wie soll gesucht werden – genau oder unscharf?
Als letzten Schritt legen Sie fest, wie gesucht werden soll. Kennen Sie den gesuchten Befehlsnamen ganz genau, dann wählen Sie wörtlich. Wollen Sie dagegen unscharf suchen, dann wählen Sie enthaltend. Jetzt werden alle Befehle gefunden, die irgendwo im Namen den Suchbegriff enthalten. Beginnend mit listet alle Befehle auf, die mit dem Suchwort beginnen. Option
Beschreibung
Wörtlich Beginnend mit Enthaltend
Suchwort wird exakt gesucht. Groß- und Kleinschreibung spielt aber keine Rolle Findet alles, was mit dem Suchwort beginnt Findet alles, was das Suchwort irgendwo im Namen enthält
Tab. 2.6: Wie genau soll gesucht werden?
2.3.4
Szenario 1: Nach einer ProgID suchen
Stellen Sie sich das folgende Beispiel vor: Sie haben in einer Zeitschrift ein Beispielscript entdeckt, das das Wscript.Network-Objekt einsetzt. Klingt interessant! Welche Möglichkeiten schlummern wohl sonst noch in diesem Objekt? Wie könnte man das Beispiel aus der Zeitschrift erweitern und ergänzen? Suchen Sie doch einfach! 1. Klicken Sie auf das Register Suchen, und wählen Sie die Option Überall. 2. Wählen Sie dann die Option ProgIDs, und wählen Sie die Option Wörtlich. 3. Geben Sie als Suchbegriff ein: Wscript.Network. Dann drücken Sie [Enter]. Voilà! Die ProgID wird gefunden, und wenn Sie den Eintrag in der Ergebnisliste anklicken, schaltet der Scripting Spy automatisch in den Röntgenschirm um, durchleuchtet das Objekt und listet Ihnen alle Funktionen auf, die das Objekt zu bieten hat. Einfach, oder?
52
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
Tip: Und was, wenn das Objekt nicht gefunden wurde? Sollte Ihre Suche keinen Erfolg gehabt haben, dann ist auch das eine nützliche Information: Sie wissen so nämlich, daß dieses Objekt auf Ihrem Computer gar nicht installiert ist. Hat ein Zeitschriftenartikel zum Beispiel das Shell.Application-Objekt verwendet, so kann dieses Objekt bei Ihnen durchaus fehlen. Es wird nur vom Internet Explorer 4 mitgeliefert (nicht IE5) und steht ansonsten nur bei Windows 98 und Windows 2000 zur Verfügung.
Bild 2.7: Nach einem interessanten COM-Objekt suchen
Vielleicht sind Sie jetzt neugierig geworden und wundern sich, ob vielleicht noch ganz andere Objekte hinter Wscript. stecken. So finden Sie es heraus: 1. Klicken Sie auf das Register Suchen, und wählen Sie die Option Überall. 2. Wählen Sie die Option ProgIDs und dann die Option enthaltend. 3. Geben Sie den Suchbegriff ein: Wscript. [Enter] (Punkt nicht vergessen!) Tatsächlich: Sofort sehen Sie, daß es zusätzlich das Wscript.Shell-Objekt gibt, und per Klick sehen Sie auch dessen Funktionsvielfalt. Ziel dieser ProgID-Suche ist also, Informationen, die Ihnen durch Zeitschriftenartikel und Internetbeiträge in die Hände fallen, sofort als Saatkorn für eigene Recherchen zu nutzen.
2.4
Neue Scripting-Funktionen entdecken
53
Bild 2.8: Verwandte Objekte finden
2.3.5
Szenario 2: Nach nützlichen Befehlen suchen
Auch für die alltägliche Recherche ist die Suchen-Funktion ideal. Stellen Sie sich vor, Sie würden gern wissen, wie man den Akku-Ladestand des Notebooks ermitteln kann. Akkus heißen bei den Amerikanern vereinfachend »Battery«, also lohnt sich eine Suche nach diesem Begriff. 1. Klicken Sie auf das Register Suchen, und wählen Sie die Option Überall. 2. Wählen Sie die Option Befehle und dann die Option enthaltend. 3. Geben Sie als Suchwort ein: Battery [Enter]. Nun beginnt eine Suche quer durch alle installierten ActiveX-Komponenten. Die kann etliche Minuten dauern, läßt sich aber jederzeit abbrechen. Das ist ratsam, sobald die Suchfunktion fündig geworden ist. Und tatsächlich: Sofern Sie Windows 2000 einsetzen, wird wirklich eine Batterie-Funktion gefunden. Sie stammt aus dem Objekt SysInfo.SysInfo und heißt BatteryStatus. Ein Klick auf diesen Eintrag in der Ergebnisliste führt Sie direkt ins Röntgen-Register, und Sie sehen die genaue Befehlssyntax.
2.4
Neue Scripting-Funktionen entdecken
Vielleicht sind Sie ein alter Scripting-Hase und kennen schon die Standardbefehle der wichtigsten ActiveX-Objekte. Auch dann hat der Scripting Spy für Sie etwas zu bieten! Auf Wunsch listet er
54
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
nämlich bereitwillig alle geheimen Neuerungen auf, die es seit der ersten Ausgabe eines COMObjekts gegeben hat. Dazu suchen Sie sich zunächst wie gewohnt ein ActiveX-Objekt heraus, zum Beispiel Scripting.FileSystemObject. Anschließend klicken Sie auf das Register Neue Funktionen. In der linken Liste sehen Sie jetzt alle Module, die seit der Erstausgabe dieses COM-Objekts hinzugekommen sind. Im Falle des Scripting.FileSystemObjects zeigt die Liste zum Beispiel dieses erweiterte Modul: IFileSystemObject.
Bild 2.9: Automatisch neue Funktionen eines Objekts markieren lassen
Klicken Sie darauf! Sofort zeigt die zweite Liste alle Funktionen, die im Objekt schlummern, und markiert alle neu hinzugekommenen Befehle mit »Neu«. Auf einen Blick können Sie sich so auf die wesentlichen Neuerungen konzentrieren und finden sofort heraus, daß diese Befehle beim WSH 2.0 hinzugefügt wurden: GetFileVersion GetStandardStream
2.5
VBScript und WSH durchleuchten
Das Röntgen-Register kann mehr als nur ActiveX-Objekte durchleuchten. Sie können damit jede beliebige Type Library sichtbar machen.
2.6
Hilfe zu individuellen Script-Befehlen bekommen
55
Vielleicht fragen Sie sich, wo eigentlich die VBScript-Befehle herkommen, oder Sie sind an den Befehlen interessiert, die der Windows Scripting Host mitbringt. Klicken Sie einfach auf das Röntgen-Register und dann ins Textfeld TypeLib Datei. Dann geben Sie den Dateinamen an, in dem Sie Informationen vermuten. Liegt die Datei in einem der Systemordner, dann brauchen Sie noch nicht einmal den Pfadnamen anzugeben. Hier einige gute Startpunkte: Datei
Das steckt dahinter...
Wscript.exe
Befehle des Scripting Hosts. Diese Befehle stehen Ihnen in WSH-Scripts über die Objekte Wscript oder Wsh zur Verfügung Alle Befehle der VBScript Scriptengine Alle Befehle der JScript Scriptengine
VBScript.dll Jscript.dll
Tab. 2.7: Wichtige Bibliotheken für WSH-Befehle
Bild 2.10: Aha: Direkt in WSCRIPT.EXE einklinken und die WSH-Spezialbefehle sehen
2.6
Hilfe zu individuellen Script-Befehlen bekommen
Das Röntgen-Register ist bereits eine wertvolle Hilfe: Hier listet der Scripting Spy alle Funktionen und Eigenschaften auf, die Ihr Script verwenden kann. Doch es gibt noch viel mehr Hilfestellung!
56
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
Viele Objekte bringen eigens kurze Befehlsbeschreibungen mit. Sind solche Befehlsbeschreibungen verfügbar, dann blendet sie der Scripting Spy am unteren Bildschirmrand ein.
2.6.1
Geheime Hilfedateien liefern Profi-Informationen
Einige Hersteller liefern sogar ausführliche Hilfedateien mit, die haarklein die Funktion der Objekte beschreiben. Dummerweise schlummern diese Hilfedateien meist völlig vergessen irgendwo in den Weiten Ihrer Festplatte, und selbst wenn Sie durch Zufall auf eine dieser Hilfedateien stoßen würden, wäre es ein zeitraubendes Unterfangen, darin die Seite zu finden, die den gerade herausgepickten Befehl beschreibt. Der Scripting Spy macht das Leben leichter: Gibt es eine Hilfedatei zu dem Objekt, das Sie gerade untersuchen, dann blendet der Scripting Spy unten rechts die Schaltfläche Hilfe ein. Klicken Sie auf diese Schaltfläche, dann öffnet der Scripting Spy nicht nur die passende Hilfedatei, sondern blättert auch sofort vollautomatisch zu der Seite, die den ausgewählten Befehl beschreibt.
Bild 2.11: Ein Klick auf Hilfe schaltet automatisch in die Hersteller-Hilfe des Objekts
2.7
2.7
Vollautomatisch Scripts erstellen
57
Vollautomatisch Scripts erstellen
Wußten Sie eigentlich, daß der Scripting Spy sogar vollautomatisch fix und fertige Scripts für Sie schreiben kann? Sie brauchen die Scripts anschließend höchstens noch etwas feinjustieren. Zum Beispiel kann es Ihnen der Scripting Spy natürlich nicht abnehmen, die Funktionen mit den passenden Argumenten zu füttern, aber er nimmt Ihnen sämtliche Arbeit ab, um das Rahmengerüst zu gestalten. Der Scripting Spy kümmert sich auch automatisch um die richtigen Objekt-Zugehörigkeiten. Wenn Sie sich also einen Befehl aus einem Objekt aussuchen, das nicht direkt über eine ProgID und CreateObject generiert werden kann, dann schlägt der Scripting Spy zahlreiche Script-Alternativen vor, in die es alle Befehle einbaut, die nötig sind, um an das betreffende Objekt indirekt heranzukommen.
2.7.1
Szenario 1: Den Rechner scriptgesteuert herunterfahren
Schauen Sie sich einfach mal an, wie leicht so was geht. Das erste Beispiel nutzt eine Funktion aus dem Shell.Application-Objekt. Dieses Objekt gibt es bei Windows 98 und bei Windows 2000. Auf anderen Windows-Versionen fehlt es, kann aber über den Internet Explorer 4 nachgerüstet werden. Wer den Internet Explorer 5 verwendet, muß darauf verzichten. So fährt Ihr Script den Rechner herunter: 1. Starten Sie den Scripting Spy, wenn er noch nicht läuft. Ich verrate Ihnen zwar bereits, daß die gesuchte Funktion vom Objekt Shell.Application bereitgestellt wird, aber in diesem Beispiel wird keinerlei Geheimwissen vorausgesetzt. Deshalb klicken Sie auf das Register Suchen. 2. Wählen Sie die Optionen Überall, Befehl und enthaltend. Dann geben Sie als Suchwort etwas ein, das mit Herunterfahren zu tun hat und englisch ist – also Shutdown. Drücken Sie [Eingabe]. 3. Nun sucht der Scripting Spy in allen installierten Komponenten. Das kann eine Weile dauern. Gönnen Sie sich einen leckeren Capucchino, während Sie den Scripting Spy schuften lassen. 4. Nachdem die Analyse beendet ist, zeigt die Ergebnisliste eine ganze Reihe von Befehlen rund ums Thema Shutdown. Schauen Sie sich das Ergebnis genau an! Wenn bei Ihnen das Shell.Application-Objekt vorhanden ist, dann finden Sie in der Liste auch den Befehl ShutdownWindows! Der hört sich gut an – klicken Sie darauf. 5. Sofort schaltet der Scripting Spy in den Röntgenschirm um und markiert den Befehl. Unten in der Beschreibungsleiste steht: Exit Windows. Nicht übel.
58
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
Bild 2.12: Suchen Sie sich heraus, welche Funktionen Ihr Windows herunterfahren
Bild 2.13: Da ist er: der Befehl zum Herunterfahren
2.7
Vollautomatisch Scripts erstellen
59
6. Nun lassen Sie den Scripting Spy ein Beispielscript schreiben. Dazu klicken Sie unten rechts auf die Schaltfläche Beispiel. Tatsächlich: der Scripting Spy schreibt Ihnen vollautomatisch ein Script.
Bild 2.14: Der Scripting Spy schreibt automatisch das passende Script für Sie
7. Klicken Sie auf Speichern, um das Script abzuspeichern. Im Speichern-unter-Fenster stellen Sie zum Beispiel oben ein: Desktop. Dann geben Sie Ihrem neuen Script einen passenden Namen, zum Beispiel Feierabend, und klicken auf Speichern. 8. Im Scripting-Spy-Fenster klicken Sie auf nächstes. Da es keine weiteren Script-Alternativen gibt, kehrt der Scripting Spy wieder in seinen Röntgenschirm zurück. Knipsen Sie den Scripting Spy aus, oder minimieren Sie sein Fenster! 9. Auf dem Desktop liegt nun Ihr Script feierabend.vbs. Ob es Windows tatsächlich herunterfährt? Starten Sie das Script! Tatsächlich: Der Bildschirm verdunkelt sich, und Windows stellt Ihnen seine Abschaltvarianten zur Verfügung. Tip: Abschalten ganz ohne Klick: geht das? Ganz vollautomatisch funktioniert das Windows-Beenden noch nicht. Der Befehl ShutdownWindows bringt nur das Beenden-Dialogfenster hervor. Wenn Sie ohne Klick sofort herunterfahren wollen, dann finden Sie weitere Lösungen in Kapitel 8.18. Und in Kapitel 12.1 zeige ich Ihnen sogar, wie Sie ferngesteuert über das Netzwerk fremde Computer herunterfahren und neu starten.
Shell.Application hat noch eine ganze Reihe weiterer Befehle zu bieten. Eine ausführliche Beschreibung finden Sie in Kapitel 5.
60
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
2.7.2
Szenario 2: Den Inhalt eines Ordners auflisten
Schauen Sie sich als nächstes an, wie der Scripting Spy sogar komplexe Scripts für Sie verfaßt. Angenommen, Sie möchten die Namen aller Dateien in einem bestimmten Ordner auflisten. Aus den ersten Kapiteln wissen Sie bereits, daß für alle Datei-Operationen das Scripting.FileSystemObject zuständig ist. So gehen Sie vor: 1. Starten Sie den Scripting Spy, wenn er noch nicht läuft, und klicken Sie auf das Register Modul aussuchen. Dann klicken Sie auf das Unterregister ProgID. 2. Suchen Sie den Eintrag Scripting, doppelklicken Sie darauf, und doppelklicken Sie dann auf den Untereintrag Scripting.FileSystemObject. Vollautomatisch schaltet der Scripting Spy in den Röntgenschirm um. 3. Weil Sie Dateien auflisten wollen und weil Dateien auf englisch Files heißen, suchen Sie nach dem passenden Befehl. Dazu klicken Sie auf das Register Suchen und wählen die Optionen Aktuelles Objekt, Befehle, enthaltend. Dann geben Sie als Suchwort ein: Files [Enter]. 4. Tatsächlich: Es gibt einen Befehl namens Files. Klicken Sie ihn an! Der Scripting Host bringt Sie wieder sicher in den Röntgenschirm und markiert den Files-Befehl. Unten in der Beschreibungsleiste steht: Get files collection – schnapp dir die Sammlung der Dateien. 5. Nur: Welches Objekt bietet eigentlich den Files-Befehl an? Oben rechts in der Liste sehen Sie sofort, der Files-Befehl wird diesmal nicht direkt über ein Objekt angeboten, das Sie per ProgID und CreateObject erschaffen könnten. Statt dessen wird der Files-Befehl von einer Vielzahl anderer Funktionen bereitgestellt. 6. Bevor Sie sich nun graue Haare wachsen lassen und die Objektzusammenhänge verstehen müssten, klicken Sie einfach galant auf die Schaltfläche Beispiel, rechts unten. Voilà! Schon bastelt der Scripting Spy die erste Scriptvariation: ’ VBS Windows Script Host File ’ automatisch generiert von Scripting Spy V1.0 set FileSystemObject = CreateObject("Scripting.FileSystemObject") set Folder = FileSystemObject.CreateFolder(ByVal Path As String) set obj = Folder.Files ’ ' ' '
"files" ist vom Typ "Property " Zurückgelieferter Wert ist vom Typ: Beschreibung von "files" Get files collection
"IFileCollection"
7. Dieses Script ist zwar technisch in Ordnung, aber reichlich sinnlos. Es verschafft sich zuerst Zugang zum Scripting.FileSystemObject, legt dann mit CreateFolder einen neuen Ordner an und liest danach die Dateinamen in diesem Ordner. Ziemlich dumm, aber echte menschliche Intelligenz hat der Scripting Spy nicht zu bieten. Er ist Bürokrat. Klicken Sie deshalb auf nächstes, um sich einen neuen Vorschlag unterbreiten zu lassen. 8. Dieser Vorschlag ist schon wesentlich sinnvoller. Diesmal wird kein neuer Ordner angelegt, sondern das Script greift via GetFolder auf einen bestehenden Ordner zu. Sehr gut, genau das wollen Sie!
2.7
Vollautomatisch Scripts erstellen
61
’ VBS Windows Script Host File ’ automatisch generiert von Scripting Spy V1.0 set FileSystemObject = CreateObject("Scripting.FileSystemObject") set Folder = FileSystemObject.GetFolder(ByVal FolderPath As String) set obj = Folder.Files ’ ' ' '
"files" ist vom Typ "Property " Zurückgelieferter Wert ist vom Typ: Beschreibung von "files" Get files collection
"IFileCollection"
9. Noch ist das Script aber nicht vollständig, denn es ist nicht geklärt, welchen Ordner Sie überhaupt anschauen wollen. Hinter GetFolder steht: ByVal FolderPath As String. Strings sind Texte, hier gehört also der Pfadname des gesuchten Ordners hinein. Ersetzen Sie die Vorgabe durch einen Pfadnamen, zum Beispiel so: ’ VBS Windows Script Host File ’ automatisch generiert von Scripting Spy V1.0 set FileSystemObject = CreateObject("Scripting.FileSystemObject") set Folder = FileSystemObject.GetFolder("C:\") set obj = Folder.Files ’ ' ' '
"files" ist vom Typ "Property " Zurückgelieferter Wert ist vom Typ: Beschreibung von "files" Get files collection
"IFileCollection"
10. Speichern Sie das Script wieder ab! Wenn Sie es allerdings ausführen, wird nicht allzu viel passieren. Das ist klar: das Script verschafft sich zwar Zugriff auf einen Ordner und liefert eine »IFileCollection« zurück (das verrät das Beispielscript im unteren Teil), aber mehr passiert nicht. Damit Ihr Script sinnvoll wird, brauchen Sie aber kaum noch etwas zu tun. Lediglich wenige Erweiterungen sind nötig, und das machen Sie so: 1. Klicken Sie Ihr abgespeichertes Script mit der rechten Maustaste an, und wählen Sie Bearbeiten. Schon wird das Script-Innenleben wieder im Editor vor Ihnen ausgebreitet, und Sie können Änderungen vornehmen. 2. Wann immer Sie nicht genau wissen, was Sie mit dem Resultat eines Befehls eigentlich anfangen, lassen Sie sich den Typ des Resultats verraten. Dazu fügen Sie eine weitere Zeile hinzu: ’ VBS Windows Script Host File ’ automatisch generiert von Scripting Spy V1.0 set FileSystemObject = CreateObject("Scripting.FileSystemObject") set Folder = FileSystemObject.GetFolder("C:\") set obj = Folder.Files MsgBox TypeName(obj) ’ "files" ist vom Typ "Property " ' Zurückgelieferter Wert ist vom Typ:
"IFileCollection"
62
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren ’ Beschreibung von "files" ’ Get files collection
3. Speichern Sie das geänderte Script: Datei -> Speichern. Anschließend führen Sie es aus! Diesmal meldet das Script, das Ergebnis sei vom Typ Files. Aha! Schon besser! 4. Wechseln Sie zurück in den Scripting Spy. Dort ist nach wie vor das Script-Beispiel zu sehen. Klicken Sie auf Abbrechen. Klicken Sie dann auf das Register Suchen, und wählen Sie Aktuelles Objekt, Module, wörtlich. Dann suchen Sie nach files [Enter]. 5. Das Objekt wird gefunden. Es enthält nur zwei Befehle: Count und Item. Objekte, die Count und Item kennen und ansonsten nicht viele Extras zu bieten haben, sind in aller Regel Aufzählungen. Aufzählungen sind Sammelbecken, und genau das stimmt ja auch: Sie wollten die Dateien in einem Ordner sehen, und deshalb haben Sie eine Aufzählung zurückbekommen. 6. Allein mit Count könnten Sie schon eine Menge anfangen und zum Beispiel herausfinden, wie viel Dateien in einem Ordner liegen. So lassen sich auch leere Ordner identifizieren: ’ VBS Windows Script Host File ’ automatisch generiert von Scripting Spy V1.0 set FileSystemObject = CreateObject("Scripting.FileSystemObject") set Folder = FileSystemObject.GetFolder("C:\") set obj = Folder.Files MsgBox "Im Ordner befinden sich " & obj.count & " Dateien." ’ ' ' '
"files" ist vom Typ "Property " Zurückgelieferter Wert ist vom Typ: Beschreibung von "files" Get files collection
"IFileCollection"
7. Allerdings kommen Sie noch nicht an die Dateinamen heran. Dabei hilft Ihnen auch Item nicht weiter, denn Item verlangt als Argument genau den verflixten Dateinamen, den Sie ja gern herausbekommen wollen. Was nun hilft – was bei allen Aufzählungen hilft – ist der Befehl for each...next. Er listet der Reihe nach alle Elemente einer Aufzählung auf. Um also an Ihre Dateiliste heranzukommen, brauchen Sie nur zu schreiben: ’ VBS Windows Script Host File ’ automatisch generiert von Scripting Spy V1.0 set FileSystemObject = CreateObject("Scripting.FileSystemObject") set Folder = FileSystemObject.GetFolder("C:\") set obj = Folder.Files MsgBox "Im Ordner befinden sich " & obj.count & " Dateien." liste = "" For each datei in obj liste = liste & datei & vbCr Next
2.8
Fremde Programme per Script fernsteuern
63
MsgBox liste ’ ' ' '
"files" ist vom Typ "Property " Zurückgelieferter Wert ist vom Typ: Beschreibung von "files" Get files collection
"IFileCollection"
Wie flexibel Scripts sind, können Sie sofort selbst ausprobieren! Sie haben eben das Grundgerüst gebastelt, um jedwede Aufzählung sichtbar zu machen. Anstelle von Dateilisten könnten Sie sich nun auch die Unterordner oder Laufwerke Ihres Systems auflisten lassen. Ersetzen Sie einfach Set obj = Folder.Files durch Set obj = Folder.Subfolders, und schon sehen Sie alle Unterordner. Schlagen Sie anschließend Subfolders im Scripting Spy nach. Und wenn Sie die Laufwerke sehen wollen, die es auf Ihrem Computer gibt, dann ersetzen Sie die Zeile durch Set obj = FileSystemObject.Drives. Viele weitere Hintergründe und Beispielscripte zum Dateisystem und dem Scripting.FileSystemObject finden Sie im Vorgängerband: Franzis: Professional Series Scripting Praxis Buch. Tip: Aufpassen mit Count – Bug-Gefahr! Wer noch den alten WSH 1.0 verwendet, darf die Count-Eigenschaft nicht verwenden! Die liefert bei der alten WSH-Version nämlich einen Fehler und gibt nicht die Anzahl der Dateien an.
2.8
Fremde Programme per Script fernsteuern
Viele kommerzielle Programme, die Sie nachträglich installiert haben, sind ebenfalls voll scriptsteuerbar. Microsoft Word zum Beispiel bietet all seine vielfältigen Funktionen auch separat an, so daß Sie Word als universellen Server verwenden können, um zum Beispiel die Rechtschreibprüfung für eigene Projekte »auszuborgen«. Der Scripting Spy listet alle potentiell scriptfähig Programme in seinem Register Programme für Sie auf. Schauen Sie doch mal rein! Wie so etwas funktioniert und wie Sie den Scripting Spy elegant dazu einsetzen, die versteckten Funktionen installierter Programme zu nutzen, zeigt das nächste Beispiel. Es greift auf die Rechtschreibkataloge von Winword zu. Dieses Beispiel funktioniert allerdings nur, wenn Sie auch tatsächlich Winword auf Ihrem System installiert haben. Tip: TypeLibraries – lebenswichtig! Wenn Sie Programme aussuchen, dann kann es passieren, daß der Scripting Host die passende TypeLibrary zuerst suchen muß. Das liegt daran, daß die Programmhersteller ihre TypeLibraries gern verstecken und nicht in der Registry eintragen. In den meisten Fällen findet der Scripting Spy die TypeLibrary aber. Nur wenn das Programm keine TypeLibrary auf Ihrem System installiert hat, gehen Sie leer aus.
64 2.8.1
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
Winwords Rechtschreibprüfung für eigene Zwecke nutzen
Sie verwenden Microsoft Word? Dann wissen Sie, daß dieses Textverarbeitungsprogramm eine eingebaute Rechtschreibprüfung besitzt. Nur: wie kommt man an die per Script heran? Der Scripting Spy hilft Ihnen! 1. Starten Sie den Scripting Spy, und klicken Sie dann auf das Register Programme. Jetzt sehen Sie die ProgIDs aller Programme, die per Script steuerbar sind. 2. Schauen Sie nach, ob in der Liste Word.Application zu sehen ist. Falls ja, ist Winword bei Ihnen installiert. Klicken Sie auf den Eintrag Word.Application. 3. Sofort schaltet der Scripting Spy in sein Röntgen-Register um und analysiert die Funktionen, die dieses Programm zu bieten hat. Weil Winword sehr viele Funktionen enthält, kann diese Analyse einige Minuten dauern. Tip: Word – und keine TypeLibrary? Dieser Schritt klappt nur, wenn auf Ihrem System auch die Word-TypeLibrary gefunden werden konnte. Fehlt sie, dann kommt auch der Scripting Spy nicht ans Innenleben von Word heran – leider. Die Beispielscripte funktionieren allerdings trotzdem.
4. Da Sie vermutlich keine Lust haben, sich durch die vielen Module durchzutasten, klicken Sie als nächstes auf das Suchen-Register. Wählen Sie dort die Optionen Aktuelles Objekt, Befehle und enthaltend. Dann geben Sie als Suchwort den englischen Begriff für Rechtschreibung ein: Spelling [Enter]. 5. Es werden zahlreiche Befehle rund um die Rechtschreibung für Sie herausgesucht. Darunter ist auch GetSpellingSuggestion. Dieser Befehl wird sowohl vom _Application-Objekt als auch vom _Global-Objekt angeboten. Wählen Sie den Befehl, den das _Application-Objekt anbietet. Tip: _Global – das steckt dahinter _Global-Objekte sind Objekte, die die Anwendung global zur Verfügung stellt. Für Scripts sind solche Objekte nicht zu gebrauchen. Versuchen Sie wann immer möglich, dieselbe Funktion aus einem anderen Objekt einzusetzen.
6. Der Scripting Spy schaltet zurück in sein Röntgen-Register und stellt die Funktion GetSpellingSuggestion dar. Klicken Sie unten rechts auf die Schaltfläche Beispiel, um ein Beispielscript zu bekommen. 7. Speichern Sie das Script mit Speichern, und legen Sie es zum Beispiel auf Ihrem Desktop als word ab. Danach minimieren Sie den Bildschirm und klicken Ihr neues Script mit der rechten Maustaste an. Wählen Sie im Kontextmenü Bearbeiten, denn Ihr Script braucht noch etwas Finetuning. 8. Der Editor öffnet sich. Verwenden Sie das automatisch generierte Script nun als Grundlage, und wandeln Sie es folgendermaßen um:
2.8
Fremde Programme per Script fernsteuern
65
’ 2-1.VBS set Application = CreateObject("Word.Application") ' ein Blankodokument hinzufügen Application.documents.Add ' nach dem Wort fragen, das korrigiert werden soll suchwort = InputBox("Geben Sie ein Wort ein!") ' Korrekturvorschläge holen set obj = Application.GetSpellingSuggestions(suchwort) ' Ergebnisse auflisten if obj.count=0 then ' keine Vorschläge! MsgBox "Ihr Wort scheint richtig geschrieben zu sein! Ich habe keine Vorschläge." else ' es gibt Vorschläge liste = "Sie haben eingegeben: " & suchwort & vbCr liste = liste & "Verbesserungsvorschläge:" & vbCr for each korrektur in obj liste = liste & korrektur & vbCr next MsgBox liste end if ' ganz wichtig: Winword nach Gebrauch wieder schließen! Application.Quit
9. Speichern Sie die Änderungen mit Datei -> Speichern. Dann schließen Sie den Editor. Sie sind fertig! Wenn Sie Ihr Script starten, fragt es nach einem beliebigen Wort. Anschließend prüft es das Wort und liefert Korrekturvorschläge. Geben Sie zum Beispiel Banhof ein, dann meldet das Script korrekt den Vorschlag: Bahnhof.
Bild 2.15: Vollautomatisch die Rechtschreibprüfung von Winword ausborgen
66
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
2.8.2
Wichtige Dinge, an die Sie denken sollten
Zugegeben: Das Script erfordert noch eine ganze Reihe von Änderungen, damit es wie gewünscht läuft. Allerdings sind diese Änderungen stets gleicher Natur, so daß Sie lediglich ein paar Hintergründe zu kennen brauchen:
Bevor Sie die Funktionen eines fremden Programms nutzen können, muß es in vielen Fällen zuerst ein Dokument laden. Ohne Dokument geht das Programm davon aus, daß Sie seine Funktionen einfach nur kidnappen. Das stimmt ja eigentlich auch, und deshalb ist es wichtig, das Programm mit einem Dummy-Dokument in dem Glauben zu lassen, seine Funktionen würden intern verwendet. Bei Word legen Sie ein neues Dokument mit Application.Documents.Add an.
Häufig werden Ergebnisse als sogenannte Collection zurückgeliefert. Collections sind Sammlungen von einzelnen Objekten oder Informationen. Das Beispielscript prüft zum Beispiel mit Count, ob die zurückgelieferte Collection überhaupt Elemente enthält. Wenn nicht, kann es davon ausgehen, daß keine Korrekturvorschläge existieren. Andernfalls setzt es for each...next ein, um die einzelnen Elemente der Collection auszulesen.
Machen Sie sich immer bewußt, daß Ihr Script ein vollwertiges Programm gestartet hat. Das Programm ist zwar unsichtbar, existiert aber. Deshalb ist es unbedingt nötig, daß Ihr Script dieses Programm nach Gebrauch auch wieder schließt. Andernfalls würde das Programm weiter im Speicher bleiben und so lange Ressourcen fressen, bis der Computer neu gestartet wird. Deshalb beendet das Script Winword zum Schluß mit Quit. Tip: Mit GetObject direkt auf Dokumente zugreifen In Kapitel 3.4.4 lernen Sie den GetObject-Befehl kennen. Mit dessen Hilfe verschaffen Sie sich direkten Zugriff auf ein bestimmtes Dokument und könnten so zum Beispiel auf direktem Wege ein WordDokument öffnen. Das ist sinnvoll, wenn Sie die Word-Funktionen nicht losgelöst von einem Dokument verwenden, sondern auf ein bestimmtes Dokument anwenden möchten.
2.8.3
Noch mehr Automation: Automatisch Texte korrigieren
Eben haben Sie die Rechtschreibprüfung kennengelernt und konnten einzelne Wörter einfüttern. Als Test ist das ausreichend, aber in der Praxis viel interessanter sind Scripts, die zum Beispiel Textdateien vollautomatisch korrigieren. Das nächste Script liest ein beliebiges Textdokument ein und korrigiert seinen gesamten Inhalt. Fehler, die einmal korrigiert wurden, werden vom Script automatisch erneut korrigiert, sollten sie noch einmal auftreten. Das Script zeigt das Grundprinzip, ist aber noch nicht besonders komfortabel. Es liest die Beispieldatei C:\BEISPIEL.TXT ein und prüft dann Wort für Wort den Text darin. Bei falschgeschriebenen Wörtern zeigt das Script die Auswahl an Korrekturvorschlägen an, die vom Anwender allerdings noch von Hand eingegeben werden müssen.
2.8
Fremde Programme per Script fernsteuern
67
Immerhin brauchen Fehler nur ein einziges Mal korrigiert zu werden. Das Script merkt sich Korrekturen in einem Scripting.Dictionary-Objekt und korrigiert mehrfach auftretende Fehler anschließend automatisch. Die korrigierte Version des Textes speichert das Script in der Datei C:\BEISPIEL2.TXT. Bevor Sie dieses Script ausprobieren, legen Sie mit dem Texteditor Notepad eine Datei mit falschgeschriebenen Wörtern an und speichern sie als C:\BEISPIEL1.TXT. ’ 2-2.VBS set fs = CreateObject("Scripting.FileSystemObject") set dict = CreateObject("Scripting.Dictionary") set Application = CreateObject("Word.Application") Application.documents.Add ’ file = Originaldatei mit Fehlern ’ file2 = korrigierter Text set file = fs.OpenTextFile("c:\beispiel.txt") set file2 = fs.CreateTextFile("C:\beispiel2.txt", true) do until file.atEndOfStream wort = GetWord(file, bindung) ’ wurde das Wort schon korrigiert? if dict.exists(wort) then ’ ja, also vorhandene Korrektur verwenden wort = dict(wort) else ' nein, also Vorschläge holen sugg = GetSuggestions(wort) ' gibt es Vorschläge? if not sugg = "" then ' ja, also Benutzer fragen, welcher Vorschlag ' verwendet werden soll newwort = InputBox("Sie haben eingegeben: " & _ vbCr & wort & vbCr & "Vorschläge:" _ & vbCr & sugg,,wort) dict.Add wort, newwort wort = newwort end if end if ' korrigiertes Wort in neue Datei schreiben file2.Write wort & bindung loop file.close file2.close ' ganz wichtig: Winword nach Gebrauch wieder schließen! Application.Quit
68
Kapitel 2: Mit dem Scripting Spy geheime Systemobjekte ausspionieren
function GetWord(obj, zeichen) ’ liest aus der Textdatei genau ein Wort ' liefert das Wort zurück und meldet in zeichen das ' Zeichen, das dem Wort folgt do until obj.atEndOfStream zeichen = obj.Read(1) if (zeichen=" " or zeichen=vbCr or zeichen=vbLf) then exit do else GetWord = GetWord & zeichen end if loop end function function GetSuggestions(wort) ' liefert alle Korrekturvorschläge für ein Wort zurück set obj = Application.GetSpellingSuggestions(wort) if obj.count=0 then exit function else for each korrektur in obj GetSuggestions = GetSuggestions & korrektur & vbCr next end if end function
Bild 2.16: Automatische und lernfähige Rechtschreibkontrolle
69
3
Die eingebauten WSH-Befehle: Wscript-Objekt
Der Windows Scripting Host bringt – völlig unabhängig von der Scriptsprache, die Sie einsetzen – eine ganze Reihe von nützlichen Befehlen mit. Diese Befehle können über die Objekte Wscript oder Wsh angesprochen werden. Weil beide Objekte nur zur Verfügung stehen, wenn Ihr Script über den Scripting Host ausgeführt wird, können die Funktionen in diesem Kapitel nicht innerhalb von HTML-Scripts eingesetzt werden.
3.1
Informationen über den Scripting Host
Arbeiten Sie mit der aktuellsten WSH-Version? Wo genau ist WSCRIPT.EXE gespeichert? Wird Ihr Script gerade mit der Windows-Version oder der DOS-Version des WSH ausgeführt? All diese Fragen beantwortet das Wscript-Objekt: Befehl
Beschreibung
Application BuildVersion FullName Name Path Version
Referenz auf den WSH; entspricht den vordefinierten Objekten Wscript und Wsh Interne Versionsnummer Pfadname des Scripting Host Executables Klartextname (Beschreibung) des WSH Pfad zum Ordner, in dem der WSH gespeichert ist Versionsnummer des WSH
Tab. 3.1: Die internen Befehle des Scripting Host
3.1.1
Das Application-Objekt
Application liefert eine Instanz des WSH-Objekts selbst zurück. Dieser Befehl ist deshalb eigentlich völlig sinnlos, denn der WSH blendet sich selbst sowieso über die Standardobjekte Wscript und Wsh ein. Daß alle drei Objekte in Wirklichkeit ein und dasselbe Objekt sind, beweist das folgende Script: ’ 3-1.vbs set obj = wscript.application MsgBox TypeName(obj) MsgBox obj is wsh MsgBox obj is Wscript
70 3.1.2
Kapitel 3: Die eingebauten WSH-Befehle: Wscript-Objekt
Die Version des WSH ermitteln
Der Scripting Host wird ständig weiterentwickelt, und oben hatten Sie bereits gesehen, wie Sie mit dem Scripting Spy neu hinzugekommene Funktionen entdecken. Falls Sie in Ihren Scripts solche neuen Funktionen einsetzen und sichergehen wollen, daß es auf Computern mit älterem WSH keine Probleme gibt, dann bestimmen Sie einfach die Version: ’ 3-2.VBS bv = "Build-Version: " & WScript.BuildVersion v = "Version: " & WScript.Version MsgBox v & vbCr & bv
Wundern Sie sich nicht, daß der WSH 2.0 als Versionsnummer 5.1 zurückliefert. Die interne Version hat nichts mit der offiziellen Release-Version zu tun.
3.1.3
Pfadnamen und geheime Antworten
Die Eigenschaften Name, FullName und Path sind auf den ersten Blick wenig hilfreich, verraten sie doch nur, wo der WSH wohnt: ’ 3-3.vbs n = "Name: " & wscript.name fn = "FullName: " & wscript.fullname p = "Path: " & wscript.path msg = n & vbCr & fn & vbCr & p MsgBox msg, vbInformation
Auf den zweiten Blick wird die Sache allerdings immens wichtig. Wie Sie inzwischen wissen, gibt es zwei Versionen des WSH: WSCRIPT.EXE und CSCRIPT.EXE. WSCRIPT.EXE führt Ihr Script als Windows-Programm aus, während CSCRIPT.EXE dazu ein DOS-Fenster öffnet.
Bild 3.1: Herausfinden, wo der Kern des Scripting Host eigentlich gespeichert ist
Vor allem wenn Sie planen, ein DOS-Fenster für die Ein- und Ausgabe zu nutzen, brauchen Sie einen Weg, um festzustellen, ob das Script mit WSCRIPT.EXE oder CSCRIPT.EXE ausgeführt wird. Diese Information liefert FullName: ’ 3-4.VBS fn = wscript.fullname engine = mid(fn, InstrRev(fn, "\")+1) MsgBox "Dieses Script wird ausgeführt von: " & engine
3.1
Informationen über den Scripting Host
71
Starten Sie dieses Script normal, dann meldet es Wscript.exe als Ausführungsorgan. Klicken Sie dagegen das Script mit der rechten Maustaste an und wählen Mit Eingabeaufforderung öffnen, dann meldet es korrekt Cscript.exe.
Bild 3.2: Herausfinden, ob Scripts in der DOS-Box laufen
Falls Sie also ein Script unbedingt in einem DOS-Fenster ausführen wollen, aber nicht darauf vertrauen können, daß der Anwender von selbst den richtigen Startbefehl gibt, dann wäre dies eine Lösung: ’ 3-5.VBS ' läuft das Script mit CSCRIPT.EXE? if not isDOS then ' NEIN, also an CSCRIPT.EXE verfüttern und diese Instanz ' beenden: set wshshell = CreateObject("WScript.Shell") wshshell.Run "CSCRIPT.EXE """ & wscript.ScriptFullName & """" wscript.quit end if ' dieser Teil wird IMMER von CSCRIPT ausgeführt ' hier können also gefahrlos Streams verwendet werden set instream = WScript.StdIn set outstream = WScript.StdOut outstream.WriteLine "Huhu, geben Sie etwas ein!" outstream.WriteLine "quit beendet den Test." outstream.Write time & "> " do lies = instream.ReadLine ' abbrechen, wenn der Benutzer "quit" eingibt if lcase(lies)="quit" then exit do ' dieses Script verwandelt die Eingabe nur in Großbuchstaben ' hier könnten auch sinnvollere Dinge passieren outstream.WriteLine ucase(lies) outstream.Write time & "> " loop MsgBox "Tschau!" function isDOS fn = wscript.fullname engine = lcase(mid(fn, InstrRev(fn, "\")+1)) if engine = "wscript.exe" then
72
Kapitel 3: Die eingebauten WSH-Befehle: Wscript-Objekt
isDOS = false else isDOS = true end if end function
Bild 3.3: Automatisch ein Script im DOS-Fenster mit interaktiven Eingaben erstellen
3.2
Informationen über das Script bekommen
Der WSH liefert auf Wunsch detaillierte Informationen über das Script, das gerade ausgeführt wird: Befehl
Beschreibung
ScriptFullName ScriptName
Pfadname des Scripts Name des Scripts
Tab. 3.2: Informationen über den Speicherort eines Scripts
3.2.1
Begleitinformation aus dem Scriptordner öffnen
ScriptFullName und ScriptName liefern zunächst nur Namen bzw. Pfadnamen des gerade ausgeführten Scripts. Dies allein ist nicht sehr spannend: ’ 3-6.VBS sn = "ScriptName: " & wscript.ScriptName sfn = "ScriptFullName: " & wscript.ScriptFullName MsgBox sn & vbCr & sfn
3.2
Informationen über das Script bekommen
73
In diesen Informationen stecken jedoch Juwelen: ScriptFullName enthält den Ordner, in dem das aktuelle Script gespeichert ist. Wenn Sie also Begleitinformationen in diesem Ordner speichern möchten, dann filtern Sie einfach den Ordnernamen aus dem Pfadnamen des Scripts heraus.
Bild 3.4: Herausfinden, wo ein Script gelagert wird
3.2.2
Logbuch-Datei: Wann und wie oft wird ein Script benutzt?
Das nächste Beispiel unterhält in demselben Ordner, in dem es gespeichert wird, eine Logbuchdatei, die darüber Buch führt, wie oft und wann das Script aufgerufen wird. Klar ist, daß dies nicht funktioniert, solange das Script auf einer schreibgeschützten CD untergebracht ist. ’ 3-7.VBS ’ Script notieren LogMe ' hier könnten weitere Aufgaben erledigt werden sub LogMe ' in welchem Pfad liegt dieses Script? sfn = wscript.ScriptFullName pfad = left(sfn, InstrRev(sfn, "\")) ' Logbuchdatei anlegen logfilename = pfad & "logbuch.txt" set fs = CreateObject("Scripting.FileSystemObject") set file = fs.OpenTextFile(logfilename, 8, true) ' Logbuch-Eintrag hineinschreiben: file.WriteLine "Script " & wscript.scriptname _ & " gestartet: " & now file.close end sub
Bild 3.5: Protokollieren, wann Scripts ausgeführt wurden
74
Kapitel 3: Die eingebauten WSH-Befehle: Wscript-Objekt
3.3
Drag&Drop: Argumente ans Script übergeben
Ihr Script kann externe Informationen per Drag&Drop oder per Kommandozeilen-Argument einlesen. Darüber hinaus kann der WSH 2.0 auch ein DOS-Fenster für Ein- und Ausgaben verwenden: Befehl
Beschreibung
StdErr StdIn StdOut Arguments Echo
DOS-Stream für Fehlermeldungen DOS-Stream für Texteingaben DOS-Stream für Textausgaben Ans Script übergebene Argumente Informationen in DOS-Fenster oder Dialogfenster ausgeben
Tab. 3.3: Befehle, mit denen externe Argumente gelesen und Antworten ausgegeben werden
3.3.1
Argumente an Scripts verfüttern
Ihre Scripts sind kommunikativ! Sie können zum Beispiel Dateien auf einem Script-Icon fallen lassen und dann die Dateinamen auslesen. Anschließend könnte Ihr Script mit den Dateien tun, was es gerade mag. Neben dem schicken Drag&Drop sind aber auch die klassischen Befehlszeilen-Optionen möglich. Die sind besonders für Scripts wichtig, die in einem DOS-Fenster ausgeführt werden. Sie funktionieren wie die Befehlszeilenargumente bei normalen DOS-Befehlen. Praktisch dabei: Beide Varianten funktionieren intern genau gleich. Ihr Script akzeptiert also Argumente sowohl über die Kommandozeile als auch per Drag&Drop. Wichtige Fallen: Drag&Drop ist erst ab dem WSH 2.0 möglich, und die Gesamtlänge der Argumente darf die maximale Pfadnamen-Länge von 260 Zeichen nicht überschreiten. Hier eine Kostprobe: ’ 3-8.VBS ’ Argumente auslesen set args = wscript.Arguments ' wieviel Argumente wurden übergeben? if args.Count=0 then ' gar keine! MsgBox "Keine Argumente übergeben!" else liste = "" for each argument in args cc=cc+1 liste = liste & cc & ". Argument: " & argument & vbCrLf next WScript.Echo liste end if
3.3
Drag&Drop: Argumente ans Script übergeben
75
Sie können nun entweder Dateien auf Ihr Script-Icon ziehen. Jeder Dateiname wird als eigenständiges Argument gelesen.
Bild 3.6: Argumente per Drag&Drop oder als Kommandozeilenargument übergeben
Oder Sie nutzen Kommandozeilen-Argumente: 1. Wählen Sie im Startmenü Ausführen, und geben Sie ein: WSCRIPT.EXE. Fügen Sie ein Leerzeichen hinzu, und ziehen Sie dann Ihr Script in die Befehlszeile. Windows schreibt den Pfadnamen dahinter. 2. Fügen Sie noch ein Leerzeichen und dann Ihre Argumente an. Dann drücken Sie [Enter]. Korrekt gibt das Script die Argumente wieder aus. Die einzelnen Argumente werden dabei durch die Leerzeichen voneinander getrennt. Wollen Sie Leerzeichen im Argument, dann setzen Sie das Argument in Anführungszeichen.
3.3.2
Scripts als DOS-Befehle einsetzen
Natürlich ist die Befehlszeilen-Variante reichlich unbequem: wer hat schon Lust, umständlich Wscript.exe voranzustellen und dann auch noch den ganzen langen Pfadnamen des Scripts einzugeben? Als echte Ergänzung zu DOS-Befehlen eignen sich Scripts nur auf Windows 2000-Systemen, dort dafür aber hervorragend. Windows 2000 ist nämlich schlau genug, WSH-Scripts auch ohne vorangestelltes WSCRIPT.EXE auszuführen. Selbst die Endung .vbs kann weggelassen werden. Und wenn Sie Ihre Scripts in einem Systemordner speichern, der Teil des allgemeinen Pfades ist, dann brauchen Sie noch nicht einmal den Pfadnamen anzugeben – ideal. Das Beispielscript von oben würde also bei Windows 2000 wie im folgenden Bild verwendet werden können. Tip: Ausgaben ins DOS-Fenster schreiben Damit sich Ihr Script tatsächlich wie ein echter DOS-Befehl benimmt, müssen Sie nur die Scriptengine auf CSCRIPT umstellen. Wählen Sie im Startmenü Ausführen, und geben Sie ein: WSCRIPT //H:CSCRIPT [Enter]. Mit WSCRIPT //H:WSCRIPT [Enter] schalten Sie zurück in den Windows-Modus. WScript.Echo sorgt dafür, daß die Ausgabe im CSCRIPT-Modus ins DOS-Fenster geschrieben wird.
76
Kapitel 3: Die eingebauten WSH-Befehle: Wscript-Objekt
Bild 3.7: Windows 2000 akzeptiert Scriptnamen als »DOS-Befehle«
3.3.3
Mit den DOS-Streams Ein- und Ausgaben ins DOS-Fenster machen
Scripts lassen sich nicht nur bequem von DOS aus mit Argumenten füttern (jedenfalls bei Windows 2000), sie können sich auch sonst wie DOS-Befehle benehmen. Ihre Scripts könnten also eigene Ergebnisse ins DOS-Fenster schreiben und von dort Eingaben empfangen. Sogar das Piping wird unterstützt: Scripts können Eingaben nahtlos von anderen Scripts oder echten DOS-Befehlen empfangen. Über StdErr, StdIn und StdOut klinken sich Ihre Scripts in die DOS-Streams ein: Stream
Bedeutung
StdErr StdIn
Fehlermeldungen des DOS-Fensters an das Script Eingaben an Ihr Script, die entweder interaktiv vom Anwender angegeben werden oder per Piping von einem anderen Script übergeben werden Ausgaben, die das Script ins DOS-Fenster schreibt
StdOut
Tab. 3.4: Die Kommunikationskanäle zum DOS-Fenster
Voraussetzung dafür ist, daß es überhaupt ein DOS-Fenster gibt. Führen Sie ein Script mit Wscript.exe aus, dann kassieren Sie einen Fehler, sobald Sie versuchen, einen der DOS-Streams anzusprechen. Deshalb müssen Sie entweder darauf vertrauen, daß der Scriptanwender das Script aus einem DOS-Fenster aus aufruft, oder Sie wenden den Trick von Script 3-5.VBS, der sicherstellt, daß CSCRIPT.EXE zum Zuge kommt. Das folgende Script ist das Grundgerüst für einen Pseudo-DOS-Befehl. Das Script akzeptiert zwei Kommandozeilen-Optionen: /test: und /?. ’ 3-9.VBS ' sicherstellen, daß Script im DOS-Fenster läuft DOSonly
3.3
Drag&Drop: Argumente ans Script übergeben
77
' ab hier läuft das Script IMMER im DOS-Fenster, ' deshalb können jetzt die DOS-Streams gefahrlos eingesetzt ' werden: set instream = WScript.StdIn set outstream = WScript.StdOut ' Argumente auslesen set args = wscript.Arguments if args.count = 0 then outstream.WriteLine "Es wurden keine Argumente angegeben!" WScript.Quit end if ' Argumente auswerten for each arg in args if arg="/?" then outstream.WriteLine "Dies ist ein Testprogramm" outstream.WriteLine "/test:text gibt Text in " _ & "Großbuchstaben aus" outstream.WriteLine "/? zeigt diese Hilfe" WScript.Quit elseif left(lcase(arg),6)="/test:" then outstream.WriteLine ucase(mid(arg,7)) else outstream.WriteLine "Unbekanntes Argument: " & arg end if next sub DOSonly fn = wscript.fullname engine = lcase(mid(fn, InstrRev(fn, "\")+1)) if engine = "wscript.exe" then set wshshell = CreateObject("WScript.Shell") ' Argumente mit übergeben arglist = "" for each arg in wscript.Arguments arglist = arglist & """" & arg & """ " next wshshell.Run "%COMSPEC% /K CSCRIPT.EXE """ _ & wscript.ScriptFullName & """ " & arglist wscript.quit end if end sub
Wenn Sie dieses Script aufrufen, schaltet es automatisch in ein DOS-Fenster. Erreicht wird dies, weil sich das Script im Bedarfsfall selbst aufruft, dabei CSCRIPT.EXE verwendet und CSCRIPT.EXE in einem eigens geöffneten DOS-Fenster anzeigt. Dazu lädt es mit %COMSPEC% zuerst den DOS-Kommandozeilen-Interpreter und sorgt mit der Option /K dafür, daß das Fenster offen bleibt, nachdem das Script seine Arbeit getan hat.
78
Kapitel 3: Die eingebauten WSH-Befehle: Wscript-Objekt
Machen Sie den Test: 1. Starten Sie das Script. Ein DOS-Fenster öffnet sich, und das Script meldet darin, daß keine Argumente übergeben wurden. Das stimmt. 2. Rufen Sie das Script aus dem DOS-Fenster erneut auf, und verwenden Sie dabei das Argument /?. Diesmal zeigt das Script Hilfe-Informationen an. 3. Verwenden Sie dann das Argument /test:text. Diesmal gibt das Script den Text hinter dem Schalter /test: in Großbuchstaben aus. Enthält der Text Leerzeichen, dann muß er in Anführungszeichen gesetzt werden. Allerdings bleibt ein Manko: Jedesmal, wenn Sie das Script von neuem aufrufen, wird auch ein neues DOS-Fenster geöffnet. Das ist verständlich, denn als Vorgabe verfüttert der WSH jedes Script zuerst an Wscript.exe, ganz gleich, ob Sie das Script per Maus oder vom DOS-Fenster aus öffnen. Wollen Sie hauptsächlich mit der Kommandozeile arbeiten, dann gibt es einen wesentlich einfacheren Weg: Weisen Sie den WSH an, künftig alle Scripts von vornherein direkt mit CSCRIPT.EXE zu starten: Befehl
Bedeutung
Wscript.exe //H:Cscript Wscript.exe //H:Wscript
Alle Scripts werden mit CSCRIPT.EXE geladen Alle Scripts werden mit WSCRIPT.EXE geladen (Voreinstellung)
Tab. 3.5: Umschaltung zwischen DOS- und Windows-Scripting Host
3.3.4
Piping – Ergebnisse von anderen Befehlen verfeinern
Wie Sie mit StdIn Eingaben vom Scriptbenutzer erfragen, hat bereits Script 3-5.VBS gezeigt. Ebenfalls interessant ist Piping. Piping ist das Verketten mehrerer Befehle und bei DOS schon lange üblich. Wenn Sie zum Beispiel mit dem DOS-Befehl DIR ein langes Ordnerlisting ausgeben und verhindern wollen, daß das Listing nur so an Ihnen vorbeirauscht, dann könnten Sie das Ergebnis an den DOS-Befehl MORE weiterleiten. MORE hält dann die Ausgabeflut jeweils bildschirmweise an und wartet auf einen Tastendruck. Probieren Sie’s einfach aus: 1. Öffnen Sie zunächst ein DOS-Fenster: Wählen Sie im Startmenü Ausführen, und geben Sie ein: %COMSPEC% [Enter]. 2. Geben Sie dann ins Fenster ein: DIR C:\ [Enter]. Das DOS-Listing saust vorbei. 3. Nun setzen Sie Piping ein. Geben Sie dazu ein: DIR C:\ | MORE [Enter]. Diesmal wird das Listing nach jeder Seite angehalten.
3.3
Drag&Drop: Argumente ans Script übergeben
79
Tip: DIRCMD – vorgefertigte DIR-Optionen Wenn DIR bei Ihnen nicht die normale vorbeisausende Ausgabe erzeugt, dann sind wahrscheinlich erweiterte Optionen angegeben worden. Die werden in der Umgebungsvariablen DIRCMD gespeichert. Mit SET DIRCMD= [Enter] löschen Sie solche Optionen.
Das Piping-Zeichen ist also das |-Zeichen, das Sie über [AltGr]+[0 then for each folderitem in folderitems besitzer = (folderitem.ExtendedProperty(fmtid & ",4"))
154
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
list = list & folderitem.name & _ ": Besitzer ist " & besitzer & vbCr next end if MsgBox list, vbInformation
6.3.2
GetFolder
Property GetFolder As Object
Handelt es sich bei dem FolderItem selbst um einen Ordner, also einen Unterordner im aktuellen Ordner, dann liefert GetFolder das betreffende Folder-Objekt. Bevor Sie GetFolder einsetzen, sollten Sie als erstes mit isFolder prüfen, ob das FolderItem-Objekt tatsächlich ein Ordner ist. Mit GetFolder lassen sich verschachtelte Ordner rekursiv durchsuchen. Rekursiv bedeutet: Stößt Ihr Script in einem Ordner auf einen Unterordner, so ruft es sich für diesen Unterordner erneut auf und kann so alle Dateien finden, auch die, die in tief verschachtelten Ordnern liegen. Das folgende Script durchsucht beispielsweise rekursiv den Stammordner C:\ und legt eine Liste aller gefundenen Textdateien an: ’ 6-17.vbs set shell = CreateObject("Shell.Application") set folder = shell.NameSpace("C:\") ’ Ausgabedatei anlegen set fs = CreateObject("Scripting.FileSystemObject") dateiname = "C:\logbuch.txt" set liste = fs.CreateTextFile(dateiname, true) ’ Ordner C:\ rekursiv nach TXT-Dateien durchsuchen OrdnerDurchsuchen folder ' Ausgabedatei schließen und öffnen liste.close set wshshell = CreateObject("WScript.Shell") wshshell.Run dateiname sub OrdnerDurchsuchen(folderobject) ' Inhalt des Ordners ansehen set folderitems = folderobject.items for each folderitem in folderitems ' ist der Eintrag selbst ein Ordner? if folderitem.isFolder then ' ja, dann diesen Ordner auch durchsuchen OrdnerDurchsuchen folderitem.GetFolder ' ist Datei eine Textdatei? elseif lcase(right(folderitem.path,3))="txt" then ' ja, dann in Liste einfügen AddToList folderitem.path
6.3
Der innere Aufbau des FolderItem-Objekts
155
end if next end sub sub AddToList(text) liste.WriteLine text end sub
Diese umfangreiche Suchaktion kann allerdings mehrere Minuten dauern. Während dieser Zeit sieht und hört der Anwender nichts vom Script und könnte dem frevelhaften Gedanken verfallen, das Script hätte sich aufgehängt. Bei solch langwierigen Operationen ist es deshalb sinnvoll, eine Fortschrittsanzeige einzublenden. Wie dies gelingt, ist in Kapitel 8.16.1 beschrieben. Schauen Sie sich auch das Scripting.FileSystemObject aus Kapitel 4 an: es ist ebenfalls in der Lage, das Dateisystem rekursiv zu durchsuchen. Im Gegensatz zu Shell.Application ist es auf jedem Computer mit WSH vorhanden. Shell.Application fehlt auf Windows 95 und -NT, wenn dort nicht der Internet Explorer 4 nachgerüstet wurde.
6.3.3
GetLink
Property GetLink As Object
GetLink liefert ein ShellLinkObject zurück, das eine Verknüpfung repräsentiert. Handelt es sich beim FolderItem um eine Verknüpfung, dann können Sie auf diese Weise in die Verknüpfung »hineinsehen« und zum Beispiel herausfinden, wo das Ziel der Verknüpfung liegt und ob Tastenshortcuts eingerichtet wurden. Neue Verknüpfungen lassen sich allerdings auf diese Weise nicht anlegen (mit einem kleinen Trick allerdings schon, siehe unten). Wenn Sie nicht auf die besonderen Funktionen von Shell.Application angewiesen sind, dann verwenden Sie besser das Wscript.Shell-Objekt, um Verknüpfungen zu managen (mehr dazu im Vorgängerband: Franzis’ Professional Series Scripting Host Praxisbuch). Es eignet sich besser, weil es auf jedem Computer mit WSH installiert ist und außerdem auch neue Verknüpfungen ins Leben rufen kann. Das folgende Script sucht auf dem Desktop nach der Verknüpfung willibald.lnk. Legen Sie sich solch eine Verknüpfung auf Ihren Desktop, und probieren Sie dann das Script aus: ’ 6-18.vbs set shell = CreateObject("Shell.Application") ’ Zugang zum Desktop bekommen set folder = shell.NameSpace(0) ' Zugang zur Verknüpfung bekommen ' Errorhandling ausschalten, um prüfen zu können, ' ob die Datei wirklich existiert on error resume next set folderitem = folder.ParseName("willibald.lnk") if not err.number=0 then
156
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
MsgBox "Legen Sie zuerst auf Ihrem Desktop eine " _ & "Verknüpfung namens ""willibald.lnk"" an!" WScript.Quit end if on error goto 0 ' Zugang zum ShellLinkObject bekommen set linkobject = folderitem.GetLink ' Ziel des Links ausgeben: MsgBox linkobject.Path
Welche Funktionen und Möglichkeiten das ShellLinkObject sonst noch zu bieten hat, verrät Ihnen der Scripting Spy.
6.3.4
InvokeVerb
Sub InvokeVerb([ByVal vVerb])
Dieser Befehl ist ausgesprochen mächtig, gibt er Ihnen doch volle Kontrolle über das Kontextmenü des FolderItems. Damit wird es möglich, Dateien zu öffnen und Anwendungen zu starten. InvokeVerb ruft einen beliebigen Befehl aus dem Kontextmenü des Objekts auf. Wird kein besonderer Befehl angegeben, dann ruft InvokeVerb den Standardbefehl auf. Das nächste Script öffnet zum Beispiel auf dem Desktop die Datei test.txt. Legen Sie sich diese Datei auf den Desktop, und probieren Sie dann das Script aus: ’ 6-19.vbs set shell = CreateObject("Shell.Application") ’ Zugang zum Desktop bekommen set folder = shell.NameSpace(0) ’ Zugang zur Datei bekommen ' Errorhandling ausschalten, um prüfen zu können, ' ob die Datei wirklich existiert on error resume next set folderitem = folder.ParseName("test.txt") if not err.number=0 then MsgBox "Legen Sie zuerst auf Ihrem Desktop eine " _ & "Textdatei namens ""test"" an!" WScript.Quit end if on error goto 0 folderitem.InvokeVerb MsgBox "Datei wurde geöffnet", vbSystemModal
Klicken Sie die Testdatei test.txt auf Ihrem Desktop nun mit der rechten Maustaste an: Das Kontextmenü wird sichtbar. Ihr Script hat daraus den fettgedruckten Standardbefehl aufgerufen, weil
6.3
Der innere Aufbau des FolderItem-Objekts
157
Sie keinen speziellen Befehl angegeben haben. Ebensogut könnten Sie nun jeden anderen Kontextmenü-Befehl aufrufen. Wenn Sie die Datei beispielsweise ausdrucken möchten, dann verwenden Sie den Drucken-Befehl: ’ 6-20.vbs set shell = CreateObject("Shell.Application") set folder = shell.NameSpace(0) set folderitem = folder.ParseName("test.txt") folderitem.InvokeVerb "&Drucken"
Hierbei lauert allerdings die Tücke im Detail: Damit InvokeVerb Ihren Befehl verstehen kann, müssen Sie ihn exakt so angeben, wie er im Kontextmenü erscheint. Auch der Unterstrich, mit dem Windows im Befehlsnamen einzelne Buchstaben unterlegt, gehört zum Namen. Weil auf meinem Testsystem der Buchstabe »D« des Drucken-Befehls mit einem Unterstrich markiert ist, muß vor diesem Buchstaben ein kaufmännisches &-Zeichen gesetzt werden. Klar wird, daß damit der Einsatzbereich von InvokeVerb eingeschränkt ist: Woher sollen Sie wissen, wie die Kontextmenü-Befehle auf dem Rechner eines Kunden heißen, der Ihr Script benutzen soll? Glücklicherweise gibt es einige Auswege. So können Sie sich mit Verbs eine Liste der KontextmenüBefehle ausgeben lassen, die das FolderItem-Objekt unterstützt. Leider funktioniert diese Variante erst bei Windows 2000 fehlerfrei. Bei Windows 9x und NT liefert Verbs ein falsches Objekt zurück, und es kommt zu einem Fehler: ’ 6-21.vbs ’ funktioniert nur bei Windows 2000! set shell = CreateObject("Shell.Application") set folder = shell.NameSpace(0) set folderitem = folder.ParseName("test.txt") set folderitemverbs = folderitem.Verbs for each folderitemverb in folderitemverbs list = list & folderitemverb & vbCr next MsgBox list
Eine andere Möglichkeit sind Standardnamen. Windows verwendet intern für das Öffnen den Befehl »open«, für das Drucken den Befehl »print«. Alternativ zu den »echten« KontextmenüNamen können Sie also auch einen dieser standardisierten Namen angeben. Leider funktionieren die Standardnamen erst bei Windows 2000. Tip: So funktionieren die Standardnamen in Wirklichkeit Grundsätzlich kann ein Kontextmenü-Befehl zwei Namen haben: Den ersten bekommt er über den Schlüsselnamen in der Registry, also dort, wo sein Innenleben definiert wird. Wird hier als Name ein Standard wie open oder print angegeben, dann nennt Windows den Befehl automatisch in der jeweiligen Landessprache zum Beispiel »Öffnen« oder »Drucken«. Auf Wunsch kann dem (Standard-)Eintrag des Befehls aber auch ein abweichender Name gegeben werden.
158
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
Der ersetzt dann den Standardnamen im Kontextmenü. Bisher mußte InvokeVerb mit diesem abweichenden Namen oder – falls keiner angegeben ist – mit der »Übersetzung« des Standardnamens gefüttert werden. Seit Windows 2000 kann nun auch der Standardname selbst angegeben werden – wesentlich besser.
Auch wenn Sie auf Ihrem System die Kontextmenü-Befehlsnamen nicht eindeutig bestimmen können, ist InvokeVerb ausgesprochen nützlich. Erstens können Sie es jederzeit ohne Argument verwenden (siehe oben), und zweitens sind einige Befehlsnamen weitestgehend standardisiert.
Bild 6.13: Scriptgesteuert Eigenschaften-Dialoge kontrollieren
Das nächste Script öffnet beispielsweise die Eigenschaften-Seite einer Datei, die Sie auf das ScriptIcon ziehen. Ist diese Datei eine Verknüpfung, dann wird statt dessen die Eigenschaften-Seite der Originaldatei geöffnet – also nicht die uninteressante Eigenschaften-Seite der Verknüpfung. ’ 6-22.vbs ’ Argument einlesen set args = WScript.Arguments if args.count=0 then MsgBox "Ziehen Sie eine Datei auf mich!" WScript.Quit end if ' Pfad- und Dateinamen auseinanderdröseln pfad = left(args(0),InstrRev(args(0), "\")) datei = mid(args(0),InstrRev(args(0), "\")+1) ' hin zur Datei:
6.3
Der innere Aufbau des FolderItem-Objekts
159
set shell = CreateObject("Shell.Application") set folder = shell.NameSpace(pfad) set folderitem = folder.ParseName(datei) ' ist die Datei etwa eine Verknüpfung? if folderitem.isLink then ' ja, also Eigenschaften öffnen ' und dann das Ziel finden folderitem.InvokeVerb "E&igenschaften" set linkobj = folderitem.GetLink ziel = linkobj.Path pfad = left(ziel,InstrRev(ziel, "\")) datei = mid(ziel,InstrRev(ziel, "\")+1) set folder = shell.NameSpace(pfad) set folderitem = folder.ParseName(datei) ' jetzt steht in folderitem das Ziel des Links end if ' alles klar, Eigenschaften öffnen: folderitem.InvokeVerb "E&igenschaften" ' Verzögern (5 sec) WScript.Sleep 5000 MsgBox "Eigenschaften schließen?", vbQuestion + vbSystemModal
Das Script funktioniert sowohl mit Dateien als auch mit Ordnern und öffnet tatsächlich die Eigenschaften-Seite der Datei, die Sie auf das Script gezogen haben. Ziehen Sie testweise eine Verknüpfung auf das Script! Diesmal werden sogar zwei Eigenschaften-Fenster geöffnet: das der Verknüpfung, und vollautomatisch auch das der Datei, auf die die Verknüpfung weist. Allerdings wird auch der Aufräumwahn des WSH sichtbar: Das Script läuft noch 5 Sekunden länger als nötig, um den Eigenschaften-Fenstern Zeit zu geben, sichtbar zu werden. Anschließend fragt es scheinheilig nach, ob die Eigenschaften-Fenster geschlossen werden sollen. Eine Alternative gibt es aber gar nicht: Alles, was Ihr Script während seiner Ausführung anstellt, wird automatisch geschlossen, sobald das Script endet. Das gilt auch für die Eigenschaften-Fenster, die nur so lange sichtbar bleiben, wie Ihr Script läuft. Sobald Sie also auf OK klicken, beendet das Script seine Arbeit, und auch die Eigenschaften-Fenster machen Feierabend.
6.3.5
InvokeVerbEx
Sub InvokeVerbEx([ByVal vVerb], [ByVal vArgs])
InvokeVerbEx ist der große Bruder von InvokeVerb und nur bei Windows 2000 anzutreffen. Im Gegensatz zu InvokeVerb kann InvokeVerbEx noch ein zweites Argument lesen (vArgs) und verwendet dieses für zusätzliche Argumente, die Sie dem Kontextmenü-Befehl überreichen wollen.
160 6.3.6
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
IsBrowsable
Property IsBrowsable As Boolean
Liefert Wahr zurück, wenn das FolderItem-Objekt ein Container ist, der als eigener NameSpace fungiert und Objekte enthält.
6.3.7
IsFileSystem
Property IsFileSystem As Boolean
Liefert Wahr zurück, wenn das FolderItem-Objekt Teil des lokalen Dateisystems ist, also eine Datei, ein Ordner oder ein Laufwerk.
6.3.8
IsFolder
Property IsFolder As Boolean
Liefert Wahr zurück, wenn das FolderItem-Objekt ein Ordner ist. Mit GetFolder erhalten Sie dann das Folder-Objekt dieses Ordners.
6.3.9
IsLink
Property IsLink As Boolean
Liefert Wahr zurück, wenn das FolderItem-Objekt eine Verknüpfung ist. Mit GetLink erhalten Sie dann das ShellLinkObject mit den Details der Verknüpfung.
6.3.10 ModifyDate Property ModifyDate As Date
Liefert das Datum der letzten Änderung zurück.
6.3.11 Name Property Name As String
Liefert den Namen des Objekts zurück, und zwar so, wie er augenblicklich von Windows angezeigt würde. Haben Sie den Explorer beispielsweise so eingestellt, daß er Dateiextensionen verschluckt, dann liefert Name den Dateinamen ebenfalls ohne Extension. Den echten Pfadnamen eines Dateisystem-Objekts liefert Path zurück.
6.4
Der innere Aufbau des Folder-Objekts
161
6.3.12 Parent Property Parent As Object
Verknüpfung zum übergeordneten Objekt.
6.3.13 Path Property Path As String
Der Pfadname zu diesem Objekt, so wie er vom Explorer verstanden wird. Bei virtuellen Ordnern liefert Windows 2000 automatisch die GUIDs zurück, bei Windows 9x und NT wird statt dessen ein Leerstring gemeldet.
6.3.14 Size Property Size As Long
Größe des Objekts in Byte.
6.3.15 Type Property Type As String
Typenbezeichnung des Objekts, zum Beispiel »Microsoft Word-Dokument«.
6.3.16 Verbs Function Verbs As FolderItemVerbs
Liefert eine Liste aller Kontextmenü-Befehle zurück, die dieses Objekt anzubieten hat. Ein Beispiel hierzu finden Sie bei InvokeVerb. Leider liefert Verbs bei Windows 9x und NT eben nicht wie erwartet ein FolderItemVerbs-Objekt zurück, sondern aufgrund eines Bugs ein FolderItemVerbObjekt. Deshalb ist diese Funktion erst bei Windows 2000 zu gebrauchen.
6.4
Der innere Aufbau des Folder-Objekts
Mit FolderItem-Objekten kennen Sie sich inzwischen gut aus. Alle FolderItem-Objekte sind immer Bewohner eines Folder-Objekts. Das Folder-Objekt entspricht also dem Container, der die FolderItem-Objekte beherbergt und wichtige Rahmenfunktionen bietet. Oder anders gesagt: Das FolderObjekt könnte einem Ordner entsprechen, und die Dateien im Ordner werden über FolderItemObjekte repräsentiert. So sieht das Folder-Objekt von innen aus:
162
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
Methode/Eigenschaft
Beschreibung
Application CopyHere DismissedWebViewBarricade GetDetailsOf HaveToShowWebViewBarricade Items MoveHere NewFolder OfflineStatus Parent ParentFolder ParseName
Die Applikation, die den Folder darstellt Kopiert Objekte in den Ordner (5.0) Web View Barricade wurde vom Benutzer abgeschaltet Ermittelt Details über ein FolderItem-Objekt im Ordner (5.0) Legt fest, ob die Web View Barricade angezeigt wird Liefert den Ordnerinhalt als FolderItems-Objekt zurück Verschiebt Objekte in den Ordner Legt einen Unterordner im Ordner an (5.0) Legt fest, ob der Ordner offline angezeigt wird Liefert das übergeordnete Objekt zurück Liefert übergeordneten Ordner als Folder-Objekt Liefert ein FolderItem-Objekt zurück, das dem angegebenen Namen entspricht (5.0) Referenz auf das FolderItem-Objekt, das dem Ordner entspricht (5.0) Synchronisiert alle Offline-Folder Titeltext des Ordners
Self Synchronize Title
Tab. 6.6: Das Innenleben eines Folder-Objekts
6.4.1
Application
Property Application As Object
Liefert das Objekt zurück, das dieses Folder-Objekt verwendet. Dies ist immer eine Referenz auf das Shell.Application-Objekt. ’ 6-23.vbs set Shell = CreateObject("Shell.Application") set folder = Shell.BrowseForFolder(0, _ "Suchen Sie sich einen Ordner aus",0,"C:\") set obj = folder.Application MsgBox TypeName(obj)
6.4.2
CopyHere
Sub CopyHere(ByVal vItem, [ByVal vOptions])
Kopiert eine oder mehrere Dateien in diesen Ordner. Dabei zeigt Windows sein offizielles Dialogfenster, wenn die Kopieraktion länger dauert. CopyHere kann sowohl mit FolderItem-Objekten arbeiten als auch mit Klartext-Pfadnamen. Es akzeptiert sogar Joker. Das folgende Script kopiert alle Textdateien aus dem Stammordner C:\ in den Ordner C:\TXTFILES und zeigt dabei sein Dialogfenster an, falls die Kopieraktion länger dauern sollte. Achten Sie darauf, daß Sie den Ordner C:\TXTFILES angelegt haben und daß es im Ordner C:\ auch tatsächlich einige TXT-Dateien gibt, die das Script kopieren kann:
6.4
Der innere Aufbau des Folder-Objekts
163
’ 6-24.vbs set shell = CreateObject("Shell.Application") set folder = shell.NameSpace("C:\TXTFILES") if TypeName(folder)="Nothing" then MsgBox "Bitte legen Sie den Ordner C:\TXTFILES an!" WScript.Quit end if folder.CopyHere "c:\*.TXT" MsgBox "Erledigt."
Rufen Sie das Script ein zweites Mal auf, dann erleben Sie eine weitere Überraschung: Anders als bei den Kopiermethoden des Scripting.FileSystemObject wird diesmal nachgefragt, ob die schon existierenden Dateien überschrieben werden sollen.
Bild 6.14: Shell.Application fragt nach, ob überschrieben werden soll
Auch FolderItems können an CopyHere übergeben werden: ’ 6-25.vbs set shell = CreateObject("Shell.Application") set wshshell = CreateObject("WScript.Shell") windir = wshshell.ExpandEnvironmentStrings("%WINDIR%") set origfolder = shell.NameSpace(windir) set destfolder = shell.NameSpace("C:\TXTFILES") for each item in origfolder.items if lcase(right(item.path,3))="txt" then destfolder.CopyHere item end if next MsgBox "Erledigt."
164
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
Weil hier allerdings die einzelnen Dateien in eigenständigen Häppchen an CopyHere verfüttert werden, erscheint die Fortschrittsanzeige nicht oder nur kurz für jede einzelne Datei. Weiteres Manko: Die Fehlermeldungen von CopyHere sind grob irreführend.
Bild 6.15: Die Fehlermeldungen sind grob irreführend – es gibt deshalb bessere Wege
All diese Hemmnisse fegen Sie beiseite, wenn Sie nicht via Shell.Application und CopyHere auf die eingebaute Kopierstation von Windows zugreifen, sondern direkt. Dann nämlich haben Sie die Wahl, auch viele verschiedene Dateien aus einer Liste heraus mit Fortschrittsanzeige zu kopieren. Mehr dazu lesen Sie in Kapitel 8.25.
6.4.3
DismissedWebViewBarricade
Sub DismissedWebViewBarricade
Für Scripts ungeeignet, interne Bedeutung. Neues Feature von Windows 2000.
6.4.4
GetDetailsOf
Function GetDetailsOf(ByVal vItem, ByVal iColumn As Empty) As String
Liefert zusätzliche Informationen zu einem FolderItem-Objekt wie seine Größe oder seine DateiAttribute. Codezahl
Bedeutung
-1 0 1 2 3 4
InfoTip-Text (nicht bei jedem Dateityp vorhanden) Name Größe Typ Datum der letzten Änderung Attribute
Tab. 6.7: Die Grundinformationstypen werden auf allen Windows-Versionen unterstützt
Das folgende Script zeigt, wie Sie mit GetDetailsOf die Detailinformationen einer Datei lesen: ’ 6-26.vbs set shell = CreateObject("Shell.Application")
6.4
Der innere Aufbau des Folder-Objekts
165
set folder = shell.NameSpace("C:\") set folderitem = folder.ParseName("msdos.sys") for x = -10 to 50 beschreibung = folder.GetDetailsOf(vbNull, x) inhalt = folder.GetDetailsOf(folderitem, x) if not (beschreibung = "" and inhalt = "") then list = list & x & ": " & beschreibung & " = " _ & inhalt & vbCr end if next MsgBox list
Hier sind gleich mehrere Dinge verblüffend: Erstens liefert das Dialogfenster nicht nur den Inhalt der einzelnen Kategorien, sondern auch den Namen der Kategorie. Sie haben nämlich zwei Möglichkeiten, GetDetailsOf aufzurufen: Entweder geben Sie ein FolderItem-Objekt an. Dann liefert die Funktion den Informationswert, den Sie anfordern. Oder Sie geben als FolderItem-Objekt vbNull an. In diesem Fall liefert die Funktion den Namen der Kategorie, also zum Beispiel »Dateiname«, »Größe« oder »Typ«.
Bild 6.16: Universell einsetzbar: Informationen über Dateien erfragen
Und zweitens liefert das Script bei Ihnen möglicherweise weitaus mehr Informationen zurück als oben in Tabelle 6.7 angegeben. Bei Windows 2000 ist GetDetailsOf wesentlich schlauer geworden und meldet viele zusätzliche Dateiinformationen: Codezahl
Beschreibung
5 6 7 8 10 11 12 13 14 15 16 17
Kommentar Erstellt Letzter Zugriff Eigentümer Autor Titel Thema Kategorie Seiten Copyright Name der Firma Modulbeschreibung
166
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
Codezahl
Beschreibung
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
Modulversion Produktname Produktversion Sendername Empfängername Empfängernummer CSID TSID Sendezeit Anruferkennung Routing Audioformat Exemplarrate Größe des Audioexemplars Kanäle Spiellänge Rahmenzähler Rahmenrate Größe des Videoexemplars Videokomprimierung
Tab. 6.8: Windows 2000 bietet weitaus mehr Informationen an
Das nächste Script schaut in Ihren Ordner Eigene Dateien und listet danach alle Winword-Texte und die Zahl der Seiten darin auf – was wie gesagt nur bei Windows 2000 funktioniert. ’ 6-27.vbs set shell = CreateObject("Shell.Application") ’ Zugriff auf Eigene Dateien set folder = shell.NameSpace(5) ’ Inhalt untersuchen for each folderitem in folder.Items ’ ist es eine DOC-Datei (Winword) ? if lcase(right(folderitem.path, 3)) = "doc" then ’ ja, Seitenanzahl ermitteln seitenzahl = folder.GetDetailsOf(folderitem, 14) liste = liste & seitenzahl & " Seite(n): " _ & folderitem.name & vbCr end if next MsgBox liste
Ebenso einfach könnten Sie nach Autorennamen, nach Besitzer oder anderen Kriterien Listen zusammenstellen – oder via CopyHere ganz bestimmte Dokumente automatisch in einen Sicherungs-
6.4
Der innere Aufbau des Folder-Objekts
167
ordner kopieren. Denken Sie aber daran: Diese neuen Informationsquellen gibt es nur bei Windows 2000. Wie vielseitig GetDetailsOf ist, zeigt auch das nächste Script. Es verbindet sich mit dem Systemordner von Windows und erstellt eine Liste der DLL-Bibliotheken samt Versionsnummer und Beschreibung. Dieser Vorgang kann einige Minuten dauern – bitte Geduld! ’ 6-28.vbs set shell = CreateObject("Shell.Application") set fs = CreateObject("Scripting.FileSystemObject") ’ Ergebnisdatei anlegen dateiname = "C:\LOGBUCH.TXT" set datei = fs.CreateTextFile(dateiname, true) datei.WriteLine "Dateiname" & vbTab & "Version" _ & vbTab & "Beschreibung"
’ Zugriff auf Systemordner set folder = shell.NameSpace(37) ’ Inhalt untersuchen for each folderitem in folder.Items ’ ist es eine DLL-Datei? if lcase(right(folderitem.path, 3)) = "dll" then ’ ja, Infos erfragen beschreibung = folder.GetDetailsOf(folderitem, 17) version = folder.GetDetailsOf(folderitem, 18) info = folderitem.name & vbTab & version & vbTab _ & beschreibung datei.WriteLine info end if next datei.close ' Ergebnisdatei mit den reinen Mitteln des Shell.Application-Objekts öffnen: set folder = shell.NameSpace("C:\") set folderitem = folder.ParseName("LOGBUCH.TXT") folderitem.InvokeVerb
Besonders interessant am Rande: Das Script öffnet nach seiner Arbeit zuvorkommend die Textdatei mit den gesammelten Daten. Dazu verwendet es InvokeVerb (siehe oben).
168
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
Bild 6.17: Informationen über DLLs in Ihrem System
6.4.5
HaveToShowWebViewBarricade
Property HaveToShowWebViewBarricade As Boolean
Neue Funktion von Windows 2000, die für Scripts ohne Bedeutung ist.
6.4.6
Items
Function Items As FolderItems
Items liefert den gesamten Ordnerinhalt zurück. Das Ergebnis ist ein FolderItems-Objekt, das die einzelnen Objekte des Ordners als FolderItem-Objekte enthält. Sie können mit for each...next das FolderItems-Objekt auslesen. Items wird in diesem Kapitel ständig eingesetzt. Eine grundlegende Einführung in die Objekte und wie sie zusammengehören finden Sie am Kapitelanfang.
6.4.7
MoveHere
Sub MoveHere(ByVal vItem, [ByVal vOptions])
Funktioniert wie CopyHere, nur wird die Datei nicht kopiert, sondern verschoben.
6.4
6.4.8
Der innere Aufbau des Folder-Objekts
169
NewFolder
Sub NewFolder(ByVal bName As String, [ByVal vOptions])
Legt in einem Ordner einen Unterordner an. Geben Sie den Namen des Unterordners an. Die Optionen brauchen nicht angegeben zu werden und sind bislang auch noch ohne Bedeutung.
6.4.9
OfflineStatus
Property OfflineStatus As Long
Meldet, ob ein Ordner offline oder online ist. Lokale Ordner sind natürlich immer online, aber Windows 2000 bringt ein neues Feature namens »Offline Folder« mit. Damit ist es möglich, Netzwerkordner auch dann noch zu erreichen, wenn das Netzwerk gerade nicht vorhanden ist – zum Beispiel unterwegs oder bei einem Netzwerkausfall. OfflineStatus verrät Ihnen, ob ein Ordner offline verfügbar ist und wie sein Status aussieht: ’ 6-29.vbs set shell = CreateObject("Shell.Application") ’ einen Ordner herauspicken set folder = shell.NameSpace("\\win98\c\ordnerxy") MsgBox folder.offlineStatus
Vorausgesetzt, der Netzwerkpfad existiert und Sie verwenden Windows 2000, liefert OfflineStatus nun einen der folgenden Werte zurück: Rückgabewert
Bedeutung
-1 0 1 2
Ordner ist nicht offline verfügbar Ordner ist offline verfügbar und derzeit online Ordner ist offline verfügbar und derzeit offline; es wird also die lokale Kopie verwendet Ordner ist zwar offline, aber der Server ist wieder online (das Netzwerk ist wieder verfügbar). Der Ordner kann also wieder online geschaltet werden. Es wurde in den Onlinebetrieb zurückgewechselt, ohne daß Änderungen in der lokalen Kopie synchronisiert wurden. Online- und Offline-Ordner unterscheiden sich also, und eine Synchronisierung ist dringend geboten.
3
Tab. 6.9: Informationen über den Status von Offline-Foldern (Windows 2000)
6.4.10 Parent Property Parent As Object
Liefert das übergeordnete Objekt zurück.
170
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
6.4.11 ParentFolder Property ParentFolder As Folder
Liefert den Ordner als Folder-Objekt zurück, in dem der aktuelle Ordner beherbergt wird.
6.4.12 ParseName Function ParseName(ByVal bName As String) As FolderItem
ParseName übersetzt herkömmliche Dateisystem-Pfadnamen in die Shell-Bezeichnung und liefert dann das betreffende FolderItem-Objekt zurück. Um also auf eine Datei zuzugreifen, besorgen Sie sich zuerst mit NameSpace den Ordner, in dem die Datei liegt. Danach setzen Sie ParseName ein und bekommen so das FolderItem-Objekt der Datei. In diesem Kapitel finden Sie unzählige Beispiele für diesen Mechanismus, denn er ist Ihr Tor zum Shell-Dateisystem.
6.4.13 Self Property Self As FolderItem
Diese sehr wichtige Eigenschaft ist erst bei Windows 2000 verfügbar. Das Folder-Objekt selbst liefert an keiner Stelle seinen echten Pfadnamen zurück. Wenn Sie sich also mit BrowseForFolder einen Ordner aussuchen, dann bekommen Sie zwar ein Folder-Objekt, wissen aber nur dessen Titel – nicht dessen Pfadnamen. Nur FolderItem-Objekte verraten über Path den echten Pfadnamen. Mit Self erhalten Sie automatisch das FolderItem-Objekt, das Ihren Ordner im übergeordneten Ordner repräsentiert. So leicht finden Sie bei Windows 2000 den echten Ordnernamen heraus, wenn Sie ein Folder-Objekt besitzen: MsgBox folder.self.path
6.4.14 Synchronize Sub Synchronize
Dieser Befehl synchronisiert einen Offline-Ordner mit dem Server und ist nur bei Windows 2000 vorhanden. Was genau Offline-Ordner sind, wurde bereits bei OfflineStatus beschrieben. Die folgenden Zeilen genügen, um einen nichtaktuellen Offline-Folder mit dem Original zu synchronisieren: if folder.offlineStatus = 3 then folder.Synchronize end if
6.5
Den Explorer fernsteuern: IWebBrowser2
171
6.4.15 Title Property Title As String
Liefert den Titel eines Ordners zurück. Dieser Titel entspricht nicht dem Pfadnamen des Ordners, wie das nächste Beispiel zeigt: ’ 6-30.vbs set shell = CreateObject("Shell.Application") set folder = shell.NameSpace("C:\") MsgBox folder.Title ' nur bei Win2000 möglich: MsgBox folder.self.path
6.5
Den Explorer fernsteuern: IWebBrowser2
Vielleicht haben Sie sich insgeheim schon gefragt, wie Windows eigentlich Ordner im Explorer sichtbar macht. Der Rahmen ist klar: Ein Explorerfenster bildet die Theaterbühne. Nur: Wie kommen die Ordner in den Explorer hinein? Wer glaubt, der Explorer sei selbst für die Darstellung von Ordnern und Dateien zuständig, der täuscht sich: Der Explorer ist ein Allzweck-Datensichtgerät. Er selbst ist eigentlich nur ein armes Würstchen und kann überhaupt keine Daten selbst anzeigen. Statt dessen bedient er sich Plug-Ins. Die stellen dann maßgeschneidert HTML-Seiten, virtuelle Ordner wie die Systemsteuerung oder eben die echten Dateisystem-Ordner dar. Das Plug-In ist seinerseits wieder nur ein Objekt und hört auf den Namen IWebBrowser2. Und wie kommt man an dieses Objekt heran? Starten Sie einen Explorer auf herkömmliche Weise, zum Beispiel über das Arbeitsplatz-Symbol auf dem Desktop, dann hat Ihr Script keine Möglichkeit, an die internen Objekte heranzukommen. Es fehlt der Hintereingang. Anders ist das, wenn Sie selbst scriptgesteuert einen Explorer auf die Bildfläche zaubern. Dann nämlich haben Sie Zugang zum Explorer und all seinen Objekten. So einfach bekommen Sie einen Explorer, der das Laufwerk C:\ anzeigt und dabei komplett per Script gesteuert werden kann: ’ 6-31.vbs set ie = CreateObject("InternetExplorer.Application") ie.visible = true ie.navigate "C:\" MsgBox TypeName(ie)
172
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
6.5.1
Kosmetik: Die Display-Eigenschaften des Explorers steuern
Schauen Sie sich zuerst an, wie Sie Ihr Explorerfenster besser aussehen lassen: Funktion
Bedeutung
AddressBar MenuBar Resizable StatusBar ToolBar Visible Quit Width Height Left Top
False: Adreßleiste wird ausgeblendet False: Menüleiste wird ausgeblendet False: Fenstergröße kann nicht geändert werden False: Statusleiste wird ausgeblendet False: alle Symbolleisten werden ausgeblendet False: Explorerfenster ist unsichtbar (Voreinstellung) Explorerfenster wird geschlossen Breite des Fensters in Pixeln Höhe des Fensters in Pixeln Abstand vom linken Bildschirmrand in Pixeln Abstand vom oberen Bildschirmrand in Pixeln
Tab. 6.10: Eigenschaften des Internet Explorers
So einfach bekommen Sie ein leeres Explorer-Fenster, in dem alle Symbolleisten abgeschaltet sind. Das Fenster ist 500x200 Pixel groß. ’ 6-32.vbs set ie = CreateObject("InternetExplorer.Application") ie.ToolBar = false ie.StatusBar = false ie.Width = 500 ie.Height = 200 ie.visible = true
Mit Hilfe von Left und Top könnten Sie das Fenster in Bildmitte zentrieren, aber dafür müßten Sie die augenblickliche Bildschirmauflösung wissen. Diese Information fehlt momentan noch. Sie lernen aber unten Wege kennen, auch die aktuelle Bildschirmauflösung herauszufinden.
Bild 6.18: Ein leeres Fenster mit Wunschmaßen – noch ist es allerdings leer
6.5
6.5.2
Den Explorer fernsteuern: IWebBrowser2
173
Navigieren: Inhalt im Explorer anzeigen
Ein leeres Explorerfenster nützt Ihnen natürlich herzlich wenig. Deshalb beauftragen Sie den Explorer, an einen Ort zu navigieren. Das folgende Script zeigt, wie Sie den Explorer anweisen, Inhalte anzuzeigen: ’ 6-33.vbs ’ ordner anzeigen set explorer1 = ExplorerShow("C:\") MsgBox TypeName(explorer1.document) ’ virtuellen Ordner anzeigen arbeitsplatz = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" systemsteuerung = "::{21EC2020-3AEA-1069-A2DD-08002B30309D}" set explorer2 = ExplorerShow(arbeitsplatz & "\" _ & systemsteuerung) MsgBox TypeName(explorer2.document) ’ dynamisches HTML anzeigen set explorer3 = ExplorerShow("JavaScript:’Guten Tag, es ist " _ & time & "’") MsgBox TypeName(explorer3.document) ’ Textdatei anzeigen set explorer4 = ExplorerShow("C:\msdos.sys") MsgBox TypeName(explorer4.document) ' ' ' '
ebenfalls möglich: ftp-Adressen Webseiten HTML-Dateien
function ExplorerShow(was) set ie = CreateObject("InternetExplorer.Application") ie.ToolBar = false ie.StatusBar = false ie.width = 500 ie.height = 200 ' zum Ziel navigieren ie.navigate was ' warten, bis Ziel vollständig angezeigt wird do until ie.ReadyState=4 loop ' sichtbar machen ie.visible = true ' Referenz auf Explorer zurückgeben set ExplorerShow = ie end function
174
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
Erstaunlich, oder? Der Explorer kann normale Ordner, virtuelle Ordner, dynamisches HTML und sogar einfache Textdateien anzeigen! Das Prinzip ist ganz simpel: Mit navigate beauftragen Sie den Explorer, etwas anzuzeigen. Natürlich kann es einen Moment dauern, bis der Explorer am Ziel angelangt ist und auch tatsächlich den gewünschten Inhalt anzeigt. Deshalb prüft das Script in einer Schleife, ob ReadyState den Wert 4 meldet. Der bedeutet: Alles klar, der Explorer ist mit dem Bildaufbau fertig. Erst danach schaltet das Script das Explorerfenster auf sichtbar. Dies hat nicht nur kosmetische Gründe. Das Script möchte herausfinden, welches Plug-In jeweils die Informationen im Explorer anzeigt. Diese Information liefert document, aber erst, wenn das Plug-In auch tatsächlich initialisiert ist. Dies ist der eigentliche Grund, warum das Script in der ReadyState-Schleife wartet, bis der Explorer-Bildaufbau abgeschlossen ist. Und tatsächlich enthüllt das Script: Es kommen zwei ganz unterschiedliche Plug-Ins zum Einsatz! Ordner und virtuelle Ordner werden mit IShellFolderViewDual angezeigt, HTML und Texte dagegen über HTML Document.
6.5.3
Per Script in den Explorer-Inhalt eingreifen
Nach wie vor bleibt die Frage, wo denn nun eigentlich das Folder-Objekt im Explorer haust, wenn der Explorer Ordner anzeigt. Das Folder-Objekt erreichen Sie über die Folder-Eigenschaft des IShellFolderViewDual-Objekts. Klingt ziemlich verschachtelt, ist aber ganz einfach: ’ 6-34.vbs ’ ordner anzeigen set explorer1 = ExplorerShow("C:\") ’ hier ist das Folder-Objekt! set folder = explorer1.document.folder ’ damit kann ganz normal hantiert werden: for each folderitem in folder.items list = list & folderitem.name & vbCr next MsgBox list explorer1.quit function ExplorerShow(was) set ie = CreateObject("InternetExplorer.Application") ie.ToolBar = false ie.StatusBar = false ie.width = 500 ie.height = 200 ’ zum Ziel navigieren ie.navigate was ' warten, bis Ziel vollständig angezeigt wird
6.5
Den Explorer fernsteuern: IWebBrowser2
175
do until ie.ReadyState=4 loop ’ sichtbar machen ie.visible = true ' Referenz auf Explorer zurückgeben set ExplorerShow = ie end function
Allerdings ist der reine Zugriff auf das Folder-Objekt nicht sonderlich spannend. Schließlich haben Sie eben reichlichen Aufwand betrieben, den Explorer mit seinem Folder-Objekt sichtbar zu machen. Das macht nur Sinn, wenn es auch Möglichkeiten gibt, in den sichtbaren Explorer einzugreifen. Und genau diese Möglichkeiten gibt es auch. Schauen Sie sich an, was das IShellFolderViewDual-Objekt zu bieten hat: Funktion
Beschreibung
PopupItemMenu SelectedItems FocusedItem SelectItem Folder ViewOptions
Öffnet Kontextmenü eines FolderItem-Objekts Liefert eine FolderItems-Liste mit den derzeit markierten Objekten zurück Liefert das FolderItem-Objekt des ausgewählten Eintrags Markiert ein FolderItem-Objekt im Explorer Liefert das Folder-Objekt zurück, das im Explorer angezeigt wird Liefert die derzeitige Ansicht des Explorer-Fensters zurück
Tab. 6.11: IShellFolderViewDual – das Herz des Datei-Explorers
6.5.4
Dateien im Explorer ferngesteuert markieren
Die wohl interessanteste Funktion ist SelectItem. Sie markiert einen oder mehrere Einträge im Explorer. Ihr Script könnte also – basierend auf den Informationen, die Sie oben kennengelernt haben – eine Vorauswahl treffen und diese Dateien dann im Explorer markieren. Das nächste Script zeigt, wie so etwas geht. Es markiert eine beliebige Datei oder einen Ordner im Explorer. ’ 6-35.vbs ShowMe "C:\msdos.sys" sub ShowMe(path) ordner = left(path, InstrRev(path, "\")) datei = mid(path, InstrRev(path, "\")+1) set explorer = ExplorerShow(ordner) set folder = explorer.document.folder set folderitem = folder.ParseName(datei) ’ datei markieren on error resume next explorer.document.SelectItem folderitem, 1+4+8+16
176
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
if not err.number=0 then MsgBox "Datei """ & datei & """ konnte nicht angezeigt werden!" end if on error goto 0 end sub function ExplorerShow(was) set ie = CreateObject("InternetExplorer.Application") ie.ToolBar = false ie.StatusBar = false ie.width = 500 ie.height = 200 ’ zum Ziel navigieren ie.navigate was ' warten, bis Ziel vollständig angezeigt wird do until ie.ReadyState=4 loop ' sichtbar machen ie.visible = true ' Referenz auf Explorer zurückgeben set ExplorerShow = ie end function
Denken Sie bitte daran: Das Script kann nur funktionieren, wenn die gewünschte Datei auch tatsächlich im Explorer zu sehen ist. Haben Sie zum Beispiel Ihrem Explorer befohlen, versteckte – und Systemdateien auszublenden, dann kann das Script die Datei MSDOS.SYS natürlich nicht markieren. Gleiches gilt, wenn Sie Ordner oder Dateinamen angeben, die nicht existieren.
Bild 6.19: Automatisch Dateien in Ordnern markieren
Dies sind die Optionen, mit denen Sie SelectItem steuern: Option
Bedeutung
0 1 1+2
Markierung entfernen Markieren Umbenennen
6.5
Den Explorer fernsteuern: IWebBrowser2
Option
Bedeutung
4 8 16
Alle Markierungen entfernen mit Ausnahme dieser Markierung Markierten Eintrag ins Blickfeld rücken Markiertem Eintrag den Fokus geben (Eintrag wird von dünner Linie umrahmt)
177
Tab. 6.12: Markierungsoptionen im Explorerfenster
6.5.5
Eigenschaften-Dialogfenster aufrufen
Erinnern Sie sich? Mit InvokeVerb hatten Sie oben in Kapitel 6.3.4 bereits Eigenschaften-Fenster aufgerufen. Die hatten aber einen Nachteil: Sie waren nur so lange sichtbar, wie Ihr Script lief. Mit Ihrem neugewonnenen Wissen geht es besser. Navigieren Sie einfach mit dem Explorer zu der gewünschten Datei, und rufen Sie dann im Folder-Objekt des Explorers den InvokeVerb-Befehl auf. Damit bürdet Ihr Script die weitere Verwaltung dem Explorer auf, und selbst wenn Sie die Instanz des Explorers säuberlich mit Quit beenden, bleibt das Eigenschaften-Fenster sichtbar. Der Grund: Die Mutterinstanz aller Explorer-Fenster läuft noch immer, sie ist ständig vorhanden. ’ 6-36.vbs ShowProps "C:\msdos.sys" sub ShowProps(path) ordner = left(path, InstrRev(path, "\")) datei = mid(path, InstrRev(path, "\")+1) set ie = CreateObject("InternetExplorer.Application") ie.navigate ordner ' warten, bis Ziel vollständig angezeigt wird do until ie.ReadyState=4 loop set folder = ie.document.folder set folderitem = folder.ParseName(datei) folderitem.InvokeVerb "E&igenschaften" ie.Quit end sub
Mit dem vorherigen Script können Sie die Eigenschaften von Ordnern und Dateien aufklappen, aber nicht die von Laufwerken. Schade eigentlich, genau das wäre interessant. Ein Script könnte zum Beispiel den freien Speicherplatz ermitteln und bei Speichernotstand die Eigenschaften-Seite des Laufwerks zücken. Funktioniert auch. Erinnern Sie sich? Alle Laufwerke sind ihrerseits Elemente im Arbeitsplatz-Fenster, und das Arbeitsplatz-Fenster kann über seine GUID angesteuert werden. Verwenden Sie also als Ordner die GUID des Arbeitsplatzes und als »Datei« den Namen des Laufwerks, dann zaubert das Script doch noch die gewünschte Information herbei:
178
Kapitel 6: Zugriff auf die Webansicht: Shell.Application
’ 6-37.vbs ShowDriveProps "C:\" sub ShowDriveProps(path) ordner = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" datei = path set ie = CreateObject("InternetExplorer.Application") ie.navigate ordner ' warten, bis Ziel vollständig angezeigt wird do until ie.ReadyState=4 loop set folder = ie.document.folder set folderitem = folder.ParseName(datei) folderitem.InvokeVerb "E&igenschaften" ie.Quit end sub
6.5.6
In HTML-Dokumente eingreifen
Auch ganz normale HTML-Dokumente, die im Explorer angezeigt werden, können scriptgesteuert verwaltet werden. Das ist zwar nicht das Thema dieses Kapitels, funktioniert aber nach genau denselben Prinzipien. ’ 6-38.VBS htmlstart = "JavaScript:’Huhu!" _ & "initialisiere...’" set explorer = ExplorerShow(htmlstart) for x=1 to 1000 explorer.document.body.innerHTML = "Zählerstand: " & x next explorer.Quit function ExplorerShow(was) set ie = CreateObject("InternetExplorer.Application") ie.ToolBar = false ie.StatusBar = false ie.width = 500 ie.height = 200 ' zum Ziel navigieren ie.navigate was ' warten, bis Ziel vollständig angezeigt wird do until ie.ReadyState=4 loop
6.5
Den Explorer fernsteuern: IWebBrowser2
179
’ sichtbar machen ie.visible = true ’ Referenz auf Explorer zurückgeben set ExplorerShow = ie end function
Sie brauchen dem Explorer noch nicht einmal eine »echte« HTML-Datei anbieten. Über das Schlüsselwort JavaScript:’...’ akzeptiert der Explorer auch synthetische HTML-Tags. Der Text, den Sie im <TITLE>-Tag festlegen, wird in der Titelleiste des Fensters angezeigt.
Bild 6.20: Dynamische Ausgaben in IE-Fenster schreiben
Über innerHTML läßt sich dann der Inhalt des Explorers jederzeit verändern. Er könnte auf diese Weise als Fortschrittsanzeige dienen. Natürlich ist dies nur die Spitze des Eisbergs. Prinzipiell lassen sich alle DHTML-Möglichkeiten auf diese Weise scriptgesteuert ausnutzen. Tip: Scripts innerhalb von HTML-Seiten Natürlich wird der Web-Profi fragen: Wieso sollte ich umständlich über den WSH ein Explorerfenster öffnen und scriptsteuern, wenn ich doch in jede HTML-Datei mit dem <SCRIPT>-Tag denselben Scriptcode einbetten kann? Die Antwort ist simpel: Scripts, die innerhalb des Explorers als Teil einer Webseite ausgeführt werden, unterliegen viel strengeren Sicherheitsprüfungen, weil solche Scripts aus fremder Hand stammen könnten. Die meisten fortschrittlichen Scripts, die externe Objekte verwenden, laufen deshalb nicht als eingebettete Scripts in Webseiten.
181
7
Eigene Script-Befehlserweiterungen schreiben
Was können Sie tun, wenn Sie per Script ein Problem lösen wollen, für das es keine passende Funktion gibt? Die mitgelieferten COM-Objekte bieten zwar reichhaltige Auswahl, aber dennoch werden immer wieder Probleme entstehen, für die es keine vorformulierten Befehle gibt. Werden Sie kreativ! Schaffen Sie sich Ihre eigenen COM-Objekte! Das ist leichter als Sie denken, und Sie brauchen noch nicht einmal kostspielige Programmierwerkzeuge. Microsoft verschenkt die Visual Basic Control Creation Edition. Auch an Sie! Dieses rund 7 MB große Programmpaket entspricht dem kompletten Visual Basic 5.0 und ist nur um die Funktion beraubt, eigenständige Programme zu entwickeln. Das können Sie leicht verschmerzen, denn Ihre Scripts brauchen lediglich COM-Objekte, um neue Befehle nutzen zu können. COM-Objekte erstellen Sie mit der kostenlosen VB CCE mit links! In diesem Kapitel zeige ich Ihnen, wie Sie sich die VB CCE beschaffen und installieren. Ich zeige Ihnen außerdem, wie leicht es ist, mit diesem Programm und Ihren bisherigen Kenntnissen eigene neue Befehle zu erfinden. Im nächsten Kapitel bombardiere ich Sie dann mit fix und fertigen Lösungen zu allen nur erdenklichen Problemen. Das Ergebnis sind enorm mächtige Befehlserweiterungen, die Sie jederzeit ergänzen, erweitern und an Ihre Kunden weitergeben können.
7.1
Die Visual Basic CCE startklar machen
Wo bekommen Sie die Visual Basic CCE her? Surfen Sie zu msdn.microsoft.com/vbasic/downloads/ cce/. Hier müssen Sie sich zuerst als MSDN-Mitglied registrieren lassen. Das kostet Sie höchstens ein paar Minuten, aber kein Geld. Mit Ihrer persönlichen MSDN-ID können Sie danach die VB CCE herunterladen. Tip: VB CCE – auch auf CD! Auf der Buch-CD finden Sie ebenfalls die VB CCE Installationsdatei, und zwar im Ordner VISUAL BASIC CCE.
Das Ergebnis ist eine ausführbare EXE-Datei. Rufen Sie sie auf, um die VB CCE auf Ihrem System zu installieren. Anschließend finden Sie in Ihrem Programme-Menü die neue Gruppe Visual Basic 5.0 CCE. Darin befindet sich unter anderem das Programm Visual Basic 5.0 CCE. Rufen Sie es auf!
182 7.1.1
Kapitel 7: Eigene Script-Befehlserweiterungen schreiben
Die VB CCE kennenlernen
Die VB CCE öffnet zunächst ein Willkommensfenster und fragt nach, was für eine Sorte von Programm Sie erstellen wollen. Wählen Sie ActiveX Control!
Bild 7.1: Script-Befehlserweiterungen sind ActiveX-Controls
Anschließend sehen Sie Ihre neue Werkbank, die aus einer ganzen Reihe von Einzelfenstern besteht. Ruhig liegt sie da und wartet geduldig darauf, daß Sie mit ihr zu spielen beginnen. Nur: Wo anfangen in all dem Kauderwelsch? Schauen Sie sich zuerst an, was die VB CCE alles für Sie mitgebracht hat:
Toolbox: Ganz links sehen Sie die Toolbox mit all den Steuerelementen, die Sie in selbstgebastelten Fenstern einsetzen können. Die Toolbox läßt sich jederzeit über den gleichnamigen Befehl aus dem View-Menü einblenden, falls Sie sie ausgeknipst haben.
Rechts haben sich gleich drei Fenster angedockt: Project Explorer, Properties Window und Form Layout. Alle drei Fenster können ausgeknipst werden, wenn Sie sie gerade nicht brauchen, und kommen über die entsprechenden Befehle aus dem View-Menü wieder zurück.
In der Mitte sehen Sie das eigentliche Projekt. Es besteht zuerst aus einem grauen Rechteck, dem »nackten« Control. Ein Rechtsklick auf dieses graue Rechteck öffnet ein Kontextmenü, und darin sehen Sie den Befehl View Code. Er schaltet von der grafischen Ansicht um in den Programmiermodus, und nun sehen Sie eine Art Texteditor. Der hilft Ihnen dabei, Ihrem neuen COM-Objekt sinnvolle Befehle beizubringen.
7.1
Die Visual Basic CCE startklar machen
183
Bild 7.2: Gar nicht so kompliziert: die Visual Basic Entwicklungsumgebung
7.1.2
Der Project Explorer – Ihr Inhaltsverzeichnis
Der Project Explorer stellt Ihr gesamtes Programmier-Projekt wie ein Inhaltsverzeichnis dar. Am Anfang sehen Sie darin an oberster Stelle Ihr Projekt. Es heißt Project1, und Ihre erste Aufgabe sollte sein, dem Projekt einen sinnvolleren Namen zu geben: 1. Klicken Sie im Project Explorer auf Project1. Im Properties-Fenster darunter sehen Sie nun die Eigenschaften Ihres Projekts. Es gibt nur eine einzige Eigenschaft, und die heißt Name.
Bild 7.3: Markieren Sie im Project Explorer Ihr Projekt
2. Klicken Sie ins Feld dahinter, und geben Sie dem Projekt einen Namen, zum Beispiel test.
184
Kapitel 7: Eigene Script-Befehlserweiterungen schreiben
Bild 7.4: Geben Sie Ihrem Projekt einen besseren Namen
Schauen Sie sich nun wieder den Project Explorer an: Ihr Projekt ist umgetauft und heißt nun test. Gut gemacht! Jetzt erkunden Sie, aus welchen Elementen Ihr Projekt eigentlich besteht. Unterhalb von test steht die Kategorie UserControls, und darin befindet sich Ihr (noch leeres) COM-Objekt. Es heißt UserControl1. Auch dieser Name darf natürlich nicht so bleiben. Sicher können Sie sich schon denken, wie Sie Ihrem COM-Objekt einen besseren Namen geben: 1. Klicken Sie im Project Explorer auf UserControl1. Im Properties-Fenster sehen Sie nun alle Eigenschaften Ihres COM-Objekts. Das sind schon etliche mehr als beim Projekt.
Bild 7.5: Markieren Sie dann Ihr Control-Objekt
2. Wieder gibt es eine Name-Eigenschaft, und darin steht UserControl1. Klicken Sie ins Feld hinter Name, und geben Sie als neuen Namen ein: Objekt.
Bild 7.6: Geben Sie auch Ihrem Control-Objekt einen besseren Namen
7.1
Die Visual Basic CCE startklar machen
185
Ihr neues COM-Objekt heißt nun mit vollem Namen test.Objekt. Kommt Ihnen das bekannt vor? Genau: Auch die übrigen System-Objekte wurden über Namen angesprochen, die aus zwei Teilen bestehen. Das Scripting.FileSystemObject ist also in Wirklichkeit ein Projekt namens Scripting mit dem COM-Objekt namens FileSystemObject. Die Magie enträtselt sich.
7.1.3
Ihr neues COM-Objekt mit Leben füllen
Bislang kann Ihr neues COM-Objekt noch nichts für Sie tun. Es ist schließlich noch vollkommen leer. Damit Sie es mit Sinn füllen, klicken Sie in der Mitte mit der rechten Maustaste auf das graue Rechteck und wählen View Code. Der Programmier-Editor öffnet sich.
Bild 7.7: Schalten Sie in die Code-Sicht um
Formulieren Sie nun Ihre erste eigene Script-Befehlserweiterung! Das ist nicht schwierig, denn in der VB CCE wird Visual Basic gesprochen. Ihre Scriptsprache VBScript ist bloß eine Untermenge, und so reichen die ganz normalen Scriptkenntnisse aus. Geben Sie in den Editor diesen Code ein: Public Function AskForNumber(prompt, Optional ByVal vorgabe As String = "") ’ fragt nach einer Zahl Do ' falls mehr als einmal gefragt werden muß, ' einen Hinweis an den Benutzer ausgeben If fehler Then MsgBox "Sie haben keine Zahl eingegeben! " _ & "Bitte wiederholen!", vbExclamation End If ' Nach der Zahl fragen: zahl = InputBox(prompt, , vorgabe) ' Warnmeldung aktivieren, die angezeigt wird, ' falls ein weiteres Mal gefragt werden muß fehler = True ' so lange abfragen, bis entweder eine Zahl eingegeben ' oder auf Abbrechen geklickt wurde:
186
Kapitel 7: Eigene Script-Befehlserweiterungen schreiben
Loop Until (IsNumeric(zahl) Or zahl = "") AskForNumber = zahl End Function
Während Sie den Code eingeben, werden Sie die erste Überraschung erleben: Der Editor ist kein normaler Editor, sondern eine Entwicklungsumgebung. Sie unterstützt Ihre Programmierung und blendet in InfoTip-Fenstern zuvorkommend die genaue Befehlssyntax ein.
Bild 7.8:
Los geht’s: Mit der VB CCE schreiben Sie Programme ebenso einfach wie im Texteditor Scripts
Tip: Projekt vorgekaut – viel bequemer! Sie finden das gesamte Beispielprojekt auch auf der Buch-CD, und zwar im Ordner BEISPIELE\ PROJEKT1. Öffnen Sie einfach die Projektdatei namens Projekt1.VBS mit Ihrer VB CCE. Dazu wählen Sie im File-Menü den Befehl Open.
7.1.4
Ihr COM-Objekt testen: Kompilieren
Ihr Code »steht«? Gut! Damit Ihnen Ihr neuer Code etwas nutzt, muß das eigentliche COM-Objekt erstellt werden. Dazu wählen Sie im File-Menü den Befehl Make test.ocx. Ein Fenster öffnet sich und will wissen, wo Sie Ihr neues COM-Objekt speichern wollen.
7.1
Die Visual Basic CCE startklar machen
187
Falls Sie keine schwerwiegenden Fehler gemacht haben, wird Ihr Code anstandslos kompiliert, und die VB CCE bastelt daraus ein eigenständiges COM-Objekt. Speichern Sie anschließend schnell noch Ihr Programmierprojekt, damit Sie später daran weiterarbeiten können. Tip: Projekte in separaten Ordnern aufbewahren! Gewöhnen Sie sich am besten gleich an etwas Haushaltsordnung. Alle Projekte, die Sie anlegen, speichern Sie am besten in separaten neuen Ordnern, damit die Einzelteile Ihrer Projekte nicht durcheinandergeraten.
7.1.5
Der erste Versuch: Ihren neuen Befehl von Scripts aus ansprechen
Innerhalb der VB CCE können Sie Ihren Programmcode nicht testen. Erinnern Sie sich? Die VB CCE kann keine eigenständigen Programme erzeugen. Testen Sie Ihre Befehlserweiterung deshalb gleich mit einem eigenen Script. Das könnte so aussehen: set myobj = CreateObject("test.objekt") zahl = myobj.AskForNumber("Zahl eingeben!") if zahl="" then MsgBox "Sie haben abgebrochen!" else MsgBox "Sie haben diese Zahl eingegeben: " & zahl end if MsgBox myobj.AskForNumber("Ihr Alter?", "32")
Es funktioniert! Ihr neues Objekt ist tatsächlich als test.Objekt ansprechbar und liefert die neue Funktion AskForNumber. Damit können Sie nach Zahlen fragen. Die Funktion akzeptiert außerdem optional einen zweiten Parameter, über den ein Vorgabewert ins InputBox-Fenster eingetragen wird.
Bild 7.9: Diese Dialogfenster und die Numerikprüfung stammen von Ihrer Befehlserweiterung!
Tip: Fehler korrigieren – so geht’s! Sollten in Ihrem COM-Objekt Fehler enthalten sein, dann entdecken Sie die meist spätestens, wenn Sie die neue COM-Objekt-Funktion per Script ausprobieren. Wechseln Sie in solch einem Fall einfach zurück in die VB CCE, korrigieren Sie den Fehler, und kompilieren Sie das Objekt mit Make aus dem File-Menü neu. Danach führen Sie Ihr Script noch einmal aus und prüfen, ob der Fehler beseitigt ist.
188 7.1.6
Kapitel 7: Eigene Script-Befehlserweiterungen schreiben
Die Vorteile neuer COM-Objekte
Bisher hat Ihr COM-Objekt zwar einen neuen Befehl erfunden, aber der geht nicht über die Möglichkeiten hinaus, die Sie auch mit reinem VBScript gehabt hätten. Kein Wunder, Ihr COM-Objekt hat ja auch nur die reinen VBScript-Befehle genutzt, und nicht die zusätzlichen Möglichkeiten von Visual Basic. Trotzdem hat bereits dieses einfache Beispiel einige wichtige Vorteile deutlich gemacht:
Kompakt und gesichert: Ihr COM-Objekt ist kompakt, und Ihr Programmcode kann nicht mehr von jedermann gelesen werden.
Sie könnten nun zum Beispiel immer wieder benötigte Routinen als COM-Objekt formulieren und so in jedem Script blitzschnell verfügbar machen. Das Script bleibt dadurch schlank und überschaubar.
Sprachunabhängig: COM-Objekte sind universell einsetzbar. Sie können Ihr neues Objekt auch in anderen Sprachen wie JavaScript einsetzen. Da JavaScript keine MsgBox-Funktion kennt, mit der Sie Meldungen ausgeben, ließe sich diese Funktion nun via COM-Objekt nachrüsten.
Optionale Parameter: Ein Feature von Visual Basic hat Ihr erstes Projekt bereits mit Erfolg eingesetzt – optionale Parameter. Mit Optional ByVal machen Sie Argumente optional. Der Anwender braucht dieses Argument also nicht unbedingt anzugeben. Mit VBScript geht so etwas nicht.
Sobald Sie die VB CCE und Visual Basic etwas genauer kennenlernen – und das passiert in wenigen Minuten –, gewinnen Sie eine ganze Reihe weiterer Vorteile hinzu:
Eigene Dialogfenster: Genügen Ihnen das MsgBox- und InputBox-Fenster nicht? Dann generieren Sie sich einfach maßgeschneidert das Dialogfenster, das Ihnen gerade fehlt! COM-Objekte können Fenster anzeigen, deren Inhalt Sie völlig selbst gestalten können.
Echte neue Befehle: Visual Basic kann im Gegensatz zu VBScript auf alle internen WindowsBefehle zugreifen. Solche API-Befehle sind die Grundlage wirklich neuer Scriptbefehle. Dank dieser Möglichkeiten bringen Sie Ihren Scripts prinzipiell jede gewünschte Funktion bei – Schluß mit Limits!
7.2
Die Windows-API verwenden: CD-ROM-Schublade öffnen und schließen
Wie mächtig und dabei relativ überschaubar echte Befehlserweiterungen sind, zeigt das nächste Beispiel. Es verwendet eine der Windows-Grundfunktionen, um die Schublade Ihres CD-ROMLaufwerkes aus- und einzufahren. Hier wird sofort klar: Diesmal liefert Ihr COM-Objekt wirklich eine vollkommen neue Funktion.
7.2
7.2.1
Die Windows-API verwenden: CD-ROM-Schublade öffnen und schließen
189
Ein neues Projekt starten
Wissen Sie noch, wie Sie ein neues Projekt starten? Hier noch einmal die grundlegenden Schritte: 1. Starten Sie die VB CCE: Im Startmenü wählen Sie Programme, dann Visual Basic 5.0 CCE. Klicken Sie auf Visual Basic 5.0 CCE. Falls die VB CCE bereits lief, wählen Sie New Project. Die VB CEE fragt nach, falls das alte Projekt noch nicht gespeichert war. 2. Suchen Sie sich als Projekt aus: ActiveX Control. Klicken Sie dann mit der rechten Maustaste auf das graue Rechteck in der Bildmitte, und wählen Sie View Code. Jetzt sehen Sie den Editor. 3. Klicken Sie nun rechts im Project Explorer auf den obersten Eintrag: Project1. Im PropertiesFenster darunter geben Sie Ihrem Projekt einen Namen, zum Beispiel CDROM. 4. Klappen Sie im Project Explorer die Unterzweige aus, bis Sie Ihr UserControl sehen. Klicken Sie auf UserControl1, und geben Sie auch Ihrem COM-Objekt im Properties-Fenster einen neuen Namen – zum Beispiel helper. Ihr neues Objekt hört nun auf den Namen cdrom.helper. Tip: Projekt aus der Konserve Sie können auch das gesamte Projekt laden. Ich habe es auf der Buch-CD im Ordner BEISPIELE/ PROJEKT2 für Sie gespeichert.
7.2.2
Die CD-ROM-Schublade fernsteuern
Nun geben Sie ins Editor-Fenster diesen Code ein: Private Declare Function mciSendString Lib "winmm.DLL" Alias _ "mciSendStringA" (ByVal lpstrCommand As String, ByVal _ lpstrReturnString As String, ByVal wReturnLength As Integer, _ ByVal hCallback As Integer) As Long Sub SchubladeAuf() Call mciSendString("Set CDAudio Door Open Wait", 0&, 0, 0) End Sub Sub SchubladeZu() Call mciSendString("Set CDAudio Door Closed Wait", 0&, 0, 0) End Sub
Neu an diesem Code ist das Visual Basic-Sprachelement Declare. Mit Declare machen Sie sich Windows-API-Befehle gefügig. Declare liefert dazu alle Informationen, die nötig sind, um die Windows-Grundfunktionen anzusprechen. Im Beispiel verwendet das Programm die Funktion mciSendString aus der Windows-Bibliothek winmm.dll. Alias legt den »echten« Namen dieser Funktion fest: mciSendStringA. Aufpassen: Hier wird zwischen Groß- und Kleinschreibung penibel unterschieden! Anschließend legt Declare fest, welche Argumente die Funktion erwartet und welche sie gegebenenfalls zurückliefert.
190
Kapitel 7: Eigene Script-Befehlserweiterungen schreiben
mciSendString ist ein Universalbefehl, um jede Art von Multimediagerät fernzusteuern. CD-ROMs gehören in diese Gruppe, weil CD-ROMs neben reinen Datenscheiben auch Audio und Video enthalten können. Tip: Woher bekommt man Infos über API-Befehle? Leider sind Informationen über die Windows-API schwer zu bekommen. Zwar gibt es etliche Referenzen (zum Beispiel das Windows SDK von Microsoft), doch die sind in aller Regel nicht für Visual Basic gemacht. Die Beispiele in solchen Referenzen orientieren sich an der »Profi«-Programmiersprache C. Besser fahren Sie deshalb, wenn Sie sich an den vielen Programmbeispielen in diesem Buch orientieren. Wer noch mehr wissen möchte, sollte im Internet eine der zahlreichen VisualBasic-Webseiten besuchen. Hier gibt’s ebenfalls viele Praxisbeispiele.
Die eigentliche Befehlserweiterung – die Befehle SchubladeAuf und SchubladeZu – ist simpel: beide Befehle verwenden lediglich mciSendString, um die entsprechende Anweisung an das CD-ROMLaufwerk zu senden. Probieren Sie Ihre neue Befehlserweiterung aus! Kompilieren Sie Ihr Projekt: Im File-Menü wählen Sie Make cdrom.ocx. Jetzt brauchen Sie nur noch ein Testscript, das die neuen Funktionen einsetzt. Das könnte so aussehen: ’ 7-2.vbs set myobj = CreateObject("cdrom.helper") MsgBox "Ich öffne nun die CD-ROM Schublade!" myobj.SchubladeAuf MsgBox "Jetzt wird die Schublade wieder geschlossen!" myobj.SchubladeZu MsgBox "Fertig!"
Erstaunlich, oder? Es funktioniert! Sie haben soeben mit einem kleinen COM-Objekt zwei neue wichtige Funktionen bereitgestellt. Tip: Mehr als ein CD-ROM-Laufwerk steuern Natürlich ist dies nur ein erster Test. Wenn Sie zum Beispiel mehr als ein CD-ROM-Laufwerk besitzen, dann wollen Sie sicher wissen, wie Sie aussuchen, welches geöffnet wird. Dies und mehr ist Thema in Kapitel 8.
7.3
Eigene Dialogfenster entwerfen
Ihnen genügen die Dialogfenster MsgBox und InputBox nicht? Sie brauchen bessere Dialogfenster, womöglich maßgeschneidert für Ihr Projekt? Dann basteln Sie sich welche! Das ist mit der VB CCE gar nicht so schwer. Legen Sie zuerst wie oben beschrieben ein neues Projekt an. Geben Sie dem Projekt den Namen dialog und dem COM-Objekt den Namen fenster.
7.3
Eigene Dialogfenster entwerfen
191
Tip: Projekt direkt von der CD-ROM öffnen Sie finden das komplette Projekt auch auf der Buch-CD: BEISPIELE/PROJEKT3. Wählen Sie im FileMenü der VB CCE Open, und öffnen Sie das Projekt DIALOG.VBP.
7.3.1
Ein Dialogfenster gestalten
Ihr COM-Objekt selbst kann nicht als Fenster erscheinen. COM-Objekte könnten höchstens in Webseiten eingebettet werden. Was Sie brauchen ist eine Form. Form (oder Formular) ist ein zusätzliches Element. So bekommen Sie eine Form: 1. Klicken Sie im Project Explorer mit der rechten Maustaste auf den obersten Eintrag. Er sollte dialog heißen, wenn Sie Ihr Projekt bereits wie oben beschrieben umbenannt haben.
Bild 7.10: Fügen Sie ein neues Formular hinzu, wenn Sie eigene Fenster brauchen
2. Wählen Sie im Kontextmenü Add und Form. Ihnen wird ein Form-Objekt angeboten. Klicken Sie auf Öffnen. 3. Ein Blick in den Project Explorer zeigt: Ihr Projekt enthält jetzt zwei Elemente, das COM-Objekt und die Form. Klicken Sie auf Form1, um zur Form umzuschalten. In der Bildmitte liegt wieder ein graues Rechteck. Das ist Ihr neues leeres Dialogfenster. 4. Gestalten Sie nun Ihr Dialogfenster! Dazu doppelklicken Sie links in der Toolbox auf die Elemente, die Sie in Ihrem Dialogfenster einsetzen wollen. Lassen Sie uns ein Dialogfenster entwerfen, mit dem man zwischen mehreren Optionen wählen kann. 5. Doppelklicken Sie zuerst auf das Rahmenelement. In Ihrem Formular erscheint ein Rahmen. Ziehen Sie ihn so zurecht, daß er Ihr Dialogfenster wie in der Abbildung umrahmt.
192
Kapitel 7: Eigene Script-Befehlserweiterungen schreiben
Bild 7.11: Dialogfenster selbst gestalten – mit Formularen geht‘s
6. Fügen Sie als nächstes nacheinander vier Optionskästchen per Doppelklick in die Form ein. Jedesmal, wenn Sie ein Optionskästchen hinzugefügt haben, drücken Sie [Strg]+[X], um es auszuschneiden. Dann klicken Sie auf den Rahmen, den Sie gerade eben in die Form eingefügt haben, und drücken [Strg]+[V]. So wird das Optionskästchen innerhalb des Rahmens eingefügt. Das ist wichtig!
Bild 7.12: In der Toolbar finden Sie alle Bedienelemente für Ihr Dialogfenster
7. Ordnen Sie die Optionskästchen untereinander an, und machen Sie jedes Element so breit wie innerhalb des Rahmens möglich. 8. Wenn alle vier Optionskästchen eingefügt und zurechtgerückt sind, fügen Sie noch zwei Schaltflächen hinzu und ordnen sie unterhalb des Rahmens an. Rücken Sie alles noch etwas zurecht. Ihr Dialogfenster könnte nun so aussehen:
7.3
Eigene Dialogfenster entwerfen
193
Bild 7.13: Optionsfelder auf das Dialogfenster setzen
Ihr Dialogfenster ist jetzt in den Grundzügen fertig. Als nächstes kommen die Beschriftungen an die Reihe, und auch das Fenster selbst kann etwas Feintuning gebrauchen: 1. Legen Sie alle Beschriftungen fest, die vorgegeben sein sollen. Klicken Sie zum Beispiel die linke Schaltfläche an. Rechts im Properties-Fenster können Sie jetzt im Eigenschaften-Feld Caption eine Beschriftung aussuchen. Ersetzen Sie Command2 durch OK. Verfahren Sie mit der anderen Schaltfläche genauso, und nennen Sie die Abbrechen. Tip: Aus Versehen gedoppelklickt? Macht nichts! Haben Sie aus Versehen auf eine der Schaltflächen gedoppelklickt? Die VB CCE schaltet daraufhin in den Programmeditor, denn sie geht davon aus, daß Sie der Schaltfläche Programmcode zuordnen wollen. Das ist zwar sehr zuvorkommend, aber noch etwas verfrüht. Klicken Sie einfach rechts im Project Explorer mit der rechten Maustaste auf Form1, und wählen Sie View Object. Schon sind Sie wieder im Design-Studio.
2. Stellen Sie bei allen Beschriftungen, die Sie später per Script von Fall zu Fall festlegen wollen, die Caption-Eigenschaft auf leer ein. Dazu klicken Sie in Ihrem Formular auf das gewünschte Element und löschen dann im Properties-Fenster das Caption-Feld. Nun wird es Zeit, Ihrem neuen COM-Objekt Befehle beizubringen. Zuerst sollen eine Reihe von Eigenschaften definiert werden, mit denen Sie die einzelnen Beschriftungen des Dialogfensters setzen. Klicken Sie im Project Explorer mit der rechten Maustaste auf Ihr COM-Objekt fenster, und wählen Sie View Code. Dann geben Sie diesen Code ein: ' Überschrift des Fensters festlegen: Public Property Let Title(ByVal text As String) Form1.Caption = text End Property ' Überschrift des Rahmens festlegen: Public Property Let Subtitle(ByVal text As String) Form1.Frame1.Caption = text End Property ' Den Text der vier Optionsfelder festlegen Public Property Let Option1(ByVal text As String) Form1.Option1.Caption = text
194
Kapitel 7: Eigene Script-Befehlserweiterungen schreiben
End Property Public Property Let Option2(ByVal text As String) Form1.Option2.Caption = text End Property Public Property Let Option3(ByVal text As String) Form1.Option3.Caption = text End Property Public Property Let Option4(ByVal text As String) Form1.Option4.Caption = text End Property ’ den Modus der vier Optionsfelder festlegen ' 0 = nicht gewählt (Vorgabe) ' 1 = gewählt ' 2 = abgeblendet Public Property Let Option1Mode(ByVal modus As Integer) If modus = 2 Then Form1.Option1.Enabled = False Else Form1.Option1.Value = modus End If End Property Public Property Let Option2Mode(ByVal modus As Integer) If modus = 2 Then Form1.Option2.Enabled = False Else Form1.Option2.Value = modus End If End Property Public Property Let Option3Mode(ByVal modus As Integer) If modus = 2 Then Form1.Option3.Enabled = False Else Form1.Option3.Value = modus End If End Property Public Property Let Option4Mode(ByVal modus As Integer) If modus = 2 Then Form1.Option4.Enabled = False Else Form1.Option4.Value = modus End If End Property ' Dialogfenster anzeigen
7.3
Eigene Dialogfenster entwerfen
195
Public Function ShowDialog() Form1.Show vbModal ShowDialog = Form1.ergebnis Unload Form1 End Function
Sie sehen nun eine ganze Reihe von Public Property Let-Blöcken. Damit werden Eigenschaften Ihres Objekts festgelegt. Let bedeutet: Sie können per Script dieser Eigenschaft einen Wert zuweisen, aber die Eigenschaft nicht auslesen. Es ist eine »Write Only«-Eigenschaft, und das genügt vollauf. Mit den neuen Eigenschaften weisen Sie den einzelnen Elementen Ihres Dialogfensters Beschriftungen zu. Das Prinzip ist einfach: Der Code verfüttert Ihren Text an die Caption-Eigenschaft des gewünschten Elements. Etwas anders funktionieren die OptionxMode-Eigenschaften. Sie regeln, ob ein Optionsfeld vorgewählt oder abgeblendet ist. Geben Sie 2 ein, dann wird die Enabled-Eigenschaft des Objekts auf false gesetzt. Das Optionselement erscheint abgeblendet. Die 1 wählt das Optionsfeld aus, so daß es bereits vorgewählt erscheint. Damit Ihre Scripts das Dialogfenster überhaupt sichtbar machen können, gibt es außerdem die Funktion ShowDialog. Sie ruft mit Form1.Show vbModal das Dialogfenster auf den Bildschirm. Sobald das Dialogfenster seine Arbeit erledigt hat, liest dieser Programmteil das Ergebnis aus der Formularvariablen ergebnis aus und liefert es an Ihr Script zurück. Nur: Woher kommt das Formular-Ergebnis? Dazu bringen Sie dem Formular noch etwas Intelligenz bei: 1. Klicken Sie im Project Explorer mit der rechten Maustaste auf Ihr Formular: Form1. Dann wählen Sie View Code. 2. Geben Sie nun diesen Code ein: Public ergebnis As Integer Private Sub Command1_Click() ' ausführen, wenn auf Abbrechen geklickt wird ergebnis = -1 Form1.Hide End Sub Private Sub Command2_Click() ' ausführen, wenn auf OK geklickt wird If Option1 Then ergebnis = 1 ElseIf Option2 Then ergebnis = 2 ElseIf Option3 Then ergebnis = 3 ElseIf Option4 Then ergebnis = 4 Else ergebnis = 0
196
Kapitel 7: Eigene Script-Befehlserweiterungen schreiben
End If Form1.Hide End Sub
Zuerst definieren Sie mit Public eine öffentliche Variable namens ergebnis. Die speichert später das Ergebnis der Auswahl, und weil Sie die Variable mit Public für öffentlich erklärt haben, kann Ihr COM-Objekt anschließend den Wert daraus auslesen.
Bild 7.14: Über Events – Ereignisse – reagiert Ihr Code auf Tastendrücke
Außerdem definieren Sie zwei Prozeduren, die ausgeführt werden, wenn eine der beiden Schaltflächen betätigt wird. Solche »Event«-Prozeduren heißen immer so wie das Steuerelement, für das sie zuständig sein sollen. Dahinter folgt ein Unterstrich und dann der Name des Events, der die Prozedur aktivieren soll. Die Prozedur Command1_Click() wird also automatisch immer dann ausgeführt, wenn jemand auf die Schaltfläche Command1 klickt. Tip: Event-Prozeduren mit eingebauter Hilfe! Sie brauchen Ihr Formular nur per Rechtsklick und View Object in den Designmodus zu schalten und dann das gewünschte Schaltelement doppelklicken. Zuvorkommend legt VB CCE nun die Event-Prozedur von ganz allein an. In der rechten Ausklappliste am Oberrand des Texteditors können Sie sich dann auch alle anderen Events dieses Steuerelements ansehen.
7.3
Eigene Dialogfenster entwerfen
197
Klickt jemand auf den Abbrechen-Knopf, dann setzt das Formular das Ergebnis auf –1 und versteckt dann mit Hide das Formular. Das ist wichtig, denn nur wenn das Formular verschwindet, kann Ihr COM-Objekt weiterarbeiten. Show vbModal wartet nämlich so lange, bis das Fenster geschlossen wird. Klickt dagegen jemand auf OK, dann schaut sich die Prozedur die Werte in den vier Optionsfeldern an. Das Optionsfeld, das true zurückliefert, ist ausgewählt. Diesen Wert schreibt es in die Ergebnis-Variable, und danach wird auch hier das Fenster unsichtbar gemacht. Die Prozedur ShowDialog in Ihrem COM-Objekt hatte mit Form1.Show vbModal die Kontrolle vorübergehend an Ihr Formular abgegeben. Nun wo das Formular über Form1.Hide unsichtbar ist, kann es weitermachen. Es liest das Ergebnis aus der Formularvariablen ergebnis und liefert es als Rückgabewert an Ihr Script zurück. Danach wirft es das Formular aus dem Speicher: Unload Form1.
7.3.2
Der Test: Ihr eigenes Dialogfenster im Einsatz testen
Sobald Sie Ihr neues COM-Objekt mit Make aus dem File-Menü kompiliert haben, können Sie es für sich schuften lassen. So einfach bekommen Sie Optionsauswahlen nun hin: ’ 7-3.vbs set myobj = CreateObject("dialog.fenster") ’ Fenster definieren myobj.Title = "Mein Abfragefenster" myobj.SubTitle = "Bitte wählen Sie aus:" myobj.Option1 myobj.Option2 myobj.Option3 myobj.Option4
= = = =
"Rechner herunterfahren" "Rechner neu starten" "Neu anmelden" "Kaffee trinken"
' Option 2 vorwählen myobj.Option2Mode = 1 ' Option 4 ausblenden myobj.Option4Mode = 2 ' Fenster anzeigen ergebnis = myobj.ShowDialog if ergebnis = -1 then MsgBox "Sie haben abgebrochen!" elseif ergebnis = 0 then MsgBox "Sie haben nichts ausgewählt!" else MsgBox "Ihre Wahl: " & ergebnis end if
198
Kapitel 7: Eigene Script-Befehlserweiterungen schreiben
Ihr neues Dialogfenster funktioniert prächtig:
Bild 7.15: Ab sofort möglich: völlig selbstgestaltete Dialogfenster
7.3.3
Wichtige Rahmen-Kosmetik
Alles funktioniert prima, nur eine Sache nicht: Wenn Sie nämlich das Dialogfenster per Maus vergrößern, dann vergrößert sich nur das Fenster, aber nicht sein Inhalt. Und außerdem wäre es schöner, wenn Ihr Dialogfenster immer zentriert auf dem Bildschirm erscheint. Wechseln Sie deshalb noch einmal in Ihr Projekt. Dann machen Sie folgendes: 1. Suchen Sie sich im Project Explorer das Formular heraus, und klicken Sie auf Form1. 2. Stellen Sie oben in der Ausklappliste des Properties-Fensters ein: Form1 Form. Jetzt zeigt das Fenster die Eigenschaften des Formularfensters an. 3. Stellen Sie die Eigenschaft BorderStyle auf 3: Fixed Dialog. Jetzt kann die Fenstergröße nicht mehr geändert werden. 4. Scrollen Sie die Liste abwärts, und stellen Sie die Eigenschaft StartupPosition auf 2 : Centered Screen. 5. Kompilieren Sie Ihr Projekt erneut mit Make aus dem File-Menü. Speichern Sie Ihr Projekt dann ab, und probieren Sie Ihr Script noch einmal aus. Tatsächlich: Nun kann das Fenster nicht mehr vergrößert werden, und das Dialogfenster erscheint automatisch in Bildschirm-Mitte. Na also, geht doch.
7.4
Ihre neuen COM-Objekte an andere weitergeben
Sicherlich werden Sie Ihre selbstgemachten COM-Objekte irgendwann auch einmal auf einem anderen Computer nutzen oder sogar an Kunden weitergeben wollen. Wie geht das? Natürlich könnten Sie auf dem Zielcomputer ebenfalls die VB CCE installieren und dort Ihr Programm erneut kompilieren. Tatsächlich ist das sogar der technisch beste Weg, denn Sie gehen damit einer ganzen Reihe von Problemen aus dem Weg. Nur ist diese Variante häufig nicht praktikabel.
7.4
7.4.1
Ihre neuen COM-Objekte an andere weitergeben
199
COM-Objekte direkt weitergeben
Der zweitbeste Weg ist deshalb, Ihr kompiliertes COM-Objekt weiterzugeben. Dieses COM-Objekt verbirgt sich in der OCX-Datei, die Sie mit der VB CCE angelegt haben. Kopieren Sie diese OCXDatei einfach in den System-Ordner auf dem Zielrechner, oder legen Sie es in einem anderen Ordner ab, der nicht gerade in den nächsten Tagen einer Löschaktion zum Opfer fällt. Damit Scripts Ihr neues COM-Objekt auch nutzen können, muß es zusätzlich registriert werden. Dazu wählen Sie im Startmenü des Zielrechners Ausführen und geben dann in der Befehlszeile ein: REGSVR32 Pfadname, wobei Sie Pfadname durch den Pfadnamen zu Ihrem COM-Objekt ersetzen. Allerdings gibt es eine Falle: Ihre eigenen COM-Objekte sprechen intern Visual Basic und sind auf die Runtime-Bibliothek von Visual Basic angewiesen. Wenn Sie also nicht genau wissen, ob sich die Runtime-Dateien von Visual Basic 5.0 auf dem Zielrechner befinden, dann müssen Sie sie ebenfalls weitergeben. Die Runtime-Dateien bekommen Sie zum Beispiel hier: support.microsoft.com/ support/vbasic/runtime.asp. Wählen Sie dann die Datei MSVBVM50.EXE.
7.4.2
Eigene Setup-Pakete schnüren
Sobald Ihre Projekte komplexer werden und Sie zum Beispiel zusätzliche Steuerelemente oder Referenzen zu anderen Objekten verwenden, wird es schwierig festzulegen, welche Dateien Ihr Projekt tatsächlich benötigt. In diesem Fall kann Ihnen der Application Setup Wizard helfen, den Sie in derselben Programmgruppe finden wie die VB CCE. Dieser Assistent will zuerst mit Ihrem Projekt gefüttert werden: Geben Sie die vbp-Datei an, in der Sie Ihr Projekt gespeichert haben. Anschließend ermittelt der Assistent, welche Dateien für Ihr COM-Objekt gebraucht werden, und schnürt daraus ein Paket. Sie können sich aussuchen, ob Sie dieses Paket per Disketten oder in einem einzelnen Ordner sammeln und dann weitergeben möchten.
Bild 7.16: Der Application Wizard bastelt für Sie Setup-Pakete zur Weitergabe an andere
200
Kapitel 7: Eigene Script-Befehlserweiterungen schreiben
Obwohl der Assistent auf den ersten Blick am elegantesten erscheint, birgt er doch etliche Tücken. So kann es Ihnen passieren, daß als Teil Ihres Pakets Objekte eingeschlossen werden, die auf dem Zielrechner bereits in einer neueren Version vorliegen. Unter Umständen werden also diese neueren Komponenten von Ihrem Setup-Paket überschrieben, und das Ergebnis sind dann Probleme. Solche Probleme sind vor allen Dingen bekannt geworden, wenn Sie auf dem Zielrechner den Internet Explorer 5 einsetzen und als Betriebssystem Windows NT verwenden. Leider gibt es keine Patentlösung für dieses Problem. Der professionellste – allerdings auch aufwendigste – Weg ist, auf dem Entwicklungssystem möglichst genau dieselben Komponenten zu verwenden wie auf den Zielsystemen. Planen Sie also, COM-Objekte für Windows NT-Benutzer mit IE5 zu entwickeln, dann setzen Sie selbst ebenfalls Windows NT mit IE5 ein. Weniger schön.
7.4.3
Empfehlungen aus der Praxis
Falls irgend möglich, sollten Sie COM-Objekte entweder via OCX-Datei und Runtime-Paket weitergeben oder sogar den Quellcode zusammen mit der VB CCE auf dem Zielrechner neu kompilieren. Visual Basic brilliert zwar durch seine leichte Anwendbarkeit, eignet sich aber nur schlecht, um die damit erstellten COM-Objekte universell weiterzugeben. Für kommerzielle Zwecke lohnt sich eher, auf C++ auszuweichen. Visual Basic ist in erster Linie für Ihre eigenen Entwicklungen auf dem persönlichen Rechner oder im überschaubaren Firmennetzwerk gedacht.
201
8
Programmier-Trickkiste
Sie wissen inzwischen, wie einfach Sie mit der kostenlosen VisualBasic Control Creation Edition (VB CCE) eigene Befehlserweiterungen für Ihre Scripts basteln. Daß diese Befehlserweiterungen weit mehr können als nur CD-Schubladen auf- und zuzuklappen, das beweist dieses Kapitel. Hier finden Sie fix und fertige Projekte zu allen Themen rund um Windows.
8.1
Befehlserweiterungen zum Leben erwecken
Um die Befehlserweiterungen live und in Farbe auszuprobieren, gehen Sie immer auf die gleiche Weise vor: 1. Öffnen Sie die VB CCE, die Sie wie in Kapitel 7 beschrieben installiert haben. Wählen Sie dann als Projekt ein ActiveX-Projekt, oder drücken Sie auf [Esc]. 2. Wählen Sie im File-Menü Open, und öffnen Sie dann auf der Buch-CD den Ordner mit dem Projekt, das Sie interessiert. Öffnen Sie dann das Projekt. 3. Um das Projekt zu kompilieren, wählen Sie im File-Menü Make und speichern die OCX-Datei dann in Ihrem Windows-Ordner. Fertig.
8.1.1
VBP-Projektdateien mit der VB CCE verknüpfen
Sie können die Projektdateien auch direkt von der CD-ROM aus öffnen. Dazu müssen Sie nur Dateien vom Typ VBP mit der VB CCE verknüpfen. Das geschieht so: 1. Klicken Sie mit der rechten Maustaste auf den Startknopf, und wählen Sie Suchen. 2. Ins Feld Name geben Sie ein: 5.0 CCE [Enter]. Die Programmverknüpfung mit der VB CCE wird gefunden. 3. Klicken Sie die Verknüpfung (nicht die Programmgruppe!) mit der rechten Maustaste an, und wählen Sie Eigenschaften. 4. Klicken Sie auf das Register Verknüpfung. Im Feld Ziel ist der Programmaufruf schon für Sie markiert. Klicken Sie mit der rechten Maustaste auf den markierten Text, und wählen Sie Kopieren. Dann schließen Sie alle Fenster. 5. Wechseln Sie nun im Explorer zur Buch-CD, und lassen Sie sich eine VBP-Datei heraussuchen. Öffnen Sie die Datei.
202
Kapitel 8: Programmier-Trickkiste
6. Weil bisher noch kein Programm für VBP-Dateien zuständig ist, öffnet sich das Öffnen mitFenster. Klicken Sie auf Andere, und klicken Sie dann mit der rechten Maustaste ins Feld Dateiname. Dort wählen Sie Einfügen. Dann klicken Sie auf Öffnen und OK. Fertig.
8.2
Anwendungen zuverlässig in den Vordergrund schalten
Vielleicht kennen Sie den Befehl SendKeys. Mit diesem Befehl versenden Sie Tastendrücke an jedes beliebige Programmfenster (mehr dazu finden Sie im Vorgängerband: Professional Series – Scripting Host Praxisbuch). Problematisch nur: SendKeys sendet »blind« an das Fenster, das im Vordergrund liegt, und Sie wissen weder, ob das gewünschte Fenster dort anzutreffen ist, noch haben Sie eine zuverlässige Möglichkeit, selbst ein Fenster in den Vordergrund zu schalten.
8.2.1
Umschaltsperre abschalten
Der Grund für dieses Malheur: Bei Windows 98 und 2000 gibt es neue eingebaute Hürden, die verhindern sollen, daß Programme einfach ihr Fenster in den Vordergrund schalten, obwohl Sie in einem anderen Fenster zu tun haben. Wenn Sie hier mit AppActivate versuchen, ein Fenster in den Vordergrund zu schalten, obwohl Ihr Script nicht die aktive Anwendung ist, dann blinkt bloß die Titelleiste des gewünschten Fensters heftig vor sich hin, aber das Fenster bewegt sich nicht von der Stelle. Schlecht, denn nun gehen die SendKeys-Tastendrücke an den falschen Empfänger. Das Projekt AppActivate liefert die nötigen fehlenden Befehle, um SendKeys endlich sinnvoll einsetzen zu können: Befehl
Bedeutung
GetActivation
Zeit in Millisekunden, die das aktive Programm unbenutzt sein muß, bevor andere Fenster in den Vordergrund geschaltet werden können Setzt den Grenzwert neu, zum Beispiel auf null Ersatz für AppActivate, falls Sie den WSH 1.0 verwenden ID-Nummer des Fensters im Vordergrund Name des Fensters im Vordergrund
SetActivation SwitchWindow GetActiveWindowHandle GetActiveWindowName
Tab. 8.1: Befehle des app.activate-Objekts
Das nächste Script beweist die neuen Vorzüge. Es findet heraus, wie das Fenster im Vordergrund heißt. Dann startet es ein neues Programm, merkt sich auch dessen Fensternamen und schaltet die Fenster munter fünfmal hintereinander jeweils in den Vordergrund. Damit das klappt, wird während der Umschaltaktion die Umschaltsperre deaktiviert. Das Umschaltintervall wird dazu einfach auf 0 Millisekunden gesetzt. Jetzt endlich kann SendKeys sicher und zuverlässig dazu benutzt werden, Programme fernzusteuern: set tool = CreateObject("app.activate") set wshshell = CreateObject("WScript.Shell")
8.3
Bildschirmfotos schießen
203
fenstermomentan = tool.GetActiveWindowName ’ Notepad starten wshshell.Run "notepad.exe" ’ warten, bis Fenster vorn liegt do loop until tool.GetActiveWindowNamefenstermomentan neuesfenster = tool.GetActiveWindowName ' jetzt ein bißchen protzen und die Fenster umschalten ' dazu die Umschaltsperre abschalten: intervall = tool.GetActivation tool.SetActivation(0) ' Umschalten: for x = 1 to 5 wshshell.AppActivate fenstermomentan WScript.Sleep 1000 wshshell.AppActivate neuesfenster WScript.Sleep 1000 next ' Sperre wieder aktivieren: tool.SetActivation(intervall)
8.3
Bildschirmfotos schießen
Bildschirm-Fotoapparate gibt es wie Sand am mehr, Windows hat sogar einen eingebauten Fotoapparat: mit [Druck] und [Alt]+[Druck] schicken Sie Erinnerungsfotos vom Bildschirm und von Fenstern direkt in die Zwischenablage, und von dort können Sie sie via Bearbeiten/Einfügen in jedes Programm einfügen. Auf diese Weise sind auch die Illustrationen zu diesem Buch entstanden. Nicht immer sind diese einfachen Methoden ausreichend. Manchmal wäre eine Art »Selbstauslöser« günstig, so daß Sie das betreffende Fenster in Ruhe in den Vordergrund schieben könnten. Interessant wäre auch die Möglichkeit, nur Teilbereiche eines Fensters zu knipsen. Die nächste Befehlserweiterug liefert all diese Möglichkeiten. Sie finden das Projekt als CAPTURE auf der Windows-CD. Hier die Möglichkeiten: Befehl
Bedeutung
CaptureScreenToClip CaptureScreenToFile CaptureActiveWindowToClip CaptureActiveWindowToFile CaptureWindowToFile
Foto des Bildschirms in Zwischenablage Foto des Bildschirms als BMP-Grafik speichern Aktives Fenster in Zwischenablage Aktives Fenster als BMP-Grafik speichern Beliebige Fenster-ID in Zwischenablage
204
Kapitel 8: Programmier-Trickkiste
Befehl
Bedeutung
CaptureWindowToClip CaptureCursorToClip CaptureCursorToFile
Beliebige Fenster-ID als BMP-Grafik speichern Fenster unter Cursor in Zwischenablage Fenster unter Cursor als BMP-Grafik speichern
Tab. 8.2: Befehle des OLE.bitmap-Objekts
Die Befehle haben dabei teils einen eingebauten Selbstauslöser. Wenn Sie mögen, dann probieren Sie doch mal das nächste Script aus! Es speichert genau 5 Sekunden nach dem Warnschuß das Fenster, das sich unter dem Cursor befindet. Sie werden überrascht feststellen: Damit lassen sich sogar Teilbereiche eines Fensters »herausklauen«, weil viele Fenster in Wirklichkeit aus einer ganzen Armada von Unterfenstern bestehen.
Bild 8.1: Klauen Sie sich Unterfenster aus Windows oder anderen Programmen heraus
»Zielen« Sie doch mal auf die Start-Schaltfläche oder Schaltflächen-Elemente in Ihren Programmen! ’ 8-2.vbs set tool = CreateObject("OLE.bitmap") set wshshell = CreateObject("WScript.Shell") datei = "C:\test.bmp" MsgBox "Cursor auf gewünschtes Fenster bringen! Foto 5 Sekunden nach OK!", vbSystemModal if tool.CaptureCursorToFile(5, datei) then MsgBox "Aufname im Kasten!", vbSystemModal wshshell.Run datei else MsgBox "Aufnahme hat nicht funktioniert." end if
8.4
8.4
Die Zwischenablage lesen und ändern
205
Die Zwischenablage lesen und ändern
Ihre Scripts hatten bisher ein enormes Manko: Sie konnten nicht die Zwischenablage lesen oder dort eigene Informationen hinterlegen. Das ist erstaunlich, denn das VBScript-Mutterschiff Visual Basic macht den Zugriff auf die Zwischenablage ganz einfach. Wie Sie zumindest Text aus der Zwischenablage lesen und dort auch hinterlegen können, zeigt die nächste sehr einfache Befehlserweiterung. Sie finden Sie auf der Buch-CD als CLIPBOARD. Befehl
Bedeutung
SetClipboardText GetClipboardText
Schreibt Text in die Zwischenablage Liest Text aus der Zwischenablage
Tab. 8.3: Befehle des clip.board-Objekts
Das nächste Script kann sehr nützlich werden: Ziehen Sie einfach Dateien auf das Script-Icon, und schon schreibt das Script den Namen der Datei in die Zwischenablage. Sowas eignet sich auch hervorragend für eigene Befehle in Kontextmenüs: ’ 8-3.vbs set tool = CreateObject("clip.board") set args = WScript.Arguments if args.Count>0 then tool.SetClipboardText args(0) MsgBox "Dateiname in Zwischenablage geschrieben." else MsgBox "Bitte ziehen Sie eine Datei auf mich!" end if
8.5
Echte Laufwerksgrößen – ohne 2 GB Bug!
Das Scripting.FileSystemObject lügt! Wenn Sie Festplattenpartitionen einsetzen, die größer sind als 2 GB, dann kann sich das etwas altertümliche Objekt nicht vorstellen, daß es so etwas wirklich gibt, und kürzt die Größe kurzerhand auf 2 GB. Das Ergebnis sind falsche Werte. Der Grund für diese Eigenmächtigkeit: Erst mit Einzug von Windows 95 OSR2 und dem FAT32Dateisystem wurden Partitionsgrößen von mehr als 2 GB überhaupt möglich, und deshalb gibt es intern zwei Größenbestimmungsmethoden. Der WSH nutzt die alte, weil er nicht wissen kann, ob Ihr Computer die neue Funktion schon unterstützt.
206
Kapitel 8: Programmier-Trickkiste
Bild 8.2: Endlich möglich: die korrekten Werte auch sehr großer Festplatten bestimmen
Die nächste Befehlserweiterung ist schlauer. Sie schaut nach, ob bei Ihnen Partitionen größer als 2 GB möglich sind, und verwendet dann die neue Methode. Andernfalls verwendet es die alte. So sind alle glücklich, und Sie erhalten auf jeden Fall exakte Werte. Das Projekt finden Sie als FILESYS auf der Buch-CD. Befehl
Beschreibung
TotalSize FreeSpace
Gesamtgröße einer Partition Freier Speicherplatz der Partition
Tab. 8.4: Befehle des filesystem.tool-Objekts
Und so finden Sie die Werte heraus: ’ 8-4.vbs set tool = CreateObject("filesystem.tool") MsgBox "Untersuche Laufwerk C:" MsgBox "Gesamtgröße: " & tool.TotalSize("C:\") MsgBox "Freier Platz: " & tool.FreeSpace("C:\") MsgBox "Gesamtgröße: " & _ FormatNumber(tool.TotalSize("C:\")/1024^2,1) & "MB" MsgBox "Freier Platz: " & _ FormatNumber(tool.FreeSpace("C:\")/1024^2,1) & " MB"
8.6
Auswahldialog für Ordner
Windows hat einige geheime Dialogfenster parat, an die es normalerweise niemanden heranläßt. Eins davon ist das Ordner-Auswahlfenster. Die nächste Befehlserweiterung macht es Ihren Scripts zugänglich. Das Projekt finden Sie als FOLDERPICKER auf der Buch-CD. Die Befehlserweiterung kennt nur einen Befehl: BrowseForFolder. Damit suchen Sie sich beliebige Ordner heraus: Ordnername = BrowseForFolder(Startordner[[, Nachricht], Flags])
8.6
Auswahldialog für Ordner
207
Bild 8.3: Ordnernamen aus dem Ordner-Dialogfenster lesen
So einfach picken Sie sich einen Ordner heraus: ’ 8-5.vbs set tool = CreateObject("Folder.Tools") MsgBox tool.BrowseForFolder("C:\", "Suchen Sie sich was aus!")
8.6.1
Flags verwenden – und sogar Dateien aussuchen!
Mit den Flags – einem optionalen Parameter – bieten sich noch mehr Möglichkeiten. Hier die komplette Liste: Flag
Beschreibung
1 2 4 8 16 32 64 80 4096 8192 16384 16592 32768
Nur Ordner des lokalen Dateisystems Keine Netzwerkordner unterhalb des Domänenlevels anzeigen Statustext wird angezeigt Nur Objekte des lokalen Dateisystems anzeigen (4.71) Eingabefeld anzeigen (4.71) Nur geprüfte Eingaben akzeptieren (5.0) Neues Design verwenden (5.0) Neues Benutzerinterface Nur Computer anzeigen Nur Drucker anzeigen (4.71) Dateien und Ordner anzeigen (5.0) Auch URLs anzeigen (5.0) Freigegebene Ressourcen lassen sich anzeigen
Tab. 8.5: Geheime Flags des Browser-Dialogs machen noch mehr möglich
208
Kapitel 8: Programmier-Trickkiste
Wollen Sie mit dem Dialogfenster zum Beispiel nicht nur Ordner sehen, sondern auch Dateien aussuchen, dann setzen Sie einfach das passende Flag ein:
Bild 8.4: Mit den richtigen Flags werden sogar Dateien sichtbar ’ 8-6.vbs set tool = CreateObject("Folder.Tools") MsgBox tool.BrowseForFolder("C:\", "Dateien!", 16384)
8.6.2
Virtuelle Ordner – Ihr Dialogfenster spielt mit
Anstelle eines echten Pfadnamens können Sie Ihrem Dialogfenster auch eine Codezahl mit auf den Weg geben. Darüber sprechen Sie die vielen virtuellen Windows-Ordner an. Das nächste Script zeigt zum Beispiel, wie Sie die Systemsteuerung sichtbar machen: ’ 8-7.vbs set tool = CreateObject("Folder.Tools") MsgBox tool.BrowseForFolder(3, "Suchen Sie sich was aus!", 16384)
Besonders sinnvoll ist das aber nicht, denn hinter den Modulen stecken keine echten Dateinamen, so daß Ihre Funktion auch nichts zurückzuliefern hat. Schon besser ist das nächste Script. Es öffnet Ihre persönlichen Programmgruppen und läßt Sie ein Programm aussuchen. Das wird auf Wunsch sofort gestartet. ’ 8-8.vbs set tool = CreateObject("Folder.Tools") set wshshell = CreateObject("WScript.Shell") prg = tool.BrowseForFolder(2, "Programm starten!", 16384) ' ist es eine Verknüpfung? if lcase(right(prg,3))="lnk" then
8.6
Auswahldialog für Ordner
209
set scut = wshshell.CreateShortcut(prg) prg = scut.TargetPath end if wshshell.Run """" & prg & """"
Bild 8.5: Elegant Programme per Auswahldialog starten
Elegant, oder? Zwei spezielle Dinge zeigt das Script: Erstens müssen Verknüpfungen (die Dateien mit der Endung »lnk«) zuerst aufgeschraubt werden. Über CreateShortcut läßt sich in sie hineinschauen, um mit TargetPath festzustellen, auf welches »echte« Programm die Verknüpfung überhaupt verweist. Und zweitens verlangt Run den Befehl in Anführungszeichen. Zwei Anführungszeichen verschmelzen innerhalb von Anführungszeichen zu einem echten, daher die Inflation. Andererseits kann Run Verknüpfungen auch selbst auflösen, und Anführungszeichen lassen sich auch anders darstellen. Hier die Alternative: ’ 8-9.vbs set tool = CreateObject("Folder.Tools") set wshshell = CreateObject("WScript.Shell") prg = tool.BrowseForFolder(2, "Programm starten!", 16384) wshshell.Run chr(34) & prg & chr(34)
Hier die vollständige Übersicht über alle virtuellen Ordner: Konstante
Virtueller Ordner
ssfALTSTARTUP = 29 SsfAPPDATA = 26 SsfBITBUCKET = 10 ssfCOMMONALTSTARTUP = 30 ssfCOMMONAPPDATA = 35 ssfCOMMONDESKTOPDIR = 25
Alternative Autostartgruppe Anwendungsdaten Papierkorb Alternative Autostartgruppe für alle Benutzer Anwendungsdaten für alle Benutzer Desktopordner für alle Benutzer
210
Kapitel 8: Programmier-Trickkiste
Konstante
Virtueller Ordner
ssfCOMMONFAVORITES = 31 ssfCOMMONPROGRAMS = 23 ssfCOMMONSTARTMENU = 22 ssfCOMMONSTARTUP = 24 SsfCONTROLS = 3 ssfCOOKIES = 33 SsfDESKTOP = 0 ssfDESKTOPDIRECTORY = 16 ssfDRIVES = 17 SsfFAVORITES = 6 ssfFONTS = 20 ssfHISTORY = 34 ssfINTERNETCACHE = 32 ssfLOCALAPPDATA = 28 SsfMYPICTURES = 39 SsfNETHOOD = 19 SsfNETWORK = 18 SsfPERSONAL = 5 SsfPRINTERS = 4 SsfPRINTHOOD = 27 SsfPROFILE = 40 ssfPROGRAMFILES = 38 ssfPROGRAMFILESx86 = 48 SsfPROGRAMS = 2 SsfRECENT = 8 SsfSENDTO = 9 SsfSTARTMENU = 11 SsfSTARTUP = 7 SsfSYSTEM = 37 SsfSYSTEMx86 = 41 SsfTEMPLATES = 21 SsfWINDOWS = 36
Favoriten für alle Benutzer Programme für alle Benutzer Startmenüobjekte für alle Benutzer Autostart für alle Benutzer Systemsteuerung Internet-Cookies Desktop Desktop-Ordner mit den persönlichen Dateien des Desktops Arbeitsplatz Favoriten-Ordner Schriftarten Verlauf-Ordner des Internet Explorers Internetpuffer (5.0) Lokale Applikationsdaten (5.0) Meine Bilder Eigene Objekte in der Netzwerkumgebung Netzwerkumgebung Eigene Dateien Drucker Eigene Objekte im Drucker-Fenster Profile-Ordner Programmdateien (5.0) Programmdateien für Intel-Prozessoren Programme-Menü im Startmenü Dokumente-Menü im Startmenü Senden an-Menü Wurzelverzeichnis des Startmenüs Autostart-Ordner Systemordner Systemordner Intel Dokumentvorlagen Windows-Ordner
Tab. 8.6: Codezahlen der virtuellen Ordner
8.7
Icons verwalten – das Icon-Dialogfenster
Ein weiteres »geheimes« Dialogfenster ist das Auswahlfenster für Icons. Eine offizielle Funktion, um dieses Dialogfenster aufzurufen, werden Sie vergeblich suchen. So ist das nächste Projekt ein Paradebeispiel dafür, wie Sie undokumentierte API-Funktionen verwenden. Das Projekt finden Sie auf der Buch-CD unter dem Namen ICONPICK.
8.7
Icons verwalten – das Icon-Dialogfenster
Befehl
Bedeutung
PickIcon CountIcons IsWin2000
Ruft das Icon-Auswahlfenster auf Ermittelt, wie viele Icons in einer Datei schlummern Helferfunktion, die mitteilt, ob Ihr Betriebssystem Windows 2000 ist
211
Tab. 8.7: Befehle des iconpicker.tool-Objekts
8.7.1
Nach Icons suchen
Das folgende Script durchsucht den Windows-Ordner und öffnet das Icon-Auswahlfenster für alle Dateien, in denen mindestens 5 Icons enthalten sind.
Bild 8.6: Undokumentierte Dialogfenster liefern sogar Icons
Das Script meldet zurück, welches Icon sich der Benutzer ausgesucht hat: ’ 8-10.vbs set fs = CreateObject("Scripting.FileSystemObject") set tool = CreateObject("iconpicker.tool") ' Systemordner öffnen set winfolder = fs.GetSpecialFolder(1) ' alle Dateien durchsuchen for each file in winfolder.files ' wieviel Icons sind in Datei? iconcount = tool.CountIcons(file.path) ' mindestens 5? if iconcount>=5 then ' ja, Inhalt anzeigen selection = tool.PickIcon(file.path) msg = "Ihre Wahl: " & selection & vbCr
212
Kapitel 8: Programmier-Trickkiste
msg = msg & "Weitersuchen?" antwort = MsgBox(msg,vbYesNo) if antwort = vbNo then exit for end if next MsgBox "Fertig!"
8.7.2
Icon-Liste anlegen
Sie könnten sich mit nur kleinen Änderungen auch eine übersichtliche Liste aller Dateien ausgeben lassen, die Icons enthalten: ’ 8-11.vbs set fs = CreateObject("Scripting.FileSystemObject") set tool = CreateObject("iconpicker.tool") ’ ausgabedatei anlegen ausgabe = "c:\icons.txt" set info = fs.CreateTextFile(ausgabe, true) ' Systemordner öffnen set winfolder = fs.GetSpecialFolder(1) MsgBox "Suche jetzt nach Icon-Dateien!" ' alle Dateien durchsuchen for each file in winfolder.files ' wieviel Icons sind in Datei? iconcount = tool.CountIcons(file.path) ' mindestens 5? if iconcount>0 then info.WriteLine file.path & " enthält " & iconcount _ & " Icons" end if next info.close ' Datei öffnen set wshshell = CreateObject("WScript.Shell") wshshell.Run """" & ausgabe & """"
8.8
Icons konvertieren und verändern
213
Bild 8.7: Scripts suchen alle interessanten Icon-Dateien heraus
8.8
Icons konvertieren und verändern
Mit Icons läßt sich natürlich wesentlich mehr anfangen. Das nächste Projekt bietet zusätzlich eine Reihe von Funktionen, um Icons zum Beispiel in BMP-Grafiken zu verwandeln und Icon-Einstellungen des Systems zu verändern. Sie finden das Projekt auf der Buch-CD unter dem Namen ICONHANDLER. Befehl
Beschreibung
FlushIconCache RefreshWindowMetrics GetIconNumber PickIcon LoadIcon IconToClip IconToFile RefreshDesktop Delay Version RegWrite
Aktualisiert den internen Windows-Cache für Icons Aktualisiert die Registry-Einstellungen für Desktop-Werte Ermittelt die Anzahl von Icons in einer Datei Öffnet das Auswahlfenster für Icons Lädt ein Icon aus einer Datei Kopiert das geladene Icon in die Zwischenablage Kopiert das geladene Icon in eine Datei Aktualisiert die Icons auf dem Desktop Hält die Scriptausführung für x Sekunden an Ermittelt die Version des Betriebssystems Schreibt einen Wert in die Windows-Registry
Tab. 8.8: Befehle des icon.handler-Objekts
214
Kapitel 8: Programmier-Trickkiste
Mit diesem »Waffenarsenal« ausgerüstet, können Sie verblüffende Dinge anstellen. Schauen Sie sich zuerst an, wie einfach Sie Icons auswählen und dann als Bitmap-Grafik speichern: ’ 8-12.vbs set fs = CreateObject("Scripting.FileSystemObject") set tool = CreateObject("icon.handler") iconfile = "C:\icon.bmp" ' Systemordner öffnen set winfolder = fs.GetSpecialFolder(1) ' alle Dateien durchsuchen for each file in winfolder.files ' wieviel Icons sind in Datei? iconcount = tool.GetIconNumber(file.path) ' mindestens 5? if iconcount>=5 then ' ja, Inhalt anzeigen selection = tool.PickIcon(file.path) if selection "" then ' Ein Icon wurde ausgewählt pos = Instr(selection, ",") iconpfad = left(selection, pos-1) index = mid(selection, pos+1) tool.LoadIcon iconpfad, index tool.IconToFile iconfile exit for else antwort = MsgBox("Sie haben kein Icon ausgesucht. Nochmal?", vbYesNo) if antwort = vbNo then exit for end if end if next if not selection = "" then ' Icon öffnen set wshshell = CreateObject("WScript.Shell") wshshell.Run """" & iconfile & """" else MsgBox "Sie haben kein Icon ausgesucht!" end if
Das Script bietet Ihnen so lange Icons an, bis Sie sich eins ausgesucht haben oder auf Nein klicken. Haben Sie sich ein Icon ausgesucht, dann extrahiert das Script das Icon aus der Icondatei und speichert es als BMP-Grafik. Anschließend wird diese Datei geöffnet und zeigt Ihnen das Icon. Sie könnten es nun für eigene Projekte weiterverwenden.
8.8
Icons konvertieren und verändern
215
Bild 8.8: Icons extrahieren und in Grafikprogrammen weiterbearbeiten
8.8.1
System-Icons verändern
Mit den neuen Befehlen Ihres Projekts können Sie sogar System-Icons verändern. Vielleicht wollen Sie den langweiligen gelben Ordnern ein anderes Icon verpassen. Das nächste Script erlaubt Ihnen zunächst wieder, ein Icon auszusuchen.
Bild 8.9: System-Icons durch andere Icons ersetzen lassen
216
Kapitel 8: Programmier-Trickkiste
Anschließend setzt das Script dieses Icon als neues Ordner-Icon und erledigt sogar alle nötigen Aktualisierungsprozesse. Ohne lästigen Neustart wird das neue Icon sofort sichtbar. ’ 8-13.vbs set fs = CreateObject("Scripting.FileSystemObject") set tool = CreateObject("icon.handler") iconfile = "C:\icon.bmp" ' Systemordner öffnen set winfolder = fs.GetSpecialFolder(1) ' alle Dateien durchsuchen for each file in winfolder.files ' wieviel Icons sind in Datei? iconcount = tool.GetIconNumber(file.path) ' mindestens 5? if iconcount>=5 then ' ja, Inhalt anzeigen selection = tool.PickIcon(file.path) if selection "" then ' Ein Icon wurde ausgewählt ' als neues Ordnericon setzen key = "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons\3" tool.RegWrite key, selection tool.FlushIconCache exit for else antwort = MsgBox("Sie haben kein Icon ausgesucht. Nochmal?", vbYesNo) if antwort = vbNo then exit for end if end if next if not selection = "" then MsgBox "Neues Icon wurde aktiviert!" else MsgBox "Sie haben kein Icon ausgesucht!" end if
8.9
Noch ein undokumentiertes Fenster: Disk-Formatierung
217
Bild 8.10: Tatsächlich: Ordner-Icons bekommen Ihr neues Icon aufgestülpt
Wollen Sie das alte Standard-Icon zurückhaben? Dann verwenden Sie dieses Script: ’ 8-14.vbs set tool = CreateObject("icon.handler") set wshshell = CreateObject("WScript.Shell") key = "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons\3" wshshell.RegDelete key tool.FlushIconCache MsgBox "Altes Ordnersymbol wiederhergestellt!"
Tip: Andere System-Icons und das Startmenü umdressieren Auch alle anderen System-Icons lassen sich auf diese Weise umdressieren. Verwenden Sie anstelle des Codes 3 in diesem Fall den Code des betreffenden Icons. Diesen Code können Sie auf zwei Arten herausfinden: Entweder raten Sie einfach und schauen, was passiert. Oder Sie schauen sich die Icons in der Datei SHELL32.DLL an. Ihre Reihenfolge entspricht den Codezahlen, die Sie verwenden müssen.
Es würde zu weit führen, noch mehr Icon-Spielereien vorzuführen. Nur so viel: Mit den Funktionen Ihres neuen Projekts können Sie sogar individuell einzelnen Ordnern bessere Icons zuschanzen. Wie das im einzelnen funktioniert und welche Rolle dabei die geheime Datei DESKTOP.INI spielt, wurde bereits ausführlich im Vorgängerband beschrieben (Franzis’: Professional Series – Scripting Host Praxisbuch).
8.9
Noch ein undokumentiertes Fenster: Disk-Formatierung
Und noch ein undokumentiertes Dialogfenster können Ihre Scripts einsetzen: das Dialogfenster zur Formatierung von Laufwerken. Auch dieses Fenster kann nur über undokumentierte geheime API-Funktionen auf den Plan gerufen werden.
218
Kapitel 8: Programmier-Trickkiste
Wenn Sie also scriptgesteuert Laufwerke formatieren müssen, dann schauen Sie sich auf der BuchCD das Projekt FORMAT näher an. Darin schlummert nur eine einzige Funktion: Format.
Bild 8.11: Das Formatierungsfenster kann per Script gezückt werden
Wie Sie zum Beispiel das Diskettenlaufwerk A: mit Hilfe der neuen Funktion formatieren, zeigt das nächste Script: ’ 8-15.vbs set tool = CreateObject("format.tool") tool.Format "A:\" MsgBox "Fertig!"
Aus Sicherheitsgründen können Sie mit der neuen Funktion keine Festplatten formatieren. Wollen Sie das doch, dann geben Sie als dritten Parameter false ein. Das schaltet den eingebauten Wachhund ab. Setzen Sie als zweiten Parameter true, dann wird mit QuickFormat formatiert, und setzen Sie false, dann wird komplett formatiert. Die Formatierung geht allerdings nicht sofort los, sondern erst wenn Sie die entsprechende Schaltfläche anklicken. Wollen Sie diese Hürde umgehen, dann setzen Sie zum Beispiel SendKeys ein, um die Taste automatisch zu drücken.
8.10
Ganz eigene Dialogfenster entwerfen
Wie leicht Sie mit der VB CCE eigene Dialogfenster entwerfen, zeigt das nächste Projekt. Sie finden es auf der Buch-CD im Ordner INPUTBOX.
8.11
Internet-Zugang automatisieren
219
Bild 8.12: Selbstgemachte Eingabefenster
Dieses Projekt simuliert die InputBox-Funktion, gibt Ihnen aber mehr Platz für die Eingabe. Außerdem kann die Titelleiste des Fensters auf Wunsch ausgeblendet werden. Hier ein Beispiel: ’ 8-16.vbs set tool = CreateObject("dialog.test") tool.Label = "Dies ist mein Label!" tool.Frame = "Rahmentitel" tool.Default = "Vorgabe" ergebnis = tool.ShowWindow("Meine Frage: wie heißen Sie?", _ "Fragefenster") Msgbox "Guten Tag, " & ergebnis ergebnis = tool.ShowWindow("Diesmal ohne Titelleiste!", "") MsgBox ergebnis
8.11
Internet-Zugang automatisieren
Ihre Scripts können sogar Internet-Operationen vollautomatisch durchführen. Vorausgesetzt, Sie haben einen Internetzugang eingerichtet, kann Ihr Script ab sofort Internetverbindungen automatisch herstellen und auch wieder abbauen. Allein mit Windows-Bordmitteln übertragen Sie sogar Dateien per FTP ins Internet und laden Dateien aus dem Internet auf Ihren Rechner. Sie finden das Projekt auf der Buch-CD unter dem Namen INTERNET. Hier zunächst die neuen Befehle: Befehl
Beschreibung
ConnectInternet DisconnectInternet ConnectionState OpenInternet Connect GetFile PutFile
Stellt die Verbindung zum Internet her Unterbricht die Verbindung zum Internet Liefert den Status der Internetverbindung Öffnet eine Internet-Verbindung (zum Beispiel FTP) Verbindet das Script mit einem Server Lädt eine Datei aus dem Internet per FTP herunter Lädt eine lokale Datei per FTP auf einen Webserver
220
Kapitel 8: Programmier-Trickkiste
Befehl
Beschreibung
CloseHandle DeleteFile GetLastError GetLastErrorNumber ChDir GetDir MakeDir GetExtendedError Dir FriendlyDir RenameFile RemoveDir HostByAddress HostByName WinsockInit WinsockQuit Translate ConnectFTP CloseInternet
Schließt eine aktive Internetverbindung, ohne den Zugang zu trennen Löscht eine Datei auf einem Webserver Liefert letzte Fehlermeldung Liefert Code des letzten Fehlers Wechselt in ein FTP-Verzeichnis Holt ein FTP-Ordnerverzeichnis Legt einen neuen Ordner auf dem Webserver an Liefert eine weitergehende Fehlermeldung Listet den Inhalt eines FTP-Ordners Listet den Inhalt eines FTP-Ordners formatiert (Klartext) Benennt eine FTP-Datei um Löscht einen FTP-Ordner Liefert den Hostnamen einer IP-Adresse Liefert die IP-Adresse eines Hosts Öffnet eine Winsock-Verbindung Schließt eine Winsock-Verbindung Wandelt eine Fehlernummer in eine Fehlerbeschreibung um Stellt eine FTP-Verbindung zu einem Server her Beendet den aktuellen Zugriff auf das Internet
Tab. 8.9: Befehle des internet.communication-Objekts
8.11.1 Internetverbindungen herstellen und abbauen Das folgende Script demonstriert, wie Sie mit Ihren neuen Befehlen automatisch eine Internetverbindung herstellen, eine Seite downloaden und danach die Telefonverbindung wieder kappen: ’ 8-17.vbs set tool = CreateObject("internet.communication") set ie = CreateObject("InternetExplorer.Application") url = "www.microsoft.com/" ’ automatisch verbinden if tool.ConnectInternet then ie.navigate url do loop until ie.ReadyState=4 ie.visible = true if not tool.DisconnectInternet then MsgBox "Verbindung ließ sich nicht schließen!" end if else MsgBox "Verbindung nicht möglich – ist Modem aktiv?" end if
8.11
Internet-Zugang automatisieren
221
8.11.2 Zugriff auf FTP-Verzeichnisse Wie leicht Ihre Scripts ab sofort FTP-Verzeichnisse im Inter- und Intranet erreichen, zeigt das nächste Script.
Bild 8.13: Automatisch erstellt: FTP-Verzeichnislisting eines Internet-Servers
Es verbindet sich mit einem FTP-Server und zeigt den Inhalt darauf an: ’ 8-18.vbs set tool = CreateObject("internet.communication") ftpdir = "ftp.microsoft.com" ’ automatisch verbinden if tool.ConnectInternet then ’ open FTP server handle = tool.ConnectFTP(ftpdir) dirlist = tool.Dir(handle) ’ verbindung schliessen tool.CloseHandle handle tool.DisconnectInternet ’ FTP Verzeichnis anzeigen MsgBox dirlist, vbInformation else MsgBox "Verbindung gescheitert. Ist Modem aktiv?" end if
8.11.3 Dateien per FTP herunterladen Das FTP-Listing allein nützt nicht viel. Das nächste Script zeigt, wie Sie sich eine Datei von einem FTP-Server herunterladen:
222
Kapitel 8: Programmier-Trickkiste
Bild 8.14: Automatisch heruntergeladene FTP-Datei ’ 8-19.vbs set tool = CreateObject("internet.communication") ftpdir = "ftp.microsoft.com" ftpfile = "disclaimer.txt" newfile = "C:\msdisc.txt" if tool.ConnectInternet then handle = tool.ConnectFTP(ftpdir) ok = tool.GetFile(handle, ftpfile, newfile) tool.CloseHandle handle tool.DisconnectInternet if ok then MsgBox "Datei geladen und gespeichert als """ _ & newfile & """" set wshshell = CreateObject("WScript.Shell") wshshell.Run """" & newfile & """" else MsgBox "Download error: " & tool.GetLastError end if else MsgBox "Verbindung gescheitert: ist Modem aktiv?" end if
8.11.4 Lokale Webseiten auf den Webserver hochladen Vielleicht kennen Sie das Problem: Sie entwickeln Ihre Homepage auf dem lokalen Rechner und wollen die Site irgendwann auf den echten Webserver hochladen. Diese Aufgabe kann das nächste Script übernehmen. Es lädt automatisch nicht nur einen lokalen Ordner samt Unterordner auf
8.11
Internet-Zugang automatisieren
223
einen beliebigen Webserver, sondern es wendet zusätzlich Intelligenz an! Das Script prüft zuerst, welche Dateien auf dem Webserver fehlen oder veraltet sind und lädt nur die wirklich neuen Dateien auf den Webserver. Selbst wenn Sie also nächste Woche noch etwas an Ihrer Website feilen, brauchen Sie Ihr Script nur erneut aufzurufen, um die Website auf dem echten Webserver auf neuesten Stand zu bringen. Anders als bei den meisten FTP-Tools werden dabei nicht wieder alle Dateien übertragen, sondern nur die, an denen Sie wirklich geschraubt haben. ’ 8-20.vbs set args = WScript.Arguments if args.Count=0 then dirname = InputBox("Lokaler Ordnerpfad?") else dirname = args(0) end if set fs = CreateObject("Scripting.FileSystemObject") set tool = CreateObject("internet.communication") ’ existiert der angegebene Ordner? if not fs.FolderExists(dirname) then ’ no, quit! MsgBox "Ordner """ & dirname & """ nicht vorhanden!" WScript.Quit end if ’ FTP-Ziel definieren ftpdir = InputBox("Basisverzeichnis der Website?") username = InputBox("Benutzername?") password = InputBox("Kennwort?") ’ Unterordner ermitteln if right(ftpdir,1)="/" then ftpdir = left(ftpdir, len(ftpdir)-1) pos = Instr(ftpdir, "/") if pos = 0 then subfolderpath = "" else subfolderpath = mid(ftpdir, pos) end if ’ Resultate notieren: logfile = "C:\ftplog.txt" ’ Transfervolumen berechnen: transfer = 0 ’ Logdatei anlegen: set reportfile = fs.CreateTextFile(logfile, true) ’ Synchronisieren:
224
Kapitel 8: Programmier-Trickkiste
if tool.ConnectInternet then starttime = time Report "CONNECT automatically to Internet" on error resume next handle = tool.ConnectFTP(ftpdir, username, password) if not err.number=0 then Report "Error accessing server: " & tool.GetLastError Reportfile.close Showreport WScript.Quit end if Report "ACCESS GRANTED to FTP Server " & ftpdir Synchronize dirname, subfolderpath tool.CloseHandle handle Report "CLOSED FTP connection" if MsgBox("Verbindung beenden?", vBYesNo) = vbYes then tool.DisconnectInternet Report "DISCONNECT Internet Connection" end if ’ Statistik berechnen: duration = DateDiff("s", starttime, time) transferKB = FormatNumber(transfer/1024,1) speed = FormatNumber((transfer/duration)/1024,2) Report duration & " secs online, " & transferKB _ & " KB transferred, " & speed & " KB/s." else MsgBox "Verbindung gescheitert. Ist Modem aktiv?" Report "Error: Unable to establish Internet connection" end if reportfile.close ShowReport sub Synchronize(local, web) ' Lokalen Ordner öffnen set folder = fs.GetFolder(local) ' Dictionary für Web-Dateien set dict = CreateObject("Scripting.Dictionary") ' Groß- und Kleinschreibung nicht beachten dict.CompareMode = 1 ' Webordner auflisten tool.ChDir handle, "/" & web dirraw = tool.Dir(handle) dirlist = Split(dirraw, vbCrLf)
8.11
Internet-Zugang automatisieren
’ alle Dateien einzeln kontrollieren for each entry in dirlist entryinfo = Split(entry, vbTab) ’ ist Eintrag eine Datei? if (Fix(entryinfo(3)) and 16)=0 then ' ja, Datum der letzten Änderung merken dict.Add entryinfo(0), entryinfo(1) end if next if web = "" then fill = "" else fill = "/" end if ' Alle lokalen Dateien prüfen for each file in folder.files ' auf Webserver vorhanden? if dict.Exists(file.name) then ' ja, Datum der letzten Änderung merken timestamp = dict.Item(file.name) filetime = GetFileTime(file) if CDate(timestamp)10 then MsgBox "Lösch-Fehler: " & name WScript.quit end if WScript.Sleep 1000 loop else MsgBox "Kann nicht speichern..." WScript.Quit end if
8.14 end MCI MCI MCI MCI
Speicherhaushalt genau beobachten
239
if "open cdaudio" "set cdaudio time format tmsf" "status cdaudio position track " & track "set cdaudio time format milliseconds"
call tool.QueryMCIString("status cdaudio length track " _ & track & " wait", result) song = CLng(result) msg = "Selected track is " & FormatNumber(song/1000,1) _ & " sec." & vbCr msg = msg & "Dauer der Aufnahme in Millisekunden?" limit = Ask(msg,song) MCI "open new type waveaudio alias capture" MCI "set cdaudio time format tmsf" MCI "play cdaudio from " & track & " to " & track+1 MCI "record capture" WScript.Sleep limit MCI "save capture " & name MCI "stop cdaudio" MCI "close cdaudio" end sub sub MCI(command) if not tool.SendMCIString(command, errormsg) then msg = command & vbCr & errormsg & vbCr & "Continue?" response = MsgBox(msg, vbYesNo + vbCritical) if response = vbNo then WScript.Quit end if end sub function Ask(question, default) Ask = InputBox(question,,default) if Ask=vbEmpty or not isNumeric(Ask) then MsgBox "Invalid entry." WScript.Quit end if Ask = Fix(Ask) end function
8.14
Speicherhaushalt genau beobachten
API-Funktionen liefern Ihren Scripts ein genaues Bild über die derzeitige Speicherauslastung Ihres Systems. Das Projekt MEMORY beschert Ihnen die dafür nötigen Funktionen:
240
Kapitel 8: Programmier-Trickkiste
Bild 8.21: Finden Sie heraus, wieviel »Luft« Ihr System noch hat
Befehl
Beschreibung
GetMemory Mem_virt_avail Mem_virt_total Mem_page_avail Mem_page_total Mem_phys_avail Mem_phys_total Mem_load
Speicherstatistik Virtueller Speicher verfügbar Virtueller Speicher gesamt Auslagerungsspeicher verfügbar Auslagerungsspeicher gesamt Echter Speicher verfügbar Echter Speicher gesamt Speicherauslastung des Systems
Tab. 8.12: Befehle des memory.stats-Objekts
Das nächste Script zeigt alle Informationen in der Übersicht: ’ 8-36.vbs set tool = CreateObject("memory.stats") MsgBox tool.GetMemory
8.15
Verschiedene nützliche Systeminformationen
Das Projekt MISCINFO liefert weitere nützliche Systeminformationen. Schauen Sie sich den Quellcode an, darin sind die Info-Konstanten für alle Systeminformationen enthalten, nach denen Sie fragen können. Hier eine Übersicht der neuen Befehle: Befehl
Beschreibung
MetricsInformation GetProcessorType GetProcessorNumber GetProcessor CurrentProfile ComputerName IsNT EnumFonts
Liefert allgemeine Informationen zu verschiedenen Kategorien Art der CPU Anzahl der CPUs CPU-Information Aktuelles Profil Name des Computers im Netzwerk True, wenn OS Windows NT/2000 ist Liste der installierten Schriftarten
Tab. 8.13: Befehle des misc.Information-Objekts
8.16
Echte unabhängige Dialogfenster generieren
241
8.15.1 Liste der installierten Schriften Wollen Sie zum Beispiel die Liste der installierten Schriften sehen, dann verwenden Sie das nächste Script: ’ 8-37.vbs set tool = CreateObject("misc.information") MsgBox tool.EnumFonts
8.16
Echte unabhängige Dialogfenster generieren
Wer tief in die Trickkiste greift, kann mit der kostenlosen VB CCE etwas generieren, was eigentlich gar nicht geht: nichtmodale Fenster. Normalerweise kann die VB CCE nur modale Fenster erzeugen, Fenster also, die Ihr Script anhalten, solange sie sichtbar sind. Über Events ziehen Sie sich allerdings aus der Affäre. Der Trick: Sie zeigen ein modales Fenster an – Ihr Script ist gestoppt – und dann geben Sie die Kontrolle per Event zurück an Ihr Script. Die entsprechende Befehlserweiterung, die nebenbei viel Eventhandling zeigt, finden Sie im Projekt MODELESS. Das nächste Script durchsucht rekursiv das gesamte Dateisystem und bastelt daraus eine Dateiliste. Dieser Vorgang dauert normalerweise ewig, und der Scriptbenutzer weiß in dieser Zeit nicht, was eigentlich passiert. Dank Ihres neuen Statusfensters können Sie ab sofort detaillierte Statusberichte ausgeben und erlauben dem Scriptbenutzer sogar, die langwierige Operation jederzeit abzubrechen. Endlich! ’ 8-38.vbs set fs = CreateObject("Scripting.FileSystemObject") ’ create COM reference and catch events: set tool = WScript.CreateObject("modeless.dialog", "event_") list = "" quit = false tool.WriteDialog "Los gehts..." ' Fenster ist jetzt MODAL, Script hält an tool.ShowDialog ' Hier wird fortgesetzt, sobald Fenster geschlossen wird. MsgBox list sub event_WakeUp ' Event wird abgefeuert, sobald Fenster sichtbar wird ' Script tut etwas, OBWOHL Fenster sichtbar ist ShowFiles fs.GetFolder("C:\") ' Zum Schluß UNBEDINGT MsgBox aufrufen, damit Fensterhandle
242
Kapitel 8: Programmier-Trickkiste ’ nicht durcheinanderkommt MsgBox "Fertig!"
tool.CloseDialog end sub sub event_QuitNow ’ Event feuert, wenn Abbrechen geklickt wird quit = true end sub sub ShowFiles(dirobj) ’ wurde abgebrochen? Dann nicht weitermachen... if quit then exit sub for each file in dirobj.files ’ Statusinfo ins Fenster schreiben tool.WriteDialog dirobj.path & vbCr & _ dirobj.files.count & " Dateien..." _ & vbCr & file.name list = list & file.path & vbCr ' Wichtig: HandleEvent häufig aufrufen, ' damit Fenster noch auf ' Mausklicks reagiert! tool.HandleEvent if quit then exit sub next for each subfolder in dirobj.subfolders ShowFiles subfolder next end sub
Bild 8.22: Im laufenden Betrieb Statusinformationen ans Fenster geben
8.16.1 Dialogfenster mit Fortschrittsanzeige Ihr Script kann aber noch viel mehr. Weil Sie nun frei sind, in Ihrem Dialogfenster alle nur denkbaren Anzeigeobjekte zu verwenden, habe ich mir gestattet, für Sie eine Fortschrittsanzeige einzubauen.
8.16
Echte unabhängige Dialogfenster generieren
Bild 8.23: Luxuriös: Statusanzeige mit eingebautem Fortschrittsbalken
So wird die Sache zum Leben erweckt: ’ 8-39.vbs set fs = CreateObject("Scripting.FileSystemObject") set tool = WScript.CreateObject("modeless.dialog", "event_") list = "" quit = false tool.WriteDialog "Los gehts..." tool.ShowProgressDialog MsgBox list sub event_WakeUp ShowFiles fs.GetFolder("C:\") MsgBox "Close Down" tool.CloseDialog end sub sub event_QuitNow quit = true end sub sub ShowFiles(dirobj) if quit then exit sub counter = 0 filecount = dirobj.files.count for each file in dirobj.files counter = counter + 1 tool.WriteDialog dirobj.path & vbCr _ & filecount & " Dateien..." _ & vbCr & file.name ’ Prozent ausrechnen percent = Fix(counter * 100/filecount) ’ Anzeige aktualisieren tool.SetProgress percent list = list & file.path & vbCr tool.HandleEvent if quit then exit sub
243
244
Kapitel 8: Programmier-Trickkiste
next for each subfolder in dirobj.subfolders ShowFiles subfolder next end sub
8.17
NT-Service-Dienste verwalten
In Kapitel 10 haben Sie vielleicht bereits einen Weg kennengelernt, um die Services eines Windows NT/2000 Computers via ADSI zu steuern. So konnten Sie zum Beispiel ferngesteuert den WebserverDienst starten oder pausieren lassen. Was aber, wenn Sie keine Lust auf ADSI haben? Dann setzen Sie die Windows-API ein! Ich habe für Sie auf der Buch-CD ein Projekt namens NTSERVICE vorbereitet. Befehl
Bedeutung
GetServiceInfo ServiceStatus ServiceStart ServiceStop
Ermittelt Informationen über Dienste Ermittelt Zustand des Dienstes Startet den Dienst Stoppt den Dienst
Tab. 8.14: Befehle des nt.Services-Objekts
8.17.1 Zustandsbericht aller Dienste So einfach kann Ihr Script nun den Status der Dienste auf Ihrem lokalen Computer oder jedem anderen Computer im Netzwerk erfahren: ’ 8-40.vbs Const SERVICE_ACTIVE = 1 Const SERVICE_INACTIVE = 2 Const SERVICE_ACTIVEINACTIVE = 3 Const SERVICE_DRIVER = 15 Const SERVICE_WIN32 = 48 set tool = CreateObject("nt.services") text = "Aktiv: " & vbCr MsgBox text & tool.GetServiceInfo(SERVICE_ACTIVE, SERVICE_DRIVER) text = "Inaktiv: " & vbCr MsgBox text & tool.GetServiceInfo(SERVICE_INACTIVE, _ SERVICE_DRIVER) text = "Aktiv Win32: " & vbCr MsgBox text & tool.GetServiceInfo(SERVICE_ACTIVE, SERVICE_WIN32) text = "Inaktiv Win32: " & vbCr MsgBox text & tool.GetServiceInfo(SERVICE_INACTIVE, _ SERVICE_WIN32)
8.18
Windows herunterfahren – auch remote
245
’ Status einzelner Dienste erfragen MsgBox tool.ServiceStatus("Beep") MsgBox tool.ServiceStatus("Netman") MsgBox tool.ServiceStatus("Alerter")
Um einen Netzwerkcomputer anzusprechen, geben Sie als zweites optionales Argument den Namen des gewünschten Netzwerkcomputers an.
8.18
Windows herunterfahren – auch remote
Sie wollen Ihr Windows herunterfahren oder neu starten? Oder vielleicht doch lieber den Rechner des bösen Kollegen? Beides ist möglich, und im Gegensatz zur WMI-Variante aus Kapitel 12 können Sie diesmal sogar Warnmeldungen an den armen Delinquenten senden, bevor sich sein Rechner auf den Winterschlaf vorbereitet. Das nötige Projekt finden Sie als NTSHUTDOWN auf der Buch-CD. Befehl
Beschreibung
ExitWindows RemoteShutdown AbortShutdown
Fährt Windows lokal herunter oder startet es neu Fährt einen anderen Computer herunter Bricht den Herunterfahr-Prozeß ab
Tab. 8.15: Befehle des nt.shutdown-Objekts
8.18.1 Den eigenen Computer neu starten Mit ExitWindows starten Sie Ihren eigenen Computer neu oder fahren ihn ganz herunter. Geben Sie als Zahl dahinter die Art ein, wie Sie neu starten oder herunterfahren wollen: Code
Beschreibung
0 1 2
Abmelden Herunterfahren Neu starten
Tab. 8.16: Optionen des Shutdown-Befehls
Zusätzlich können Sie die Werte 4, 8 und (bei Windows 2000) 16 hinzuaddieren. Fügen Sie 4 hinzu, wenn der Vorgang sofort und ohne Rückfragen geschehen soll. Fügen Sie 8 hinzu, wenn das Gerät nach dem Herunterfahren ausgeschaltet werden soll (sofern technisch machbar). Und fügen Sie 16 hinzu, wenn abgestürzte Programme sofort und ohne Firlefanz beendet werden sollen.
246
Kapitel 8: Programmier-Trickkiste
8.18.2 Ein System ferngesteuert herunterfahren Sofern Sie die nötigen Berechtigungen haben, kann Ihr Script sogar fremde NT- und 2000-Systeme herunterfahren oder neu starten. Verwenden Sie den Befehl RemoteShutdown. Das nächste Script fährt zum Beispiel ein fremdes System herunter, ohne dabei nachzufragen. ’ 8-41.vbs set tool = CreateObject("nt.shutdown") set wshshell = CreateObject("WScript.Shell") server = InputBox("Servername?") result = tool.RemoteShutdown(server, "Gleich wird’s dunkel!",_ 5, true, false) if result0 then wshshell.Popup "Fahre herunter: " _ server & ". Abbruch innerhalb von 5 Sek. Möglich! ", 5 tool.AbortShutdown server
Das Script fährt den gewünschten Rechner herunter und stellt dabei auf dem Remote-System die Meldung dar, die Sie angeben. Innerhalb von 5 Sekunden können Sie den Vorgang abbrechen. Wird in dieser Zeit AbortShutdown aufgerufen, dann bricht das Remotesystem den HerunterfahrProzeß ab.
8.19
NT-Benutzerkonten verwalten
NT-Benutzerverwaltung ist mit ADSI am einfachsten zu handhaben. Allerdings ist ADSI langsam und auf einfachen Windows NT-Systemen gar nicht verfügbar. Erst mit Windows 2000 wird ADSI also seine Trümpfe richtig ausspielen können. Bis dahin behelfen Sie sich einfach mit Ihrer eigenen Befehlserweiterung. Die finden Sie als Projekt NTUSER auf der Buch-CD. Befehl
Bedeutung
GetUsers EnumUsers AddUser DelUser ChangePassword EnumerateGroups EnumGroupUsers AddUsersToGroup DelUserFromGroup GetPrimaryDCName GetLastError
Benutzerkonten auflisten Benutzerkonten auflisten (Alternative) Neues Benutzerkonto anlegen Benutzerkonto löschen Kennwort eines Kontos ändern Gruppen auflisten Benutzerkonten in einer Gruppe auflisten Benutzerkonto in Gruppe einfügen Benutzerkonto aus Gruppe entfernen Name des primären Domänencontrollers ermitteln Letzte Fehlermeldung ermitteln
Tab. 8.17: Befehle des nt.user-Objekts
8.19
NT-Benutzerkonten verwalten
247
8.19.1 Benutzerkonten eines Rechners listen Schauen Sie mal, wie leicht Sie nun herausfinden, welche Benutzerkonten es auf Ihrem lokalen Computer oder einem anderen Computer im Netz gibt: ’ 8-42.vbs set tool = CreateObject("nt.user") MsgBox tool.EnumUsers MsgBox tool.EnumUsers("\\scenic1")
Bild 8.24: Zugriff auf Benutzerkonten (Windows NT/2000)
Die Informationen lassen sich leicht weiterverarbeiten: ’ 8-43.vbs set tool = CreateObject("nt.user") users = Split(tool.EnumUsers, vbCr) for x=0 to UBound(users)-1 infos = Split(users(x), vbTab) list = list & "Username: " & infos(0) & vbCr list = list & "Comment: " & infos(1) & vbCr & vbCr next MsgBox list, vbInformation
8.19.2 Benutzerkonten filtern Auf Wunsch filtert Ihr neuer EnumUsers-Befehl sogar die Ergebnisse. Hier die Möglichkeiten: ’ 8-44.vbs set tool = CreateObject("nt.user") for i = 0 to 5 users = Split(tool.EnumUsers(,2^i), vbCrLf) list = "Enumerating using filter " & 2^i & vbCr for x=0 to UBound(users)-1 infos = Split(users(x), vbTab) list = list & "Username: " & infos(0) & vbCr next MsgBox list, vbInformation next
248
Kapitel 8: Programmier-Trickkiste
Als Filter setzen Sie einen der folgenden Werte als zweiten Parameter ein: Code
Beschreibung
1 2 4 8 16 32
Lokale Konten Globale Konten Alle Konten Trust-Konten eines DC Workstation- und Server-Konten auf einem DC DC-Konten auf einem DC
Tab. 8.18: Filterkriterien für Benutzerkonten
8.19.3 Neue Benutzerkonten anlegen Brauchen Sie ein neues Benutzerkonto? So leicht schafft Ihr Script eins herbei: ’ 8-45.vbs set tool = CreateObject("nt.user") if tool.AddUser("", "testkonto", "geheim", _ 5, "c:\users\test", "Dies ist ein Testkonto") then MsgBox "Konto hinzugefügt..." else MsgBox "Fehler: " & tool.GetLastError end if
Die komplette Syntax Ihres neuen Befehls sieht so aus: AddUser server, user, pwd, expires, homedir, comment, scriptdir
Und hier die Bedeutung der Argumente: Argument
Bedeutung
Server User Pwd Expires Homedir Comment Scriptdir
Name des Computers oder "" für lokalen Computer Name des Kontos Kennwort Tage, die das Konto gültig sein soll Basisverzeichnis Kommentar Verzeichnis für Log-On-Scripts
Tab. 8.19: Argumente des AddUser-Befehls
8.19
NT-Benutzerkonten verwalten
249
8.19.4 Benutzerkonten löschen Genauso leicht wird Ihr Script das neue Konto auch wieder los: ’ 8-46.vbs set tool = CreateObject("nt.user") if tool.DelUser("", "testkonto") then MsgBox "Konto gelöscht!" else MsgBox "Fehler: " & tool.GetLastError end if
8.19.5 Kennworte ändern Und was, wenn Sie das Kennwort eines Kontos ändern müssen? Dann hilft dieses Script: ’ 8-47.vbs set tool = CreateObject("nt.user") if tool.ChangePassword("", "testkonto", _ "neueskennwort", "alteskennwort") then MsgBox "Password has changed!" else MsgBox "Fehler: " & tool.GetLastError end if
Falls Sie das alte Kennwort nicht wissen, dann setzen Sie es auf »leer«, also auf "". Nun brauchen Sie allerdings Administrator-Rechte.
8.19.6 Globale Gruppen auflisten Alle globalen (domänenweiten) Konten findet Ihr Script so heraus: ’ 8-48.vbs set tool = CreateObject("nt.user") MsgBox tool.EnumerateGroups
Geben Sie den Namen eines Servers an, um die lokalen Gruppen zu erfahren: ’ 8-49.vbs set tool = CreateObject("nt.user") MsgBox tool.EnumerateGroups("\\SCENIC1")
250
Kapitel 8: Programmier-Trickkiste
8.19.7 In welchen Gruppen bin ich Mitglied? Sie können sogar herausfinden, in welchen Gruppen ein Konto zur Zeit Mitglied ist. Das funktioniert so: ’ 8-50.vbs set tool = CreateObject("nt.user") MsgBox tool.EnumerateGroups("", "testkonto")
Und wenn Sie alle Mitglieder einer bestimmten Gruppe sehen wollen, dann machen Sie es so: ’ 8-51.vbs set tool = CreateObject("nt.user") MsgBox tool.EnumGroupUsers("", "Administratoren")
Dieses Script listet alle Konten mit lokalen Administrator-Rechten auf.
8.19.8 Konten in eine Gruppe einfügen Vielleicht wollen Sie auch ein Benutzerkonto in eine Gruppe einfügen. Das ist leicht möglich: ’ 8-52.vbs set tool = CreateObject("nt.user") if
tool.AddUserToGroup("", "Administratoren", "testaccount") then MsgBox "Konto in Gruppe eingefügt!" else MsgBox "Fehler: " & tool.GetLastError end if
Und umgekehrt fliegen auf Wunsch Konten auch wieder aus Gruppen heraus: ' 8-53.vbs set tool = CreateObject("nt.user") if
tool.DelUserFromGroup("", "Administratoren", "testkonto") then MsgBox "Konto aus Gruppe entfernt!" else MsgBox "Fehler: " & tool.GetLastError end if
8.19.9 Primären Domänencontroller finden Der primäre Domänencontroller ist der zentrale Verkehrspolizist in einem domänengestützten Netzwerk. Wie dieser Computer im Netzwerk eigentlich heißt, findet das nächste Script für Sie heraus:
8.20
Informationen über Ihr Betriebssystem
251
’ 8-54.vbs set tool = CreateObject("nt.user") MsgBox tool.GetPrimaryDCName("DOMÄNE")
Dieses Script findet den PDC in der Domäne namens »Domäne«.
8.20
Informationen über Ihr Betriebssystem
Manchmal wäre es nützlich für ein Script zu wissen, auf welchem Betriebssystem es eigentlich ausgeführt wird. Diese Informationen liefert die Befehlserweiterung aus dem Projekt OSVERSION. Das Projekt liefert außerdem Befehle, um herauszufinden, ob eine bestimmte DLL auf dem System installiert ist und in welcher DLL eine bestimmte API-Funktion eigentlich schlummert. Befehl
Beschreibung
OSVersion WinType WinVer Platform Build WinKind DLLExists FindFunction
Infos zum Betriebssystem Windows-Version Windows-Version als Zahl Plattform-ID Build-Nummer (Versions-Unternummer) Windows-Version als Windows-Name Prüft, ob eine DLL-Datei existiert Findet die DLL, die einen bestimmten API-Befehl enthält
Tab. 8.20: Befehle des os.Version-Objekts
8.20.1 Windows-Version ermitteln Ihre neue Befehlserweiterung kennt nun viele Details über Ihr Betriebssystem. Wählen Sie je nach Bedarf die Art der Information aus:
Bild 8.25: Zuverlässig bestimmen, welche Windows-Version läuft
252
Kapitel 8: Programmier-Trickkiste
’ 8-55.vbs set tool = CreateObject("os.version") MsgBox tool.OSVersion MsgBox tool.WinKind MsgBox "Windows-Version: " & tool.WinVer MsgBox "Platform ID: " & tool.Platform MsgBox "Build: " & tool.Build
8.20.2 Werden bestimmte DLLs bei mir unterstützt? Vielleicht muß Ihr Script wissen, ob bestimmte exotische DLL-Funktionen auf Ihrer Maschine überhaupt verfügbar sind. Das nächste Script hilft weiter: ’ 8-56.vbs set tool = CreateObject("os.version") MsgBox tool.DLLExists("kernel32", "GetVersionExA") MsgBox tool.DLLExists("kernel32", "GetVersionExW")
Und wenn Sie gar nicht wissen, in welcher DLL eine Funktion eigentlich schlummert, dann lassen Sie eben danach suchen. Das kann allerdings ein paar Sekunden dauern: ’ 8-57.vbs set tool = CreateObject("os.version") MsgBox tool.FindFunction("GetVersionExA")
8.21
Programme steuern und beenden
Der Scripting Host kann über das Wscript.Shell-Objekt zwar Programme starten, aber dies ist nur eine sehr einfache Lösung. Sobald Sie nämlich ein externes Programm auf diese Weise starten, verliert Ihr Script die Kontrolle über den gestarteten Prozeß. Es ist dem Script anschließend weder möglich festzustellen, ob das Programm wie beabsichtigt läuft, noch kann das Script gestartete Programme später wieder beenden. Das Projekt PROCESS ist die Lösung des Problems, denn mit den neuen Befehlen aus diesem Projekt erhalten Sie die Process-ID des gestarteten Programms. Über diese ID kann das Script jederzeit feststellen, ob das Programm noch läuft. Das Programm läßt sich auf diese Weise auch jederzeit wieder beenden.
8.21.1 Programme starten: der herkömmliche Weg Schauen Sie sich zuerst an, wie Scripts normalerweise externe Programme steuern. Das nächste Script startet beispielsweise den Texteditor, und zwar asynchron: Der Editor startet, und Ihr Script läuft weiter.
8.21
Programme steuern und beenden
253
’ 8-58.vbs set wshshell = CreateObject("WScript.Shell") wshshell.Run "Notepad.exe" MsgBox "Das Script setzt die Arbeit sofort fort!", _ vbSystemModal
Auch synchrone Aufrufe sind möglich: Hier wartet das Script, bis das aufgerufene Programm wieder beendet wird. Wann das geschieht, kann das Script allerdings nicht kontrollieren: ’ 8-59.vbs set wshshell = CreateObject("WScript.Shell") ergebnis = wshshell.Run("Notepad.exe",1,true) MsgBox "Programm wurde wieder geschlossen!", _ vbSystemModal
8.21.2 Programme per API fernsteuern Wesentlich mehr Spielraum bekommen Sie mit den neuen Befehlen Ihres Projekts: Befehl
Bedeutung
Run IsTaskRunning WaitForTask EndProcess KillProcess
Startet ein Programm und liefert die Process-ID zurück Prüft, ob das Programm noch läuft Wartet, bis ein Programm beendet wird Schließt ein Programm auf freundliche Weise Schließt ein Programm ohne weitere Rückfragen. Nicht gespeicherte Arbeitsergebnisse gehen verloren Findet die Window-Handle des Programms heraus Findet die Window-Handle eines beliebigen Programms Liefert die Process-ID eines beliebigen Fensters Beendet beliebiges Programm Beendet beliebiges Programm sofort und ohne Rückfrage. Arbeitsergebnisse gehen verloren
GetWindowFromProcess FindWindowHandle GetProcessFromWindow EndProgram KillProgram
Tab. 8.21: Befehle des process.id-Objekts
8.21.3 Programme per API starten Das nächste Script zeigt, wie Sie Programme mit Ihren neuen Befehlen starten: ’ 8-60.vbs set tool = CreateObject("process.id") procID = tool.Run("NOTEPAD.EXE") MsgBox "Habe Editor gestartet und schließe ihn gleich wieder." _ & " Dies funktioniert, weil ich die Process-ID kenne: " _ & procID, vbSystemModal
254
Kapitel 8: Programmier-Trickkiste
tool.EndProcess procID MsgBox "Editor wurde wieder geschlossen!"
Erstaunlich, finden Sie nicht? Das Script kann ab sofort Programme nicht nur öffnen, sondern auf Wunsch auch jederzeit wieder beenden.
Bild 8.27: Programme starten und auch wieder scriptgesteuert beenden
Auf Wunsch schließt Ihr Script das betreffende Programm sogar auf jeden Fall, also auch dann, wenn der Benutzer den Versuch eigentlich abbricht: ’ 8-61.vbs set proc = CreateObject("process.id") pid = proc.Run("NOTEPAD.EXE") MsgBox "Habe den Editor gestartet und schließe ihn jetzt!", _ vbSystemModal if not proc.EndProcess(pid, 5000) then answer = MsgBox("Editor will nicht. Trotzdem schließen?", _ vbYesNo + vbQuestion) if answer = vbYes then proc.KillProcess(pid) end if end if
Das Script öffnet den Editor und schließt ihn dann wieder. Nichts besonderes also, auf den ersten Blick jedenfalls. Wenn Sie allerdings Text in den Editor eingeben und dann auf OK klicken, wird der Editor nicht sofort geschlossen. EndProcess sendet zwar den Wunsch an den Editor, aber der zückt sein »Wollen Sie speichern...«-Fenster. Ihr Script behält trotzdem die Kontrolle. Schließt der Anwender den Editor nicht innerhalb von 5 Sekunden, dann wird Ihr Script rabiat und bietet an, den Editor trotzdem zu schließen. Das gelingt über KillProcess.
8.21
Programme steuern und beenden
255
8.21.4 Prüfen, ob ein Programm noch läuft Ihr Script kann sogar herausfinden, ob ein Programm überhaupt noch läuft oder vielleicht vom Anwender bereits beendet wurde. Das nächste Script zeigt den Editor für maximal 8 Sekunden an. Hat der Anwender bis dahin das Fenster nicht geschlossen, dann wird der Editor beendet. ’ 8-62.vbs set tool = CreateObject("process.id") MsgBox "Sie haben 8 Sekunden, etwas einzugeben!" pid = tool.Run("NOTEPAD.EXE") ' wait for program to exit – check every second do WScript.Sleep 1000 ' sleep 1 sec counter = counter + 1 ' spätestens nach 8 Sekunden Geduld verlieren loop while counter2 then list = list & file.path & chr(0) end if next
8.25
Dateien kopieren und löschen
265
’ ab in den Papierkorb: if len(list)>0 then MsgBox tool.Recycle(list) end if
8.25.2 Papierkorb löschen Ihre Scripts haben normalerweise keine Möglichkeit, den Windows-Papierkorb zu löschen. Mit Ihrer neuen Befehlserweiterung geht das durchaus, sogar sehr einfach: ’ 8-81.vbs set tool = CreateObject("shellcopy.tool") tool.EmptyRecycler MsgBox "Papierkorb gelöscht."
8.25.3 Backups anlegen Normalerweise sind Backup-Programme langsam und schwerfällig. Nicht so das nächste Script. Es legt automatisch ein Backup eines beliebigen Ordners einschließlich aller Unterordner an und demonstriert dabei die neuen Befehle. Die Besonderheit: Haben Sie erst einmal ein Backup angelegt und rufen dann Ihr Script erneut auf, so werden nur noch die geänderten und neuen Dateien kopiert. Das geht blitzschnell. Passen Sie im Tool lediglich den Ordnernamen mit den Originaldaten und den Ordner für das Backup an. Das Script ermittelt zuerst, welche Dateien kopiert werden müssen. Das kann eine Weile dauern. Danach beginnt der Kopierprozeß, der mit dem üblichen Kopieren-Dialogfenster begleitet wird. ’ 8-82.vbs set tool = CreateObject("shellcopy.tool") set fs = CreateObject("Scripting.FileSystemObject") ’ Quelle und Ziel des Backups source = "D:\SOURCES\" dest = "C:\BACKUP\" ’ Liste der zu kopierenden Dateien sourcelist = "" ’ Liste der Zieldateien destlist = "" ' geprüfte counter1 = ' kopierte counter2 =
Dateien: 0 Dateien: 0
266
Kapitel 8: Programmier-Trickkiste
’ korrekte Syntax? if not right(source,1)="\" then source = source & "\" if not right(dest,1)="\" then dest = dest & "\" ' zu kopierende Dateien auswählen BackupFolder fs.GetFolder(source) ' Kopieren, falls erforderlich if counter2>0 then tool.CopyMultiDest sourcelist, destlist ' Status zurückmelden MsgBox "Backup fertig:" & vbCr & counter1 & " Dateien geprüft." _ & vbCr & counter2 & " Dateien kopiert." _ & vbCr & counter1-counter2 & " Dateien aktuell." sub BackupFolder(folderobj) ' wie heißt der Zielordner? destfolder = dest & mid(folderobj.path, len(source)+1) ' Fehlende Ordner anlegen if not fs.FolderExists(destfolder) then fs.CreateFolder destfolder end if ' alle Dateien im Ordner prüfen for each file in folderobj.files ' wie heißt die zugehörige Backupdatei? destfilename = dest & mid(file.path, len(source)+1) counter1 = counter1 + 1 ' Auswählen, wenn Datei noch nicht existiert oder ' sich geändert hat (Archiv-Attribut gesetzt) if (not fs.FileExists(destfilename)) or _ ((file.Attributes and 32)=32) then counter2 = counter2 + 1 sourcelist = sourcelist & file.path & Chr(0) destlist = destlist & destfilename & Chr(0) ' Archiv-Attribut löschen file.Attributes = file.Attributes and not 14000 _ and not 32 end if next ' rekursiv alle Unterordner prüfen for each subfolder in folderobj.subfolders BackupFolder subfolder next end sub
8.26
8.26
Icons im Gerätefeld der Taskleiste anzeigen
267
Icons im Gerätefeld der Taskleiste anzeigen
Normalerweise sind Scripts lichtscheue Gesellen: Solange ein Script läuft, sehen und hören Sie nicht viel von ihm, und abbrechen können Sie es schon gar nicht. Eine Lösung bietet das nächste Projekt namens TRAY. Es blendet ein Icon im Gerätefeld der Taskleiste ein, solange Ihr Script läuft. Sie können das Script über dieses Icon jederzeit abbrechen. Befehl
Beschreibung
HandleEvents QuitOnDemand Quit
Events prüfen: Wurde auf Icon geklickt? Script beenden, wenn Icon angeklickt wurde Icon aus Taskleiste entfernen
Tab. 8.27: Befehle des tray.icon-Objekts
8.26.1 Scripts per Taskleisten-Icon steuern Hier ein kleines Anwendungsbeispiel: Solange das Script läuft, wird ein Icon in der Taskleiste eingeblendet. Klicken Sie auf das Icon, dann wird das Script vorzeitig abgebrochen. ’ 8-83.vbs set tool = WScript.CreateObject("tray.icon", "event_") call tool.QuitOnDemand ' Script beschäftigen for x = 1 to 1000 for y = 1 to 10000000 ' Icon-Klicks prüfen tool.HandleEvents test = left("teststring",1) + mid("testing", 3, 2) next next ' Icon aus Taskleiste ausblenden call tool.Quit ' wird aufgerufen, wenn jemand auf das Icon klickt sub event_QuitNow WScript.Quit end sub
QuitOnDemand ist ein Wolf im Schafspelz und akzeptiert viele optionale Argumente: call tool.QuitOnDemand("Beenden?", "shell32.dll", 3, "Info!")
Probieren Sie diese Zeile in Ihrem Script aus, dann wird als Taskleisten-Icon das 4. Icon (die Numerierung beginnt bei 0) aus der Datei SHELL32.DLL verwendet. Auch die Meldungen ändern sich.
268 8.27
Kapitel 8: Programmier-Trickkiste
Versionsinformationen über Dateien erhalten
DLL- und Programmdateien enthalten viele versteckte Informationen, zum Beispiel die Datei- und Programmversionen oder Copyright-Informationen. An diese Infos ist normalerweise nur schwer heranzukommen. Das Projekt VERSION macht es Ihnen leicht und zeigt nebenbei, wie Sie eigene Objekte definieren.
Bild 8.32: Detailinformationen aus EXE- und DLL-Dateien auslesen
Mit GetVersion erhalten Sie ein (selbstdefiniertes) neues Objekt, das die Geheiminformation der angegebenen Datei enthält.
8.27.1 Informationen über Dateien herausfinden Das nächste Script öffnet im Windows-Ordner die Datei EXPLORER.EXE und zeigt Ihnen allerhand interessante Infos: ’ 8-84.vbs set version = CreateObject("file.versioninfo") set wshshell = CreateObject("WScript.Shell") windir = wshshell.ExpandEnvironmentStrings("%WINDIR%") filename = "explorer.exe" set obj = version.GetVersion(windir & "\" & filename) if obj.isVer then msg = msg & "Version: " & obj.FileVersion & vbCr msg = msg & "Designed for: " & obj.OS & vbCr msg = msg & "Designed by: " & obj.CompanyName & vbCr msg = msg & "Beschreibung: " & obj.FileDescription & vbCr msg = msg & obj.LegalCopyright end if MsgBox "Information über " & filename & vbCr & msg
8.28
8.28
Eigene HTML-Dialogfenster verwenden
269
Eigene HTML-Dialogfenster verwenden
Inzwischen wissen Sie, wie leicht Sie mit der VB CCE ganz eigene Dialogfenster verwenden. Was aber, wenn Sie den Inhalt der Dialogfenster dynamisch gestalten wollen oder Sie einfach keine Lust haben, Dialogfenster mit der VB CCE zu entwerfen? In diesem Fall verwenden Sie einfach HTML als Vorlage für Ihre Dialogfenster. Windows bringt einen Allzweck-Webbrowser mit, der auch im Internet Explorer seinen Dienst versieht und mit dem Sie hervorragend HTML-Schablonen für Ihre ganz eigenen Dialogfenster verwenden können.
8.28.1 Einfache HTML-Dialogfenster verwenden Wie simpel und vielseitig Ihre neuen HTML-Dialogfenster sind, zeigt das folgende Script: ’ 8-85.vbs set tool = CreateObject("Web.dialog") ’ wo liegt das Script (in welchem Ordner)? myname = WScript.ScriptFullName cp = left(myname, InstrRev(myname, "\")) ’ template template = cp & "schablone1.htm" ’ size dialog tool.Width = 400 tool.Height = 300 tool.Title = "Eingabefenster" tool.SetIcon "shell32.dll", 3 tool.Resizable = true ’ Dialogfenster anzeigen set webcontrol = tool.ShowDialog(template) ’ alle benannten Elemente auslesen for each element in webcontrol on error resume next elname = element.name if not err.number=0 then ’ element has no name tag! elname = "unbenanntes Objekt vom Typ: " _ & TypeName(element) end if on error goto 0 list = list & elname & vbCr next MsgBox list
270
Kapitel 8: Programmier-Trickkiste
Damit es funktionieren kann, speichern Sie lediglich in demselben Ordner, in dem auch das Script lagert, Ihre HTML-Schablone als SCHABLONE1.HTM. Die könnte folgendermaßen aussehen: <style> p {font: 12pt Arial}
Ihr Name:
Wenn Sie mögen, gestalten Sie die Schablone einfach mit einem Web-Design-Tool, zum Beispiel mit Frontpage. Achten Sie nur darauf, alle Eingabefelder mit Namen zu versehen, denn das Script zeigt daß nur Felder mit Namen direkt angesprochen werden können.
Bild 8.33: Eigene Dialogfenster via HTML-Schablone
Noch ist Ihr Script allerdings nicht perfekt: Es liefert zwar alle Elemente der Schablone zurück, aber nicht die Werte darin. Damit Ihre HTML-Schablone zu einem echten Dialogfenster wird, mit dem man Fragen stellen und Antworten bekommen kann, formulieren Sie das Script nur ein wenig um: ’ 8-86.vbs set tool = CreateObject("Web.dialog") ’ wo liegt das Script (in welchem Ordner)? myname = WScript.ScriptFullName cp = left(myname, InstrRev(myname, "\")) ’ template template = cp & "schablone1.htm" ’ size dialog
8.28
Eigene HTML-Dialogfenster verwenden
271
tool.Width = 400 tool.Height = 300 tool.Title = "Eingabefenster" tool.SetIcon "shell32.dll", 3 tool.Resizable = true ’ Dialogfenster anzeigen set webcontrol = tool.ShowDialog(template) ’ Eingabe lesen if TypeName(webcontrol)="Nothing" then MsgBox "Abgebrochen!" else MsgBox "Ihr Name: " & webcontrol.namefeld.value end if
8.28.2 Schaltflächen mit Scriptprozeduren verbinden Bislang fristete die Hilfe-Schaltfläche in Ihrem Dialogfenster noch ein wenig aufregendes Dasein: Beim Klick auf die Schaltfläche passierte schlichtweg nichts. Kein Wunder, mit der Schaltfläche war keine weitere Aktion verbunden. Über den GetRef-Befehl kann Ihr Script jede beliebige Scriptprozedur mit der Schaltfläche verbinden, und genau das passiert im nächsten Beispiel: ’ 8-87.vbs set tool = CreateObject("Web.dialog") ’ Pfad zum Script und zur Schablone myname = WScript.ScriptFullName cp = left(myname, InstrRev(myname, "\")) ’ Vorlage template = cp & "schablone1.htm" tool.Width = 400 tool.Height = 300 tool.Title = "Willkommen!" set webcontrol = tool.LoadDialog(template) ' HILFE-Schaltfläche mit Script verbinden: webcontrol.help.onclick = GetRef("showhelp") set webcontrol = tool.DisplayDialog ' Ergebnis lesen if TypeName(webcontrol)="Nothing" then MsgBox "Abgebrochen!" else
272
Kapitel 8: Programmier-Trickkiste
MsgBox "Ihr Name: " & webcontrol.namefeld.value end if sub ShowHelp MsgBox "Bitte geben Sie Ihren Namen ein." end sub
Probieren Sie es aus: Wenn Sie diesmal auf Hilfe klicken, bekommen Sie einen kleinen Hilfetext geliefert.
8.28.3 Kommunikation zwischen HTML-Vorlage und Script Bis jetzt war Ihr Dialogfenster auf die eingebauten Schaltflächen Ihres COM-Objekts angewiesen, um die Eingabe zu übernehmen. Wenn Sie das wünschen, dann kann Ihre HTML-Vorlage diese Aufgabe allerdings auch selbst übernehmen. Sie können dann Ihre OK- und Abbrechen-Schaltflächen direkt in die HTML-Vorlage einbauen und gestalten, wie Sie wollen. Dazu brauchen Sie nur eine etwas erweiterte Schablone. Speichern Sie die nächste Schablone als SCHABLONE2.HTM in demselben Ordner, in dem Sie auch das Script aufbewahren: <style> p {font: 12pt Arial} <script language="VBScript"> set parentobj = Nothing sub Quit if not TypeName(parentobj)="Nothing" then parentobj.Quit false end if end sub sub Leave if not TypeName(parentobj)="Nothing" then parentobj.Quit true end if end sub
Ihr
8.28
Eigene HTML-Dialogfenster verwenden
273
Die Schablone definiert die beiden Prozeduren Quit und Leave. Es stellt außerdem die nötigen Schaltflächen zur Verfügung, die diese Prozeduren aufrufen. Allein für sich bringen die Schaltflächen und Prozeduren nur wenig. Der Trick besteht darin, beim Laden der Vorlage in die Variable parentobj eine Referenz auf Ihr COM-Objekt zu laden. So kann Ihre HTML-Schablone auf Ihr COM-Objekt zugreifen und das Dialogfenster schließen.
Bild 8.34: Ihre HTML-Schablone steuert per Schaltfläche das Dialogfenster
Genau das passiert, wenn Sie das nächste Script verwenden: ’ 8-88.vbs set tool = CreateObject("Web.dialog") myname = WScript.ScriptFullName cp = left(myname, InstrRev(myname, "\")) template = cp & "schablone2.htm" tool.Width = 400 tool.Height = 300 tool.Title = "My Form" ' eigene Schaltflächen des COM-Objekts verschwinden ' lassen tool.ShowButtons false set webcontrol = tool.LoadDialog(template) webcontrol.help.onclick = GetRef("showhelp") set webcontrol = tool.DisplayDialog if TypeName(webcontrol)="Nothing" then MsgBox "Abbruch" else MsgBox "Eingabe: " & webcontrol.namefeld.value end if
274
Kapitel 8: Programmier-Trickkiste
sub ShowHelp MsgBox "Bitte Namen eingeben!" end sub
8.28.4 Luxus-Optionen für HTML-Dialoge Ihr HTML-Formular läßt sich noch luxuriöser gestalten. Vielleicht wollen Sie, daß sich das Dialogfenster automatisch schließt, sobald im Eingabefeld die [Eingabe]-Taste gedrückt wird. Verwenden Sie einfach diese Schablone und speichern Sie sie als SCHABLONE3.HTM: <style> p {font: 12pt Arial} <script language="VBScript"> set parentobj = Nothing sub Quit if not TypeName(parentobj)="Nothing" then parentobj.Quit false end if end sub sub Leave if not TypeName(parentobj)="Nothing" then parentobj.Quit true end if end sub sub document_onkeypress() keycode = window.event.keyCode if keycode = 13 then Leave elseif keycode = 27 then Quit end if end sub
Ihr Name:
Nun brauchen Sie nur noch Ihr vorangegangenes Script etwas zu ändern und anstelle der Schablone SCHABLONE2.HTM die neue Schablone SCHABLONE3.HTM einzutragen. Wenn Sie anschließend in Ihr Dialogfenster etwas eintragen und [Eingabe] drücken, schließt sich das Dialogfenster automatisch. Was allerdings noch stört: Der Cursor ist anfangs nicht im Textfeld, und der Anwender muß zuerst in dieses Feld klicken, um etwas eingeben zu können. Nicht mehr lange. Verwenden Sie die nächste Schablone, und speichern Sie sie als SCHABLONE4.HTM. Ändern Sie wieder Ihr Script, und schon steht der Cursor im Eingabefeld bereit: <style> p {font: 12pt Arial} <script language = "VBScript"> sub focusit document.all.namefeld.focus() end sub <script language="VBScript"> set parentobj = Nothing sub Quit if not TypeName(parentobj)="Nothing" then parentobj.Quit false end if end sub sub Leave if not TypeName(parentobj)="Nothing" then parentobj.Quit true end if end sub sub document_onkeypress() keycode = window.event.keyCode if keycode = 13 then
276
Kapitel 8: Programmier-Trickkiste
Leave elseif keycode = 27 then Quit end if end sub
Ihr
8.28.5 Formulareingaben prüfen Ihre HTML-Vorlage kann sogar Eigenintelligenz enthalten und zum Beispiel prüfen, ob der Anwender auch Antworten eingegeben hat, die Ihnen genehm sind. Wie das funktioniert, zeigt die nächste Schablone, die Sie als SCHABLONE5.HTM speichern. Ändern Sie wieder Ihr Script, und schon weist Ihr Dialogfenster mit roter Farbe auf nicht ausgefüllte Felder hin: <style> p {font: 12pt Arial} <script language = "VBScript"> sub focusit document.all.namefeld.focus() end sub
Ihr
<script language="VBScript"> set parentobj = Nothing sub Quit if not TypeName(parentobj)="Nothing" then parentobj.Quit false
8.28
Eigene HTML-Dialogfenster verwenden
277
end if end sub sub Leave if document.all.namefeld.value="" then document.all.namefeld.style.background = "#FF0000" MsgBox "Formular nicht ausgefüllt" document.all.namefeld.style.background = "#FFFFFF" document.all.namefeld.focus elseif not TypeName(parentobj)="Nothing" then parentobj.Quit true end if end sub sub checkkeyboard() keycode = window.event.keyCode if keycode = 13 then Leave elseif keycode = 27 then Quit end if end sub
8.28.6 Optionsfelder verwenden Der große Vorteil Ihrer HTML-Dialogfenster ist Ihre Gestaltungsfreiheit: Sie können alle nur erdenklichen HTML-Eingabeobjekte verwenden, zum Beispiel ein Optionsfeld. Das liefert die nächste Beispielschablone namens SCHABLONE6.HTM: <style> p {font: 12pt Arial} .mystyle {font: 10pt Arial; font-weight: bold} Wählen Sie eine Option!
Option 1
Option 2
Option 3
278
Kapitel 8: Programmier-Trickkiste
Fragt sich nur, wie Sie die Optionsfelder per Script auslesen. Diese Aufgabe übernimmt das nächste Script:
Bild 8.35: Optionen wählen – auch das geht per HTML-Schablone ’ 8-89.VBS set tool = CreateObject("Web.dialog") myname = WScript.ScriptFullName cp = left(myname, InstrRev(myname, "\")) template = cp & "schablone6.htm" tool.Resizable =false tool.Width = 400 tool.Height = 200 tool.Title = "Option Dialog" set webcontrol = tool.ShowDialog(template) if TypeName(webcontrol)="Nothing" then MsgBox "Abgebrochen!" else for x=0 to (webcontrol.r1.length)-1 if webcontrol.r1(x).checked then optionval = webcontrol.r1(x).value end if next MsgBox "Ihre Wahl: " & optionval end if
279
9
Auf Datenbanken zugreifen: Universal Data Access
Windows wird immer modulartiger, und das ist gut so: Vielleicht erinnern Sie sich noch an die vielen »Insellösungen«, mit der die Computerindustrie begonnen hat. Ein schickes Programm konnte damals zwar maßgeschneidert perfekte Lösungen zaubern, war aber in sich ein geschlossenes Gebilde. Sobald man versucht, die Ergebnisse dieses Programms in ein anderes Programm einzufüttern, begann der Frust: Inkompatibilitäten sorgten – und sorgen sogar noch heute – dafür, daß Sie an die Ergebnisse erst über viel Handarbeit und Informationsverlust herankommen. Microsoft hat deshalb ein Dreischichten-Modell entwickelt. Das sorgt dafür, daß alle Programme, die Sie einsetzen, viel besser im Team miteinander arbeiten können. Die oberste Schicht ist die Präsentationsebene. Das ist sozusagen die Programmoberfläche, mit der Sie Fragen stellen und Antworten bekommen. In der Mitte liegt die Business Logic. Hier ackern die eigentlichen Programme und tun genau das, wofür sie erfunden wurden. Die dritte Schicht heißt Daten-Ebene: Hier lagern die Daten – Auftragsdaten, Kochrezepte oder was auch immer Sie als Datengrundlage verwenden. Springender Punkt bei diesem Dreischichten-Modell ist die Flexibilität: Durch die Auftrennung in drei Schichten verwendet Ihr Computer die effiziente Arbeitsteilung. Ein neues Programm braucht sich nicht darum zu kümmern, wo es seine Daten aufbewahrt. Es greift einfach über eine Standardschnittstelle auf die Daten-Ebene zu und speichert Sie dort. Es ist also ganz egal, ob Sie als Daten-Ebene eine Excel-Tabelle, eine Access-Datenbank oder gar einen Großrechner einsetzen. Diese Standardschnittstelle heißt ADO DB. Ihre Scripts können sie ebenso verwenden wie teure Profisoftware, und genau das ist hochinteressant. Scripts können nämlich auf diese Weise nicht nur elegant Datenbanken einsetzen, sondern funktionieren auf Wunsch auch als Daten-Transporteur, um Daten aus einem Programm in ein anderes zu überführen. Ganz nebenbei zeigen Ihnen die Scripts ohne viel Ballast, wie die Schnittstelle funktioniert. Sie werden überrascht sein, wie einfach das geht!
9.1
Wie kommt man an ADO DB heran?
ADO DB ist kostenlos, aber unter Umständen noch nicht auf Ihrem Computer vorhanden. ADO DB ist nämlich kein integraler Bestandteil von Windows. Statt dessen wandert ADO DB über Programme wie Microsoft Office oder andere Software in Ihr System ein. Erst bei Windows 2000 ist ADO DB nun endlich von Anfang an mit dabei.
280
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access
Bild 9.1: Ist bei Ihnen ADO schon startklar? Und wenn ja, in welcher Version?
Ob ADO bei Ihnen schon einsatzbereit ist und in welcher Version es vorliegt, verrät Ihnen das folgende Script: ’ 9-1.VBS set fs = CreateObject("Scripting.FileSystemObject") set wshshell = CreateObject("WScript.Shell") msg = "ADO status:" & vbCr & vbCr ’ ist ADODB.Connection vorhanden? on error resume next set dummy = CreateObject("ADODB.Connection") if not err.number = 0 then MsgBox msg & "ADODB.Connection fehlt!" WScript.Quit else msg = msg & "ADODB.Connection funktioniert." & vbCr end if on error goto 0 ’ retrieve files on error resume next clsid = wshshell.RegRead("HKCR\ADODB.Connection\CLSID\") exec = wshshell.RegRead("HKCR\CLSID\" & clsid & "\InProcServer32\") path = Left(exec, InstrRev(exec, "\")-1) path = Left(path, InstrRev(path, "\")-1) & "\Ole DB\" if not err.number=0 then MsgBox msg & "Konnte die Dateiversionen nicht bestimmen!" WScript.Quit end if on error goto 0 ’ check for ADO components filename = "msdadc.dll" if fs.FileExists(path & filename) then filever = fs.GetFileVersion(path &filename) msg = msg & filename & " vorhanden: Version " _ & filever & vbCr else
9.1
Wie kommt man an ADO DB heran?
281
msg = msg & filename & " fehlt." & vbCr end if filename = "oledb32.dll" if fs.FileExists(path & filename) then filever = fs.GetFileVersion(path &filename) msg = msg & filename & " vorhanden: Version " _ & filever & vbCr else msg = msg & filename & " fehlt." & vbCr end if
MsgBox msg, vbInformation
9.1.1
ADO DB Versionsdschungel: So blicken Sie durch
ADO DB besteht aus einer ganzen Reihe von Einzelteilen, und wie immer bei Microsoft geben sich die verschiedenen Versionen die Klinke in die Hand. Mit Hilfe des vorangegangenen Scripts finden Sie sich aber schnell zurecht: ADODB.Connection MSDADC.DLL
OLEDB32.DLL
Version
Fehlt
fehlt
fehlt
vorhanden vorhanden vorhanden vorhanden vorhanden vorhanden vorhanden
1.50.3506.0 2.0.3002.4 2.0.3002.23 2.10.3513.0 2.10.3711.2 2.10.3711.2 2.50.4403.0
fehlt 2.0.1706.0 2.0.1706.0 2.10.3513.0 2.10.3711.2 2.10.3711.9 2.50.4403.3
MDAC (Microsoft Data Access Components) nicht installiert MDAC 1.5c MDAC 2.0 MDAC 2.0 SP1/SP2 MDAC 2.1.0.3513.2 (SQL) MDAC 2.1.1.3711.6 (Internet Explorer 5) MDAC 2.1.1.3711.11 MDAC 2.5 (Windows 2000)
Falls das Script ein fehlendes oder inkomplettes ADO meldet, dann laden Sie sich das kostenlose ADO-Paket direkt von Microsoft aus dem Internet herunter. Generelle Infos bekommen Sie hier: www.microsoft.com/data/ado/default.htm. Das ADO-Nachrüstpaket gibt es kostenlos hier: www.microsoft.com/data/download.htm. Suchen Sie nach MDAC 2.1 oder höher. Richten Sie sich allerdings seelisch darauf ein, daß das Download mit mehr als 6 MB zu Buche schlägt. Tip: Aufpassen mit den verschiedenen ADO-Versionen! Wenn Sie bisher noch gar nicht mit ADO gearbeitet haben, dann besorgen Sie sich am besten per Internet die neueste ADO-Version. Vorsichtiger sollten Sie sein, wenn irgendwelche Anwendungen auf Ihrem Computer bereits per ADO Daten austauschen.
282
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access
Auch wenn die unterschiedlichen ADO-Versionen, die mittlerweile im Umlauf sind, eigentlich alle zueinander abwärtskompatibel sein sollen, ist das nicht immer so. Ihre Anwendung kann also möglicherweise nur mit der (veralteten) ADO-Version zusammenarbeiten, die bereits bei Ihnen installiert ist. Wenn also ADO schon im Einsatz ist, dann rüsten Sie besser nicht auf neuere Versionen auf. »Never change a running system!«
9.1.2
ADO DB-Version bestimmen: die Zweite
Damit Sie sich besser im Versionsdschungel von MDAC und ADO DB zurechtfinden, gibt es eigens dafür bei Windows 2000 sogar eine eigene Komponente. Die fischt vollautomatisch die aktuelle Version für Sie heraus – funktioniert aber nur bei Windows 2000. So könnte das passende Script aussehen: ’ 9-2.vbs set Version = CreateObject("MDACVer.Version") list list list list list
= = = = =
list list list list list
& & & & &
"Version: "Major: " "Minor: " "Build: " "Qfe: " &
" & Version.String & vbCr & Version.Major & vbCr & Version.Minor & vbCr & Version.Build & vbCr Version.Qfe
MsgBox list, vbInformation
Wie Sie sehen, bekommen Sie über String die gesamte Versionsinformation und können über die Einzeleigenschaften Major, Minor, Build und Qfe die Detailinformationen auch einzeln abfragen. Praktisch!
9.2
Informationen aus einer Datenbank auslesen
Jetzt, wo ADO DB bei Ihnen einsatzbereit ist, stellt sich die Frage: Wie kann man damit scriptgesteuert Datenbanken anzapfen und auslesen? Das ist einfacher, als Sie denken! Ein kleines Beispiel finden Sie auf der Buch-CD. Kopieren Sie dazu den Ordner Scriptbeispiele/Kapitel9 auf Ihre Festplatte, öffnen Sie den Ordner, markieren Sie alle Einzelteile (zum Beispiel mit [Strg]+[A], und klicken Sie dann eine der markierten Dateien mit der rechten Maustaste an. Im Kontextmenü wählen Sie Eigenschaften. Nun schalten Sie das Attribut Schreibgeschützt ab und klicken auf OK. Jetzt stehen Ihren Experimenten keine Hindernisse mehr im Weg. Tip: Dateien auf CD – immer mit Schreibschutz! Der Umweg über die Dateiattribute ist keine Schikane – alle Dateien, die Sie auf eine CD-ROM brennen, bekommen automatisch das Schreibgeschützt-Attribut. Ob Sie wollen oder nicht.
9.2
Informationen aus einer Datenbank auslesen
283
Das allein wäre nicht schlimm, doch das Schreibgeschützt-Attribut bleibt der Datei selbst dann noch erhalten, wenn Sie sie von der CD auf die Festplatte kopieren. Deshalb: Nach solchen Kopieraktionen unbedingt dran denken, das Schreibgeschützt-Attribut manuell zu entfernen. Ansonsten können Ihre Scripts die Beispieldatenbank nicht verändern.
9.2.1
Den Inhalt einer Datenbank auflisten
Das Script 9-3.VBS zeigt, wie einfach Sie an den Inhalt der Datenbank herankommen. Wenn Sie es starten, stellt es eine ADO-Verbindung zu einer Access-Datenbank her – die liegt einfach nur zusammen mit Ihrem Script im Dateiordner. Sie brauchen noch nicht einmal MS Access installiert zu haben oder es zu besitzen. ’ 9-3.vbs ’ Ordnernamen finden, in dem das Script liegt myname = WScript.ScriptFullName mypath = Left(myname, InstrRev(myname, "\")) ' Datenbank öffnen set db = CreateObject("ADODB.Connection") db.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _ & mypath & "SAMPLE.MDB") ' über SQL alle Informationen aus Tabelle "Info" auswählen sql = "select * from info" set rs = db.Execute(sql) ' Alle Ergebnisse auslesen (EOF = End Of File) do until rs.EOF for x = 0 to rs.fields.count-1 list = list & rs(x) & vbTab next list = list & vbCr rs.MoveNext loop ' output information MsgBox list
Die Beispieldatenbank enthält anfangs nur einen Datensatz. Daß dieses Script tatsächlich funktioniert und wirklich aktuelle Daten aus der Datenbank ausliest, können Sie auf zwei unterschiedliche Arten beweisen: Entweder besitzen Sie MS Access, dann öffnen Sie die Beispieldatenbank SAMPLE.MDB in Access und fügen einfach weitere Datensätze hinzu. Schauen Sie danach, ob Ihr Script diese ebenfalls ausgibt.
284
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access
Bild 9.2: Datensätze aus beliebigen Datenbanken auslesen – per Script
Oder aber Sie pfeifen auf Access und benutzen einfach wieder Ihre Scripts, um neue Datensätze in die Datenbank zu schreiben. ADO DB kann nämlich nicht nur Daten aus einer Datenbank lesen, sondern auch selbst dort hineinschreiben.
9.2.2
Eigene Daten in die Datenbank einfügen
Das Script 9-4.VBS fragt Sie nach einem Namen und einer E-Mail-Adresse. Beide Informationen werden dann in die Datenbank hineingeschrieben.
Bild 9.3: Per SQL kann Ihr Script mit Datenbanken sprechen
Außerdem zeigt Ihnen das Script, wie es die Daten in die Datenbank schreibt: Ein Dialogfenster präsentiert den entsprechenden SQL-Befehl. Sie werden gleich mehr zu SQL erfahren. ’ 9-4.vbs ’ Ordner finden, in dem Script (und Datenbank) liegen myname = WScript.ScriptFullName mypath = Left(myname, InstrRev(myname, "\")) ’ Daten erfragen name = InputBox("Name eingeben!") email = InputBox("Email-Adresse angeben!") ’ Verbindung zur Datenbank herstellen set db = CreateObject("ADODB.Connection") db.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _ & mypath & "SAMPLE.MDB") ’ Mit SQL neue Daten eintragen sql = "insert into info (name, email) values (’" _ & name & "’, ’" & email & "’)" MsgBox "SQL: " & sql ' SQL ausführen set rs = db.Execute(sql) MsgBox "Infos hinzugefügt!"
9.2
Informationen aus einer Datenbank auslesen
285
Daß dieses Script tatsächlich Daten in die Datenbank eingefügt hat, können Sie sofort nachprüfen: Rufen Sie einfach noch einmal das Script 9-3.VBS auf. Tatsächlich: Ihre neuen Informationen werden aufgelistet!
9.2.3
Daten aus der Datenbank löschen
Ihre ersten Experimente mit 9-4.VBS haben wahrscheinlich eine Menge Datenmüll in die Datenbank eingetragen. Wie kommt der wieder heraus? Zum Glück kann ADO DB auch Daten in der Datenbank löschen. Wie das passiert, zeigt das nächste Script: ’ 9-5.vbs ’ Ordner mit Script und Datenbank ermitteln myname = WScript.ScriptFullName mypath = Left(myname, InstrRev(myname, "\")) ' Datenbank öffnen set db = CreateObject("ADODB.Connection") db.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _ & mypath & "SAMPLE.MDB") ' mit SQL alle Datensätze auswählen sql = "select * from info" set rs = db.Execute(sql) ' alle Datensätze zur Auswahl anbieten do until rs.EOF for x = 0 to rs.fields.count-1 list = list & rs(x) & vbTab next list = list & vbCr rs.MoveNext loop ' welcher Datensatz soll gelöscht werden? delrec = InputBox(list & vbCr _ & "Geben Sie Kennzahl des Datensatzes an, " _ & "der gelöscht werden soll!") if delrec = vbEmpty then WScript.Quit sql = "DELETE FROM info WHERE id = " & delrec db.Execute sql MsgBox "Eintrag gelöscht."
286
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access
Bild 9.4: Löschen Sie Informationen aus Ihrer Datenbank einfach wieder
9.3
Wie’s funktioniert: ADO DB auf die Finger geschaut
Jetzt, wo Sie wissen, wie Sie Daten in Datenbanken auslesen, einfügen und wieder herauslöschen, ist es Zeit, sich die Mechanismen genauer anzusehen. Was passiert eigentlich in den Beispielscripten? Die Beispielscripte verwenden den sogenannten DSN-losen Datenbankzugriff. DSNlos bedeutet: Sie können irgendeine Datenbank verwenden, ohne bürokratischen Aufwand. Die Datenbank braucht also nirgends in Ihrem Computer angemeldet zu sein. Alles, was Sie brauchen, ist der Dateiname der Datenbankdatei. Tip: DSNlos – was steckt dahinter? Sie werden gleich noch den DSN-Zugriff auf Datenbanken kennenlernen. Beide Varianten haben Vorteile, aber der hier gezeigte DSNlose Zugriff ist der geheimnisumwittertste. Kaum irgendwo sonst werden Sie detaillierte Infos darüber finden, und das ist eigentlich schade. Denn der DSNlose Zugriff ist ungeheuer flexibel. Sie könnten damit zum Beispiel auf CD an Kunden Datenbanken weitergeben, die sofort einsatzbereit sind und keine weitere Einrichtung beim Kunden erfordern. Sie könnten ebensogut Access-MDBDateien auf Ihren Webserver hochladen und dann zum Beispiel per ASP-Webseiten direkt auf die Datenbank zugreifen.
Weil Datenbankdateien natürlich irgendwo gespeichert werden können und ich vermeiden wollte, Sie dazu zu zwingen, die Datenbankdatei auf Ihrem Computer in einem ganz bestimmten Ordner abzulegen, geht die Flexibilität noch einen Schritt weiter. Die Scripts sind schlau genug, selbst herauszufinden, in welchem Ordner sie gerade liegen. Diese Information liefert ScriptFullName, und das Script braucht nur noch den reinen Pfadanteil abzuschneiden. Solange Sie also dafür sorgen, daß die Datenbankdatei in genau demselben Ordner liegt wie die Scripts, die darauf zugreifen, brauchen Sie sich um nichts weiter zu kümmern. Natürlich sind Sie nicht dazu gezwungen. Sie könnten ebensogut auch einen vollkommen anderen Datenbank-Pfadnamen angeben.
9.3.1
Eine Datenbankverbindung herstellen
Der erste Schritt beim Zugriff auf Ihre Datenbank ist eine Datenbankverbindung. Die liefert das Objekt ADODB.Connection. Mit der Funktion Open geben Sie an, mit welcher Datenbank Sie ver-
9.4
SELECT: Daten auswählen
287
bunden werden wollen. Damit das klappt, müssen Sie die Art der Datenbank (in diesem Beispiel MS Access) und den Aufenthaltsort der Datenbank (in diesem Fall SAMPLE.MDB im Scriptordner) mit angeben.
9.3.2
Mit SQL die Datenbank »bedienen«
Sobald die Datenbankverbindung »steht«, können Sie mit der universellen Datenbanksprache SQL die Datenbank ausfragen oder verändern. SQL ist eine Standarddatenbanksprache, die für beinahe alle Datenbanktypen genau gleich funktioniert. Formulieren Sie dazu einfach Ihren SQL-Befehl, und lassen Sie ihn mit Execute ausführen. Das Ergebnis ist ein Recordset, das die gewünschten Informationen zurückliefert. Nur: Wie formuliert man SQL-Befehle? Und wie liest man das resultierende Recordset eigentlich aus? Gleich wissen Sie Bescheid!
9.4
SELECT: Daten auswählen
Schauen Sie sich dazu das Script LIES.VBS an. Es möchte gern alle Informationen der Datenbank auslesen. Dazu verwendet es den SQL-Befehl SELECT (select = auswählen). SELECT * FROM INFO bedeutet also frei übersetzt: Suche alles (* = alles) aus der Tabelle Info aus. SELECT kann aber noch viel mehr. Jede Datenbanktabelle besteht aus einzelnen Feldern. Diese Felder heißen in der Beispieldatenbank ID, NAME und EMAIL. Wenn Sie also zum Beispiel nur die Namen auslesen wollen, dann ändern Sie einfach Ihren SQL-Befehl: SELECT NAME FROM INFO
9.4.1
Nur ganz bestimmte Datensätze herausfischen
Sie könnten auch weitere Einschränkungen machen. Wollen Sie zum Beispiel einen ganz bestimmten Datensatz herausfischen, dann schreiben Sie: SELECT * FROM INFO WHERE ID = 1
Sogar Volltextrecherche ist möglich. Wollen Sie nur die Datensätze sehen, bei denen der Name mit »Tobias« beginnt, dann schreiben Sie: SELECT * FROM INFO WHERE NAME LIKE ’Tobias%’
Möchten Sie dagegen alle Datensätze sehen, in denen im Name-Feld irgendwo der Begriff »Welt« vorkommt, dann schreiben Sie: SELECT * FROM INFO WHERE NAME LIKE ’%Welt%’
288
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access
Tip: Jokerzeichen – können auch anders heißen! In der Standard-SQL-Sprache ist % das Jokerzeichen. Dummerweise gibt es verschiedene SQL-Dialekte. Sollte % bei Ihnen nicht funktionieren, dann versuchen Sie statt dessen den Stern (*). Und denken Sie daran: Text gehört innerhalb des SQL-Befehls in einfache Anführungszeichen.
9.4.2
Datenbank-Ergebnis sortieren
Wie Sie sehen, ist SQL (und sein SELECT-Befehl) überaus intelligent und fischt nicht nur blind alle Daten heraus, sondern kann sogar differenzieren. Sogar Sortieren ist möglich. Wollen Sie zum Beispiel alphabetisch nach Namen sortieren, dann verwenden Sie diesen SQLBefehl: SELECT * FROM INFO ORDER BY NAME ASC
Soll in umgekehrter Reihenfolge sortiert werden, dann ist dieser Befehl richtig: SELECT * FROM INFO ORDER BY NAME DESC
9.4.3
Wichtige Fallen rund um SELECT
Das wohl tückischste Zeichen im SQL-Befehl ist das einfache Anführungszeichen. Es begrenzt Textstellen. Was aber machen Sie, wenn Sie ein einfaches Anführungszeichen im Text angeben wollen, zum Beispiel, weil Sie es als Text in die Datenbank schreiben wollen? Einfacher Trick: Schreiben Sie zwei einfache Anführungszeichen! Die werden dann von SQL nicht als Textbegrenzer verstanden, sondern als das, was sie sind. Eine weitere wichtige Falle sind unterschiedliche SQL-Dialekte. Besonders das Jokerzeichen (»%«) muß bei manchen Datenbanktreibern durch einen Stern ersetzt werden (»*«). Ebenso wichtig: Wenn Sie mit Jokerzeichen nach Textstellen suchen, dann verwenden Sie nicht das Gleichheitszeichen, denn schließlich suchen Sie nicht nach exakt gleichen Textstellen. Verwenden Sie statt dessen so wie oben gezeigt den Operator LIKE (like = wie).
9.5
INSERT INTO: Neue Daten in die Datenbank schreiben
Mit INSERT INTO schreiben Sie eigene neue Datensätze in die Datenbank. Das ist das Grundprinzip von Script SCHREIB.VBS. Die genaue Syntax dieses SQL-Befehls sieht so aus: INSERT INTO Tabelle (FELD1, FELD2, ...) VALUES (Wert1, Wert2, ...)
Sie geben also den Tabellennamen und die Feldnamen an, in die Sie etwas schreiben wollen. Über VALUES fügen Sie dann die Datenfelder ein, die in die Felder geschrieben werden sollen. SQL legt automatisch einen neuen Datensatz an und speichert darin Ihre Werte.
9.5
9.5.1
INSERT INTO: Neue Daten in die Datenbank schreiben
289
Tücken rund um INSERT INTO
Damit Ihre Dateneingabe auch wirklich klappt, müssen Sie nur an zwei Dinge denken: • Erstens müssen die Daten, die Sie in das Feld schreiben, auch für das Feld geeignet sein. Ein Feld, das Sie in der Datenbank als Textfeld angelegt haben, kann keine Zahlen speichern – und umgekehrt. Grundsätzlich gilt einfach: In Textfelder schreiben Sie Text, den Sie in einfache Anführungszeichen setzen. Sie könnten also in ein Textfeld schreiben: ’12,67’, aber nicht 12,67. • Halten Sie sich immer vor Augen, daß einfache Anführungszeichen für SQL eine besondere Bedeutung haben: Sie begrenzen Text. Probieren Sie aus, wie leicht das zu einem Malheur führen kann. Starten Sie Script SCHREIB.VBS, und geben Sie als Name ein: ’Test. Als E-MailAdresse geben Sie ein, was Sie möchten. Schon erhalten Sie einen kapitalen Fehler, denn durch das einfache Anführungszeichen in der Eingabe kommt die schöne SQL-Syntax durcheinander, und SQL weiß nicht mehr, wo Ihr Text anfängt und aufhört. Um Eingabefehler zu verhindern, gibt es glücklicherweise einen einfachen Trick. Ersetzen Sie einfach in der Eingabe einzelne Anführungsstriche durch zwei aufeinanderfolgende Anführungszeichen. Schon ist das Problem gelöst. Um also das Script 9-4.VBS sicher zu machen, genügen nur wenige Ergänzungen: ’ 9-6.vbs ’ Ordner finden, in dem Script (und Datenbank) liegen myname = WScript.ScriptFullName mypath = Left(myname, InstrRev(myname, "\")) ’ Daten erfragen name = InputBox("Name eingeben!") email = InputBox("Email-Adresse angeben!") ' Einfache Anführungszeichen entschärfen name = Replace(name, "'", "''") email = Replace(email, "'", "''") ' Verbindung zur Datenbank herstellen set db = CreateObject("ADODB.Connection") db.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _ & mypath & "SAMPLE.MDB") ' Mit SQL neue Daten eintragen sql = "insert into info (name, email) values ('" _ & name & "', '" & email & "')" MsgBox "SQL: " & sql ' SQL ausführen set rs = db.Execute(sql) MsgBox "Infos hinzugefügt!"
290 9.6
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access
DELETE – Informationen aus der Datenbank streichen
Über DELETE löschen Sie ganze Datensätze. Wie das geschieht, hat Script LOESCH.VBS bereits gezeigt. Die genaue Syntax des DELETE-Befehls sieht so aus: DELETE FROM Tabelle WHERE Kriterium
Klar wird sofort, daß Sie irgendein Kriterium brauchen, um die Datensätze auszuwählen, die gelöscht werden sollen. Natürlich könnten Sie SQL einen Befehl wie diesen geben: DELETE FROM INFO WHERE NAME = ’Test’
Hier würden alle Datensätze gelöscht, in deren Name-Feld Test eingetragen ist. Gerade bei größeren Tabellen ist solch ein Ansatz aber brandgefährlich, weil Sie nicht auf Anhieb abschätzen können, ob dabei vielleicht auch ganz andere Datensätze über den Jordan gehen. Viel sicherer und professioneller ist deshalb, Datensätze über eine eindeutige ID-Nummer anzusprechen. Die Beispieltabelle INFO verfügt über eine solche ID-Spalte, und diese Spalte ist vom besonderen Typ AutoNumber. AutoNumber bedeutet: Wann immer Sie einen neuen Datensatz einfügen, bekommt der von der Datenbankengine automatisch einen eigenen eindeutigen ID-Wert zugewiesen. Über den ID-Wert kann der Datensatz eindeutig identifiziert und gefahrlos gelöscht werden. Eine Nebenwirkung des AutoNumber-Feldes haben Sie vielleicht schon kennengelernt: Der automatische Zähler zählt immer weiter, selbst wenn Sie inzwischen Datensätze gelöscht haben. Die Zahlen in der ID-Spalte sind deshalb nicht unbedingt fortlaufend, sondern können Lücken haben. Lücken entstehen immer dann, wenn Sie Datensätze nachträglich löschen.
9.7
Die innere Struktur einer Datenbank aufdecken
Zwar habe ich Ihnen am Anfang des Kapitels verraten, daß die Beispieltabelle INFO aus den Feldern ID, NAME und EMAIL besteht, aber ohne meine Indiskretion hätten Sie dies nie herausgefunden. Wie also würden Sie wissen, welche Feldnamen Sie für Ihre SQL-Experimente verwenden können?
9.7.1
Feldnamen sichtbar machen
Wieder können Scripts helfen. Das nächste Script macht die unsichtbare Struktur einer Datenbanktabelle sichtbar, so daß Sie wissen, mit welchen Feldnamen Sie es zu tun haben und was für Informationen in den Feldern gespeichert werden: ’ 9-7.vbs ’ aktuellen Ordner finden myname = WScript.ScriptFullName mypath = Left(myname, InstrRev(myname, "\"))
9.7
Die innere Struktur einer Datenbank aufdecken
291
' Datenbank öffnen set db = CreateObject("ADODB.Connection") db.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _ & mypath & "SAMPLE.MDB") ' Info auswählen sql = "select * from info" set rs = db.Execute(sql) ' Anzahl Felder fields = rs.fields.count ' Feldnamen ermitteln redim fieldnames(fields-1) for x=0 to fields-1 fieldnames(x) = rs.fields(x).name & " Variablentyp: " & rs.fields(x).type next ' Infos ausgeben msg = "Tabelle besteht aus " & fields & " Feldern:" & vbCr for x = 0 to fields-1 msg = msg & fieldnames(x) & vbCr next ' output information MsgBox msg
Bild 9.5: Scripts können sogar die interne Datenbankstruktur erforschen
9.7.2
Variablentypen der Felder entschlüsseln
Welche Art von Daten in den einzelnen Feldern gespeichert wird, verrät die type-Eigenschaft. Die nächste Tabelle enthüllt, welche Variablentypen hinter den Typ-Kennzahlen stecken: Variablentyp
Beschreibung
8, 12, 129, 130, 200, 201, 202, 203 7, 133, 134, 135 11 9, 10, 13, 128, 132, 204, 205 Alle übrigen
Text Datum/Zeit Boolean (Wahr/Falsch) Spezielle Datentypen (Bilder, Binär, etc.) Zahlen
Tab. 9.1: Variablentypen und deren Codezahlen
292
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access
Sie sehen also auf einen Blick, daß die Beispieltabelle aus drei Feldern besteht, von denen das erste ein numerischer Wert ist. Die übrigen beiden Felder speichern Text.
9.7.3
Alle Tabellen in der Datenbank auflisten
Datenbanken brauchen nicht eine einzelne Tabelle zu enthalten. Sie können so viele Einzeltabellen in Ihrer Datenbank aufbewahren, wie Sie wollen. Die Beispieldatenbank SAMPLE.MDB enthält als Ausgangspunkt nur eine Tabelle namens Info, aber Sie werden gleich sehen, wie leicht es ist, scriptgesteuert neue Tabellen hinzuzufügen. Zuerst allerdings stellt sich die Frage: Woher weiß man eigentlich, welche Tabellen in einer Datenbank stecken? Diese (und viele andere) Antwort(en) liefert das Datenbank-Schema. Dieses Schema ist sozusagen das »Betriebshandbuch« Ihrer Datenbank mit allen Insider-Informationen. Wollen Sie also alle Tabellen in einer Datenbank auflisten, dann geht das so: ’ 9-8.vbs Const adTables = 20 ’ aktuellen Ordner finden myname = WScript.ScriptFullName mypath = Left(myname, InstrRev(myname, "\")) ' Datenbank öffnen set db = CreateObject("ADODB.Connection") db.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _ & "sample.mdb") set tables = db.OpenSchema(adTables) do while not tables.eof list = list & tables("TABLE_NAME") & vbCr tables.MoveNext loop MsgBox list
Huch! Das Script funktioniert zwar, aber es liefert nicht nur die Beispieltabelle Info zurück, sondern gleich einen Schwung mehr. Hinter den Kulissen operieren bei Access-Datenbanken also offenkundig noch einige weitere Systemtabellen, die Sie mit Ihrem Script ins Licht der Öffentlichkeit gezerrt haben.
Bild 9.6: Eigentlich geheim: die System-Tabellen von MS Access
9.7
Die innere Struktur einer Datenbank aufdecken
293
Damit stellen sich schon wieder zwei Fragen: Wie funktioniert die Sache mit dem Schema genau, und wie kann man das Script umschreiben, damit es wirklich nur die »normalen« Tabellen auflistet?
9.7.4
Das Schema: So kommen Sie an Infos heran
Das Schema ist eigentlich nicht ein einzelnes Ding, sondern zahlreiche Recordsets (Ergebnismengen also) zu den verschiedensten Themen. Das Beispielscript von oben hat über OpenSchema die Ergebnismenge mit der Kennzahl adTables (20) angefordert und daraus den Wert TABLE_NAME ausgefragt. Interessant, oder? Welche Kennzahlen gibt es wohl außerdem, und welche Informationen schlummern in den Ergebnismengen wohl sonst noch? Vielleicht ist darunter ja die gesuchte Information, die Systemtabellen von normalen Tabellen unterscheidet. Wer weiß? Sie wissen! Das nächste Script prüft nämlich automatisch, welche Codezahlen bei Ihrer Datenbank funktionieren. Es listet vollautomatisch die Namen der Ergebnisfelder auf und fügt anschließend zuvorkommend die aktuellen Werte ein. Nicht schlecht also. So sieht das Script aus: ’ 9-9.vbs set fs = CreateObject("Scripting.FileSystemObject") set wshshell = CreateObject("WScript.Shell") Const adTables = 20 ’ aktuellen Ordner finden myname = WScript.ScriptFullName mypath = Left(myname, InstrRev(myname, "\")) ' Datenbank öffnen set db = CreateObject("ADODB.Connection") db.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _ & "sample.mdb") for x=0 to 255 on error resume next set rs = db.OpenSchema(X) if not err.number=0 then err.clear on error goto 0 else on error goto 0 ausgabe = "C:\schema" & x & ".txt" set output = fs.CreateTextFile(ausgabe, vbTrue) ' Anzahl Felder fields = rs.fields.count ' Feldnamen ermitteln
294
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access redim fieldnames(fields-1) for y=0 to fields-1 fieldnames(y) = rs.fields(y).name next ’ Infos ausgeben output.writeLine "Codezahl #" & x & "#" output.writeline "Tabelle besteht aus " & fields _ & " Feldern:" for y = 0 to fields-1 output.writeline fieldnames(y) next output.Writeline "Aktuelle Werte aus der Datenbank:" do while not rs.eof output.WriteLine string(50, "*") for y = 0 to fields-1 on error resume next output.writeline fieldnames(y) & "=" _ & rs(fieldnames(y)) if not err.number=0 then err.clear output.writeline fieldnames(y) _ & "=(nicht lesbar)" end if on error goto 0 next rs.MoveNext loop
output.close ’ Eine Sekunde warten WScript.Sleep 1000 wshshell.run """" & ausgabe & """" end if next MsgBox "Info-Suche abgeschlossen."
9.7.5
Na also: Systemtabellen von normalen Tabellen unterscheiden
Tatsächlich werden Sie fündig: Schauen Sie sich schema20.txt an, also die Informationen, die Sie über Codezahl 20 anfordern. Die Textdatei entlarvt, daß es darin neben dem Feld TABLE_NAME unter anderem auch ein Feld namens TABLE_TYPE gibt.
9.7
Die innere Struktur einer Datenbank aufdecken
295
Bild 9.7: Schema 20 zeigt, wie Sie System-Tabellen von normalen Tabellen unterscheiden
Genau dieses Feld liefert die gesuchte Information, und deshalb können Sie nun per Script tatsächlich alle »normalen« Tabellen heraussuchen, die sich in einer Datenbank verbergen: ’ 9-10.vbs Const adTables = 20 ’ aktuellen Ordner finden myname = WScript.ScriptFullName mypath = Left(myname, InstrRev(myname, "\")) ' Datenbank öffnen set db = CreateObject("ADODB.Connection") db.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _ & "sample.mdb") set tables = db.OpenSchema(adTables) do while not tables.eof if tables("TABLE_TYPE")="TABLE" then list = list & tables("TABLE_NAME") & vbCr end if tables.MoveNext loop MsgBox list
296
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access
Wie Sie die übrigen Informationen, die Ihnen das Schema liefert, sinnvoll einsetzen, zeige ich Ihnen gleich. Einstweilen haben wir alle wichtigen Informationen beisammen, um aus der Beispieldatenbank Ihre eigene, ganz persönlich angepaßte Projektdatenbank für dieses und jenes zu machen.
Bild 9.8: Na also: Nur noch User-Tabellen werden gemeldet, Systemtabellen nicht
9.8
Eigene Tabellen anlegen
Ohne MS Access und irgendwelche Zusatzkosten können Sie jede beliebige Tabelle zu einer Datenbank hinzufügen, also frisch und neu anlegen. Alles, was Sie dafür brauchen, ist ein kleines Script. Damit Sie für Ihre eigenen Projekte nicht auf der Beispieldatenbank aufbauen müssen, sondern tatsächlich eine ganz neue Datenbank verwenden können, kopieren Sie zuerst SAMPLE.MDB und bekommen so Ihre ganz eigene Datenbank. Dazu ziehen Sie SAMPLE.MDB mit der rechten Maustaste ein Stück im Ordner und lassen die Maustaste dann los. Im Kontextmenü wählen Sie Hierher kopieren. Drücken Sie auf [F2], und geben Sie der Kopie dann einen anständigen Namen: TEST.MDB [Enter]!
9.8.1
Alle Tabellen in einer Datenbank löschen
Ihre neue Datenbank-Kopie enthält wie das Original die Beispieltabelle INFO. Damit Sie frisch mit einer leeren Datenbank beginnen können, löschen Sie als erstes alle Tabellen darin: ’ 9-11.vbs Const adTables = 20 ’ aktuellen Ordner finden myname = WScript.ScriptFullName mypath = Left(myname, InstrRev(myname, "\")) ' Datenbank öffnen set db = CreateObject("ADODB.Connection") db.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _ & "test.mdb") set tables = db.OpenSchema(adTables) list = "Protokoll:" & vbCr do while not tables.eof if tables("TABLE_TYPE")="TABLE" then
9.8
Eigene Tabellen anlegen
297
sql = "DROP TABLE " & tables("TABLE_NAME") db.Execute sql list = list & "Tabelle """ & tables("TABLE_NAME") _ & """ gelöscht." & vbCr end if tables.MoveNext loop list = list & "Operation abgeschlossen." MsgBox list
Das Script gibt Ihnen zum Schluß seinen Tätigkeitsbericht:
Bild 9.9: Alle Tabellen der Datenbank wurden gelöscht. Die Datenbank ist wieder „frisch“
9.8.2
Eigene neue Datenbank-Tabellen anlegen
Ihre Beispieldatenbank TEST.MDB ist jetzt leer. Nun können Sie damit beginnen, eigene Tabellen darin anzulegen. Dabei hilft das Script 9-12.VBS. ’ 9-12.vbs ’ Automatisch SQL-Befehl anlegen, der neue Tabelle definiert tabname = InputBox("Wie soll die neue Tabelle heißen?") sql = "CREATE TABLE " & tabname & " (" cc = 0 do cc = cc + 1 feldname = InputBox("Name des " & cc & ". Feldes?") feldtyp = InputBox("Typ des neuen Feldes?") sql = sql & feldname & " " & feldtyp & "," antwort = MsgBox("Noch ein Feld anlegen?", vbYesNo + vbQuestion) loop until antwort = vbNo ' letztes Komma entfernen sql = left(sql, len(sql)-1) sql = sql & ")" antwort = MsgBox("SQL-Befehl ist fertiggestellt:" & _ sql & vbCr & "Neue Tabelle anlegen?", vbYesNo + vbQuestion)
298
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access
if antwort = vbYes then ’ aktuellen Ordner bestimmen myname = WScript.ScriptFullName mypath = Left(myname, InstrRev(myname, "\")) ’ Datenbank öffnen set db = CreateObject("ADODB.Connection") db.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _ & mypath & "TEST.MDB") ' SQL ausführen db.Execute sql MsgBox "Tabelle hinzugefügt!" else MsgBox "SQL-Befehl verworfen!" end if
Wenn Sie es aufrufen, fragt es Sie zuerst nach einem Namen für Ihre neue Tabelle. Anschließend fragt es nach den Feldnamen und den Variablentypen. Verwenden Sie als Variablentyp eine der folgenden Schlüsselwörter: Schlüsselwort
Bedeutung
BYTE COUNTER CURRENCY DATETIME DOUBLE LONG LONGTEXT SHORT SINGLE TEXT(Anzahl)
Ganzzahl zwischen 0 und 255 AutoWert-Feld Währung Datum/Zeit, in #-Zeichen einzufassen Gleitkommazahl doppelter Genauigkeit Ganzzahl Text bis max. 1,2 GB, in '-Zeichen einzufassen Ganzzahl zwischen –32.768 und 32.767 Gleitkommazahl einfacher Genauigkeit Textfeld bis max. 255 Zeichen, zum Beispiel TEXT(100) für ein Feld mit 100 Zeichen, in '-Zeichen einzufassen
Tab. 9.2: Variablentypen für Ihre neuen Tabellenfelder
Tip: Aufpassen: unterschiedliche Dialekte! Beim Anlegen einer neuen Tabelle finden Sie leider die meisten Inkonsistenten zwischen den zugrundeliegenden Datenbanken. Die Tabelle oben bezieht sich auf Access-Datenbanken. Bei einer SQL ServerDatenbank würden Sie zum Beispiel autonumerierte Felder über das Schlüsselwort IDENTITY festlegen. COUNTER als Variablentyp ist hier unbekannt.
Angenommen, Sie wollen eine neue Tabelle anlegen, die eine ID-Spalte, ein Datumsfeld, ein Textfeld mit 100 Zeichen, ein Textfeld mit beliebig viel Text und ein Feld für ganze Zahlen enthalten soll:
9.8
Geplante Felder
Feldtypen
ID Datum Name Kommentar Alterszahl
COUNTER DATETIME TEXT(100) LONGTEXT SHORT
Eigene Tabellen anlegen
299
Tab. 9.3: Planungsschema für simple Testdatenbank
So gehen Sie vor: 1. Starten Sie das Script 9-12.VBS. Geben Sie als Tabellen-Name den neuen Namen für Ihre Tabelle ein, also ADRESSBUCH [Enter]. 2. Geben Sie als ersten Feldnamen ein: ID [Enter]. Als Feldtyp geben Sie ein: COUNTER [Enter]. Verfahren Sie dann ebenso mit den übrigen Feldern, die Sie anlegen wollen, und halten Sie sich für dieses Beispiel genau an die Tabelle oben. 3. Sobald alle Felder angelegt worden sind, klicken Sie auf Nein, um keine weiteren Felder anzulegen. Die Tabelle wird in die Datenbank TEST.MDB eingefügt.
Bild 9.10: Automatisch neue Tabellen per Script anlegen
Um den Erfolg zu prüfen, ändern Sie das Script 9-10.VBS etwas ab: Tragen Sie den Namen Ihrer neuen Datenbank ein: TEST.MDB. Tatsächlich: Ihre neue Tabelle wird aufgelistet. Die ursprüngliche Beispieltabelle INFO dagegen wird nicht mehr gefunden. Sie haben sich eine komplett neue Datenbank generiert! Tip: Die Tücken liegen im Detail: reservierte Wörter Vielleicht haben Sie sich gewundert, warum ich das Feld mit dem Alter Alterszahl genannt habe und nicht einfach Alter. Das war die Folge einer schmerzlichen Erfahrung. Alter ist nämlich ein reserviertes SQLWort (alter = verändern). Der SQL-Befehl führte zu ständigen sonderbaren Fehlermeldungen, und erst nachdem ich das reservierte Wort durch einen unbedenklicken Namen ersetzt hatte, funktionierte alles wie geschmiert. Die Lehre daraus: breit denken! Wenn Ihnen selbst Fehler passieren, dann können die unmöglichsten Gründe dafür die Ursache sein.
300 9.8.3
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access
Das steckt dahinter: Variablentypen auflisten
Die Tabelle von oben listet die gebräuchlichsten Datentypen auf, die Sie für Ihr Datenbank-Design verwenden können. Es sind aber längst nicht alle!
Bild 9.11: Das Schema 30 enthält alle definierten Feldtypen
Welche Datentypen (und Schlüsselwörter) Sie genau verwenden können, verrät Ihnen wieder das Schema aus Kapitel 9.7.4. Schauen Sie einfach in die Datei SCHEMA30.TXT, und Sie sehen auf einen Blick alle Schlüsselwörter aller Variablentypen.
Bild 9.10: COUNTER ist ein synthetischer Variablentyp
9.9
Die innere Struktur Ihrer Datenbankzugriffe
301
Nicht alle Variablentypen aus dieser Liste sind wirklich echte Datentypen Ihrer Datenbank. Einige sind einfach »synthetisiert«, also simuliert. Welche das sind, sehen Sie, wenn Sie sich SCHEMA22.TXT ansehen. Im Feld TYPE_NAME lesen Sie den Variablentyp, zum Beispiel COUNTER. Dahinter verbirgt sich, wie Sie inzwischen wissen, ein Auto-Numerierfeld. In Wirklichkeit, das enthüllt die Datei nun, steckt hinter der Auto-Numerierung der echte Variablentyp 3 (Integer). Sie sehen außerdem, daß AUTO_UNIQUE_VALUE auf true/wahr steht – das Feld gibt sich also selbsttätig einen eindeutigen Wert. Ebenfalls interessant: COLUMN_SIZE ist auf 10 eingestellt, der Auto-Numerierwert ist also auf zehn Stellen begrenzt. SCHEMA22.TXT gibt noch viel mehr interessante Infos bekannt. Alle Variablentypen mit CHAR im Namen speichern Text, und die Felder LITERAL_PREFIX und LITERAL_SUFFIX vermelden, daß der Inhalt des Feldes über das einzelne Anführungszeichen abgegrenzt werden muß. DATETIME dagegen speichert Daten und Zeiten, und diese Eingaben werden über das #-Zeichen abgegrenzt. Interessant, oder? Wenn nicht, dann ignorieren Sie diese Details einfach. Lebenswichtig sind sie nicht.
9.9
Die innere Struktur Ihrer Datenbankzugriffe
Jetzt wo die generelle Infrastruktur Ihrer Datenbankzugriffe vorgestellt ist, geht’s eine Stufe tiefer. Mitkommen kann jeder, aber diese Tour ist freiwillig und nicht lebensnotwendig.
Bild 9.13: Der Scripting Spy entlarvt das gesamte ADO DB-Objektmodell
302
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access
Schauen Sie sich zuerst an, welche Objekte an einem Datenbankzugriff beteiligt sind. Da ist zunächst ein Connection-Objekt, das Sie über ADODB.Connection anfordern. Es stellt die Verbindung zu Ihrer Datenbank her. Anschließend lassen Sie über Execute SQL-Anweisungen ausführen. Das Ergebnis von Execute ist ein Recordset-Objekt. Es enthält für jeden zurückgelieferten Datensatz genau ein Record-Objekt. Das ist alles. All diese Objekte können Sie auch direkt besuchen. Dabei hilft wiederum der Scripting Spy von der Buch-CD (siehe auch Kapitel 2).
Bild 9.14: Selbst die geheimnisvollsten Funktionen listet der Scripting Spy für Sie auf
Suchen Sie sich im Modul aussuchen-Register den Eintrag ADODB.Connection heraus, wenn Sie das Innenleben des Connection-Objekts begutachten wollen. Dort finden Sie auch ADODB.Recordset und ADODB.Record sowie einige weitere Objekte: Objekt
Bedeutung
Connection RecordSet Record Command Parameter
Verbindung zu einer Datenbank Sammlung der Ergebnismenge einer Abfrage Einzelergebnis innerhalb eines Recordsets Befehl, der direkt an die Datenbank gerichtet wird Aufruf einer »Gespeicherten Prozedur« in einem Datenbankserver wie z.B. SQL Server
9.10
Objekt
Bedeutung
Error ErrorLookup Stream
Fehlerhandling Fehlerhandling –
System-DSN: Datenbanken systemweit administrieren
303
Tab. 9.4: ADODB-Objekte, mit denen Datenbanken gesteuert werden
9.10
System-DSN: Datenbanken systemweit administrieren
Bislang haben Ihre Scripts von sich aus alle nötigen Verbindungsdetails zur Datenbank angegeben. Das wird DSNlose Verbindung genannt und ist in vielen Fällen erwünscht. Die Alternative hierzu ist die systemweite Administration einer Datenbank. Dabei legen Sie als Systemadministrator fest, wo sich eine Datenbank befindet und welchen Typs sie ist. Ihre Scripts – und alle anderen Anwendungen, die die Datenbankinhalte nutzen sollen – brauchen sich so nicht weiter um diese Details zu kümmern. Haben Sie erst einmal eine System-Datenbank festgelegt, dann kann jedes Programm und jedes Script über ein einfaches Schlüsselwort auf diese Datenbank zugreifen. Schauen Sie sich am besten einfach an, was dahintersteckt. Sie brauchen kaum etwas dazulernen, denn DSN handelt nur davon, die Verbindungsdetails aus den Scripts (und Programmen) umzuverlagern und systemweit zu speichern.
9.10.1 Eine neue System-Datenbank anlegen In diesem Beispiel soll die Beispieldatenbank SAMPLE.MDB als Systemdatenbank verankert werden. Dazu öffnen Sie die Systemsteuerung auf dem Computer, auf dem Sie die Datenbank gespeichert haben. Suchen Sie nach dem Modul 32bit ODBC Datenquellen. Je nach MDAC-Version kann es auch anders heißen und bei Windows 2000 zum Beispiel in der Untergruppe Verwaltung zu finden sein.
Bild 9.15: Über dieses Systemsteuerungsmodul werden Systemdatenquellen definiert
Klicken Sie dann auf das Register System-DSN.
304
Kapitel 9: Auf Datenbanken zugreifen: Universal Data Access
Bild 9.16: Wählen Sie den Treiber für Ihren Datenbanktyp aus, zum Beispiel MS Access
Tip: Benutzer-DSN – das ist der Unterschied Prinzipiell ist es egal, ob Sie das Register System-DSN oder Benutzer-DSN verwenden. Die folgenden Handgriffe sind in beiden Fällen gleich, allerdings nicht das Ergebnis: Eine System-Datenbank steht allen Benutzern des Computers zur Verfügung. Die Verbindungsdetails werden in der Registry im allgemeinen Schlüssel HKEY_LOCAL_MACHINE vermerkt. Nicht so, wenn Sie eine Benutzerdatenbank anlegen. Die wird im persönlichen Registry-Schlüssel HKEY_LOCAL_USER des gerade angemeldeten Benutzers gespeichert, und sie steht auch nur diesem zur Verfügung.
Klicken Sie nun auf Hinzufügen, und wählen Sie den Typ Ihrer Datenbank aus. Prinzipiell tun Sie nun dasselbe wie Ihre Beispielscripte von oben, nur elegant Dialogfenster-unterstützt. Sie legen den Typ (Treibertyp) der Datenbank fest und geben an, wo die Datenbank zu finden ist.
Bild 9.17: Geben Sie an, wo und wie Ihre Datenbank anzutreffen ist
Als Datenbanktyp für SAMPLE.MDB ist Microsoft Access Treiber (*.mdb) die richtige Wahl. Klicken Sie dann auf Auswählen, um die MDB-Datei anzugeben. Stellen Sie im Dialogfenster den Ort ein, wo Sie SAMPLE.MDB (oder jede andere MDB-Datei, die Sie zugänglich machen wollen) aufbewahren.
9.10
System-DSN: Datenbanken systemweit administrieren
305
Im Feld Datenquellenname geben Sie den Klartextnamen an, unter dem Sie die Datenbank künftig ansprechen wollen. Dieser Name ist extrem wichtig, denn diesen Namen verwenden Ihre Scripts künftig. Wählen Sie im Beispiel den Namen meinedatenbank.
9.10.2 Auf eine DSN-Datenbank zugreifen Sobald Sie die Beispieldatenbank verfügbar gemacht haben, können Ihre Scripts besonders leicht darauf zugreifen, und zwar so: Wenden Sie dieselben Scripts an wie oben, doch geben Sie im Open-Befehl nur den Namen Ihrer DSN-Datenbank an, den Sie oben im Feld Datenquellenname angegeben haben. Das ist alles.
307
10 ADSI: Netzwerk und Benutzerkonten verwalten
Sie wollen sehen, welche Computer in Ihrem Netzwerk gerade online sind? Sie möchten sich vollautomatisch eine Liste aller angemeldeten Benutzer ausgeben lassen? Oder vielleicht wollen Sie sogar noch tiefer einsteigen und selbst ganz neue Konten anlegen oder Kennwörter ändern – können Sie auch! Dank ADSI (Active Directory Service Interface) haben Ihre Scripts vollen Zugriff auf alle Sicherheitsund Netzwerkinformationen – ganz ohne aufwendige Eigenentwicklungen. ADSI ist serienmäßig Teil von Windows 2000, aber anders als sein Name impliziert funktioniert es auch auf Windows NT und sogar Windows 9x. Hier muß ADSI lediglich nachgerüstet werden. www.microsoft.com/ adsi hat alle Hintergrundinfos und die nötigen Downloads parat für Sie. Allerdings ist ADSI nur bedingt abwärtskompatibel. Sie können damit zwar Benutzerkonten auch auf einem NT Domänencontroller verwalten, doch ist es nicht möglich, damit lokale Einstellungen eines Windows NT- oder 9x-Computers zu verwalten. Richtig effektiv wird ADSI deshalb erst mit Einzug von Windows 2000. Wer darauf (noch) nicht umsteigen will, kann viel ADSI-Funktionalität allerdings auch heute schon nutzen – per selbstgeschriebener Script-Befehlserweiterung (siehe Kapitel 7). Tip: NT-Sicherheit und Benutzerkonten per API managen Sie sind nicht auf ADSI angewiesen. Wenn Ihnen die ADSI-Möglichkeiten nicht reichen, oder wenn Sie in einem reinen NT-Netzwerk ohne Windows 2000 tief in die Sicherheitseinstellungen eingreifen wollen, dann schauen Sie mal in Kapitel 8.19. Dort zeige ich Ihnen, wie Sie auch ohne ADSI allein mit der Windows-API die nötigen Funktionen selbst zusammenbasteln.
10.1
ADSI – die Geheimtür in die Netzwerkwelt aufstoßen
Sobald ADSI auf Ihrem Computer installiert ist – das ist bei Windows 2000 von Anfang an der Fall –, können Sie über das Schlüsselwort ADs: in die ADSI-Welt einsteigen. Direkt hinter der Falltür in die geheime ADSI-Welt begegnen Ihnen zuerst die unterschiedlichen Provider. Provider sind Module, die Ihnen Zugriff auf die unterschiedlichsten Datenquellen liefern. Ein wichtiger Provider heißt WinNT: und bietet Ihnen vollen Zugriff auf Computer, Benutzerkonten und Netzwerkverbindungen. Benutzen Sie nicht Windows 2000, dann muß ADSI zuerst installiert werden. Das kostenlose Download für Windows NT und 9x finden Sie hier: www.microsoft.com/adsi.
308
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
10.1.1 Welche Datenquellen kann ADSI sichtbar machen? Welche Informations-Provider Ihr ADSI ausfragen kann, findet das nächste Script galant für Sie heraus: ’ 10-1.vbs set namespace = GetObject("ADs:") list = "Unterstützte Provider:" & vbCr & vbCr for each provider in namespace list = list & provider.name & vbCr next MsgBox list, vbInformation
Hinter den Abkürzungen verbergen sich die folgenden Informationsdienste: Provider
Beschreibung
WinNT:
Computerverwaltung (lokale Windows 2000-Rechner und Windows 2000 oder -NT Domänen-Controller) Novell NetWare 3.0 Novell NetWare Directory Service Lightweight Directory Access Protocol, Zugriff zum Beispiel auf das Active Directory oder Exchange Internet Information Server (Webserver)
NWCOMPAT: NDS: LDAP: IIS:
Tab. 10.1: ADSI-Provider, die Zugriff auf unterschiedliche Informationsräume bieten
In diesem Kapitel beschränke ich mich auf den WinNT:-Provider. Die übrigen installierten Provider machen aber deutlich: Über ADSI greifen Sie auf genau demselben Wege auch auf ganz andere Informationen zurück und könnten zum Beispiel einen Exchange-Server managen oder Informationen via LDAP: aus dem Active Directory auslesen. ADSI ist damit ein generischer Ansatz, um Informationen jeglicher Art abzufragen. Doch zurück zur Praxis. Wie funktioniert der Zugriff auf einen Provider?
10.2
WinNT: Computerverwaltung par excellence
Schauen Sie sich doch einfach mal an, was WinNT: zu bieten hat. Das geht ganz einfach, nämlich so: ’ 10-2.vbs set adsi = GetObject("WinNT:")
10.2
WinNT: Computerverwaltung par excellence
309
for each object in adsi list = list & object.name & vbCr next MsgBox list, vbInformation
Erstaunlich, oder? Dieses Miniscript listet Ihnen alle Arbeitsgruppen und Domänen auf, die derzeit in Ihrem Netzwerk online sind.
Bild 10.1: Alle Arbeitsgruppen und Domänen auflisten
Die oberste Stufe in der WinNT:-Hierarchie sind also die Arbeitsgruppen und Domänen. Tip: WinNT: unterscheidet zwischen Groß- und Kleinschreibung! Denken Sie daran: WinNT:, der Provider-Name, funktioniert nur, wenn Sie ihn genauso verwenden wie hier gezeigt. Zwischen Groß- und Kleinschreibung wird unterschieden, und WINNT: würde zum Beispiel mißlingen.
10.2.1 Alle Computer auflisten, die momentan online sind Was können Sie mit diesen Informationen anfangen? Sie können zum Beispiel in Arbeitsgruppen und Domänen hineinschauen und herausfinden, welche Computer zur Zeit online sind: ’ 10-3.vbs
set adsi = GetObject("WinNT:") ' alle Domänen auskundschaften... for each domain in adsi list = list & "Domäne online: " & domain.name & vbCr ' alle Computer in der Domäne auflisten ' Inhalt beschränken auf Elemente, ' die vom Typ "Computer" sind domain.Filter = Array("Computer") ' alle Computer auflisten: for each computer in domain list = list & " Computer online: " _
310
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten & computer.name & vbCr
next next MsgBox list, vbInformation
Spätestens hier bemerken Sie, daß nur Windows 2000-Computer und Windows NT-Domänencontroller von ADSI erkannt werden. Hängt auch ein Windows 98-Rechner in Ihrem Netzwerk, der nicht Mitglied der Windows NT-Domäne ist, dann bleibt er unsichtbar.
Bild 10.2: Alle Computer im Netzwerk auflisten
Wie die Sache funktioniert... So funktioniert die Magie hinter den Kulissen: Mit GetObject greifen Sie zuerst auf WinNT: zu und bekommen ein Objekt zurück. Es ist eine Auflistung aller Domänen und Arbeitsgruppen, die derzeit in Ihrem Netzwerk online sind. Weil das Script nur an Computern interessiert ist, setzt es einen Filter. Damit fischt es sich nur die Objekte in der Arbeitsgruppe oder Domäne heraus, deren Typ (Klasse) »Computer« lautet. Tip: Filter kann mehrere Klassen kombinieren! Filter will immer mit einem Variablenfeld gefüttert werden. Deshalb verwendet das Script den VBScriptBefehl Array, der ein Variablenfeld generiert. Der Vorteil: Ihr Variablenfeld – oder Filter – braucht sich nicht auf eine bestimmte Klasse festzulegen. Wenn Sie mögen, dann filtern Sie doch neben Computern außerdem auch Benutzerkonten heraus! Dazu ersetzen Sie Array("Computer") einfach durch Array("Computer", "User"). Und wenn Sie sich den Effekt von Filter genauer vornehmen wollen, dann lassen Sie die Filter-Zeile einfach weg. Jetzt werden alle Objekte aufgelistet, die in der Arbeitsgruppe oder Domäne zu finden sind.
Anschließend listet eine weitere for each...next-Schleife alle Objekte des Typs »Computer« auf. Das Ergebnis ist die gesuchte Liste aller Computer, die in Ihrem Netzwerk momentan online sind.
10.3
Spionage: Welche Informationen liefert ein Objekt eigentlich?
Bevor Sie tiefer in die ADSI-Welt einsteigen, schauen Sie sich an, wie leicht Sie herausfinden, welche Informationen ein Objekt eigentlich anzubieten hat. Es stellt sich zum Beispiel die Frage, welche Informationen in einem Domänen-Objekt verborgen sind. Das nächste Script beantwortet diese Frage:
10.3
Spionage: Welche Informationen liefert ein Objekt eigentlich?
311
’ 10-4.vbs ’ Zugang zum Namespace: set winnt = GetObject("WinNT:") ' erste gefundene Domäne herausgreifen: for each domain in winnt exit for next ' Schema erfragen ' (das Schema enthält die Infos über das Objekt) set schema = GetObject(domain.schema) list = domain.name & vbCr list = list & "Standard-Eigenschaften:" & vbCr ' Standard-Eigenschaften abfragen for each prop in schema.MandatoryProperties list = list & prop & vbCr next list = list & vbCr & "Optionale Eigenschaften:" & vbCr ' optionale Eigenschaften abfragen for each prop in schema.OptionalProperties list = list & prop & vbCr next MsgBox list, vbInformation
Tip: Domänennamen direkt angeben Dieses und die folgenden Scripts greifen sich wahllos die erste auffindbare Domäne heraus, die es finden kann. Für Ihre Zwecke wesentlich geeigneter ist, die Domäne direkt anzugeben. Streichen Sie die ersten Zeilen des Scripts, und schreiben Sie: set domain = GetObject("WinNT://DOMAINNAME"). Mit dieser Zeile würden Sie die Domäne »Domainname« direkt ansprechen.
Bild 10.3: Informationen, die in einem Domänen-Objekt schlummern
312
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Arbeitsgruppen und Domänen verfügen also über diese optionalen Eigenschaften: Eigenschaft
Bedeutung
MinPasswordLength MinPasswordAge MaxBadPasswordsAllowed
Mindestlänge neuer Kennwörter Mindestalter eines Kennworts in Sekunden, bevor es geändert werden kann Maximale Anzahl von Fehleingaben des Kennworts, bevor das Benutzerkonto gesperrt wird (0=keine Sperrung) Maximales Alter eines Kennworts in Sekunden. Ist das Alter überschritten, dann muß das Kennwort geändert werden. Zusätzliche Eigenschaften für Kennworte Maximale Anzahl von Plätzen in der Kennwortliste. Kennwörter in dieser Liste kann der Benutzer nicht neu vergeben, wenn er sein Kennwort ändert Mindestzeit in Sekunden, bevor ein Benutzerkonto automatisch wieder aktiviert wird, wenn es deaktiviert worden ist Überwachungszeit in Sekunden; loggt sich der User innerhalb dieser Zeit mehr als die in MaxBadPasswordsAllowed erlaubten Versuche vergeblich ein, dann wird das Konto gesperrt.
MaxPasswordAge PasswordAttributes PasswordHistoryLength AutoUnlockInterval LockoutObservationInterval
Tab. 10.2: Das Domänen-Objekt
Tip: Arbeitsgruppen »ticken« anders als echte Domänen Zwar verfügen auch ganz normale Arbeitsgruppen über die oben genannten Eigenschaften, allerdings nur »pro forma«. Echte Informationen können Sie nur erwarten, wenn Sie eine echte NT- oder Windows 2000-Domäne ansprechen.
10.3.1 Domänen-Informationen ausfragen Nachdem Sie jetzt wissen, welche Informationen ein Domänen-Objekt zu bieten hat, fragen Sie doch mal nach, welche Informationen das genau sind: ’ 10-5.vbs ’ Zugang zum Namespace: set winnt = GetObject("WinNT:") ' erste gefundene Domäne herausgreifen: for each domain in winnt exit for next ' Schema erfragen ' (das Schema enthält die Infos über das Objekt) set schema = GetObject(domain.schema) list = "Infos zur Domäne " & domain.name & vbCr
10.3
Spionage: Welche Informationen liefert ein Objekt eigentlich?
313
for each prop in schema.MandatoryProperties list = list & prop & "=" & Ask(domain, prop) & vbCr next for each prop in schema.OptionalProperties list = list & prop & "=" & Ask(domain, prop) & vbCr next MsgBox list, vbInformation function Ask(obj, property) ’ fragt eine Eigenschaft ab ’ zuerst Fehlerhandling abschalten on error resume next ’ Information abfragen Ask = obj.get(property) ’ fehlerfrei? if not err.number=0 then ’ nein, Fehler! err.clear Ask = "kein Ergebnis" end if end function
Die Get-Funktion liest Eigenschaften aus einem Objekt aus.
Bild 10.4: Einstellungen der Domäne kontrollieren
Informationen bekommen Sie allerdings nur, wenn Sie eine echte Domäne ansprechen. Bei einfachen Arbeitsgruppen sind keine Informationen verfügbar.
10.3.2 Standardeigenschaften der Domäne ändern Die meisten Informationen können Sie nicht nur auslesen, sondern auch ändern. Bevor Sie das tun, denken Sie aber an diese beiden Fakten:
Die Eigenschaften funktionieren nur bei »echten« Domänen, nicht bei einfachen Arbeitsgruppen.
314
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Ihre Änderungen wirken sich sofort aus und können folgenschwere Konsequenzen haben, die Sie sich vor Augen halten sollten. Setzen Sie zum Beispiel MinPasswordLength auf 10, dann hat dies zwar keinen Einfluß auf schon existierende Benutzerkonten. Neue Kennwörter werden aber nur noch akzeptiert, wenn sie aus mindestens 10 Zeichen bestehen.
So setzen Sie Eigenschaften einer Domäne: ’ 10-6.vbs
’ Zugang zum Namespace: set winnt = GetObject("WinNT:") ' erste gefundene Domäne herausgreifen: for each domain in winnt exit for next ' Minimale Kennwortlänge auf 3 Zeichen einstellen: domain.MinPasswordLength = 3 domain.SetInfo MsgBox "Mindestlänge des Kennworts gesetzt auf 3!"
Neue Einstellungen können direkt über den Namen der Eigenschaft im Objekt gespeichert werden. Aktiviert werden die neuen Einstellungen aber erst, wenn Sie SetInfo aufrufen. Dieser Befehl schreibt die Daten aus dem Objekt zurück in die NT-Richtlinien und die Sicherheitsdatenbank.
10.4
Das Schema: »Bedienungsanleitung« eines Objekts
ADSI schachtelt Informationen in Objekten, so viel ist inzwischen klar. Das WinNT:-Objekt enthält zum Beispiel alle Arbeitsgruppen und Domänen. Eine Domäne enthält wiederum – neben anderen Dingen – die Computer. In einem Computer-Objekt finden Sie dann zum Beispiel lokale Benutzerkonten. Und damit endlich sind Sie am Boden der Hierarchie angekommen: Ein Benutzerkonto enthält nur noch Informationen, aber keine weiteren Objekte in seinem Bauch. Woher wissen Sie aber, ob ein Objekt ein Container ist, und falls es ein Container ist, welche Informationen darin gespeichert sein könnten? Diese Information liefert das Schema des Objekts. Das Schema haben Sie eben schon kennengelernt. Das Schema ist sozusagen die Bedienungsanleitung eines Objekts, in der – über MandatoryProperties und OptionalProperties – die Eigenschaften des Objekts beschrieben sind. Darüber hinaus liefert das Schema-Objekt weitere wichtige Informationen. Hier alle Schema-Eigenschaften in der Übersicht:
10.4
Das Schema: »Bedienungsanleitung« eines Objekts
315
Schema-Eigenschaft
Bedeutung
MandatoryProperties
Eigenschaften, die auf jeden Fall festgelegt sein müssen, bevor dieses Objekt neu angelegt werden kann Eigenschaften, die wahlweise zusätzlich angelegt sein können True, wenn das Objekt ein Container ist, also weitere Objekte enthält. Diese Objekte können dann mit for each...next ausgelesen werden Ist das Objekt ein Container, dann liefert Containment eine Liste der Objekttypen, die in diesem Container vorkommen können
OptionalProperties Container Containment
Tab. 10.3: Befehle eines Schema-Objekts
Interessant, oder? Probieren Sie doch mal aus, ob ein Domänenobjekt tatsächlich als Container erkannt wird und welche Objekttypen es enthalten kann: ’ 10-7.vbs ’ Zugang zum Namespace: set winnt = GetObject("WinNT:") ' erste gefundene Domäne herausgreifen: for each domain in winnt exit for next ' Schema erfragen ' (das Schema enthält die Infos über das Objekt) set schema = GetObject(domain.schema) MsgBox "Ist Objekt ein Container? " & schema.Container if schema.Container then list = "Liste der möglichen Objekttypen:" & vbCr for each typ in schema.Containment list = list & typ & vbCr next MsgBox list, vbInformation end if
Tatsächlich: Das Domänenobjekt wird korrekt als Container identifiziert, und ADSI meldet, daß darin Objekte der Typen User, Group und Computer vorkommen können. Aha.
Bild 10.5: Welche Objekte können in einem Domänen-Container liegen?
316
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Probieren Sie dasselbe mit einem Computer aus! In diesem Beispiel findet das Script automatisch den Computernamen Ihres lokalen Computers heraus: ’ 10-8.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName ’ Zugang zum Namespace: set computer = GetObject("WinNT://" & computer) ’ Schema erfragen ' (das Schema enthält die Infos über das Objekt) set schema = GetObject(computer.schema) MsgBox "Ist Objekt ein Container? " & schema.Container if schema.Container then list = "Liste der möglichen Objekttypen:" & vbCr for each typ in schema.Containment list = list & typ & vbCr next MsgBox list, vbInformation end if
Auch hier funktioniert die Sache, und Sie erfahren nicht nur, daß Computer Container sind, sondern daß in diesen Containern Objekte vom Typ User, Group, Service, Print Queue und FileService gespeichert werden können. Nochmal aha!
10.4.1 Welche Objekte gibt es eigentlich? Hier eine Gesamtübersicht über alle Objekte, die der WinNT: Provider kennt: Objektname
Beschreibung
Domain Computer User Group Service FileService PrintQueue
Domäne oder Arbeitsgruppe Computer im Netzwerk Benutzerkonto Benutzergruppe Dienst eines Windows NT/2000-Rechners Datei- und Druckerfreigabedienst Druckerwarteschlange eines Netzwerkdruckers
Tab. 10.4: Alle Objekte des WinNT:-Providers
Zusammen mit Filter könnten Sie nun beispielsweise herausfinden, welche Computer in Ihrem Netzwerk einen Netzwerkdrucker zur Verfügung stellen (siehe unten).
10.4
Das Schema: »Bedienungsanleitung« eines Objekts
317
10.4.2 Den Typ eines beliebigen Objekts herausfinden Jetzt brauchen Sie eigentlich nur noch eins zu wissen: Wie finden Sie heraus, was für eine Art von Objekt Sie vor sich haben? Wie können Sie wissen, zu welchem Typ ein bestimmtes Objekt gehört? Diese wichtige Information liefert die Eigenschaft Class. Das nächste Script listet alle Objekte auf, die in einem Computer anzutreffen sind, und gibt zusätzlich den Typ des Objekts aus: ’ 10-9.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName ’ Zugang zum Namespace: set computer = GetObject("WinNT://" & computer) MsgBox "Habe ein Objekt vom Typ " & computer.class & " gefunden!" for each object in computer list = list & "Typ: " & object.class _ & " Name: " & object.name & vbCr next MsgBox list
Bild 10.6: ADSI kommt an Dienste, Benutzerkonten und vieles mehr heran
318
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
10.4.3 Objekte und deren Inhalt managen Bislang haben Sie ADSI-Container vor allem als Vehikel gebraucht, um Informationen über Ihren Computer und Ihr Netzwerk herauszufinden. Objekte können aber noch weitaus mehr. Jeder Container verfügt über diese Funktionen: Funktion
Bedeutung
Filter
Will mit einem Variablenfeld gefüttert werden, das festlegt, auf welche Objekttypen dieses Objekt beschränkt wird; Sie können damit filtern, welche Objekttypen aufgelistet werden, die in diesem Container lagern Liefert ein ADSI-Objekt zurück, das dem angegebenen ADSI-Pfadnamen entspricht Legt ein neues Objekt des gewünschten Typs im Container an Löscht das angegebene Objekt aus dem Container Kopiert ein Objekt, das Sie angeben, in diesen Container hinein Verschiebt ein Objekt, das Sie angeben, in diesen Container hinein
GetObject Create Delete Copyhere Movehere
Tab. 10.5: Funktionen eines ADSI-Containers
Sie werden gleich zahlreiche Beispiele für all diese Funktionen finden.
10.5
ADSI-Fehler: Wissen, was schiefläuft
Klar, daß in den besten Scripts auch Fehler vorkommen. Ein falsch geschriebener Benutzerkontenname beispielsweise oder ein Tippfehler an anderer Stelle. Ebenso denkbar: Sie versuchen, an die Informationen eines Netzwerkcomputers heranzukommen, aber der ist zur Zeit leider ausgeschaltet und also nicht erreichbar. Solchen Fehlern kommt VBScript natürlich schnell auf die Schliche und präsentiert dann sein herrlich sprödes Fehlermeldungs-Fenster. Dummerweise nur enthält dieses Fenster in vielen Fällen keine sinnvollen Fehlerbeschreibungen, sondern bloß astronomisch große Fehlerzahlen. Wie soll man da herausfinden, was der Grund für den Fehler war?
10.5.1 Wichtige ADSI-Fehler abfangen Glücklicherweise stammen die meisten ADSI-Fehler immer aus derselben Fehlergruppe. Alle Fehlercodes, die mit 0x80005 beginnen, stammen von ADSI selbst. Hier eine Liste der Ursachen: Fehlercode
Beschreibung
0x80005000 0x80005001 0x80005002 0x80005003
ADSI-Pfadname war ungültig Domäne unbekannt Benutzerkonto unbekannt Computer unbekannt
10.5
ADSI-Fehler: Wissen, was schiefläuft
319
Fehlercode
Beschreibung
0x80005004 0x80005005 0x80005006 0x80005007 0x80005008 0x80005009 0x8000500A 0x8000500B 0x8000500C 0x8000500D 0x8000500E 0x8000500F 0x80005010 0x80005011 0x80005012 0x80005013 0x80005014
Unbekanntes Objekt wurde angefordert ADSI-Eigenschaft ist nicht gesetzt (nicht vorhanden) ADSI-Eigenschaft wird nicht unterstützt ADSI-Eigenschaft ist ungültig Einer oder mehrere Eingabewerte sind ungültig Angegebenes Objekt ist nicht im Objekt enthalten Die angegebene Eigenschaft wurde nicht geändert Die angegebene Eigenschaft wurde geändert ADSI Variablentyp kann nicht konvertiert werden Die angegebene Eigenschaft kann nicht im Property Cache gefunden werden Das Objekt existiert bereits Aktion steht im Konflikt zu den Schema-Vorgaben Die angegebene Spalte wurde während einer Abfrage nicht definiert Während einer Abfrage sind Fehler aufgetreten Keine weiteren Zeilen abfragbar Keine weiteren Spalten abfragbar Suchfilter ist ungültig
Tab. 10.6: ADSI-Fehlercodes
In aller Regel werden Sie mit dem WinNT:-Provider aber gar keine ADSI-Fehler empfangen, sondern Win32-Fehler. Die beginnen mit 0x8007. Der DOS-Befehl NET HELPMSG verwandelt solche Fehler in Klartext. Allerdings steht dieser Befehl nur bei Windows NT/2000 zur Verfügung. Für Windows 9x-Benutzer habe ich im Anschluß eine Idee anzubieten. Konzentrieren Sie sich auf die letzten vier Zahlen der Fehlermeldung und wandeln diese mit einem Taschenrechner in dezimale Schreibweise um. Anschließend füttern Sie in einem DOS-Fenster den Befehl NET HELPMSG mit dieser Zahl. Oder einfacher: Verwenden Sie das nächste Script. In der InputBox des Scripts steht bereits 8007. Fügen Sie die zusätzlichen vier Zahlen der Fehlermeldung hinzu. Geben Sie zum Beispiel ein: 80070C85. ’ 10-10.vbs fehlercode = InputBox("Bitte geben Sie den Fehlercode ein:" _ ,,"8007") if not left(fehlercode,4)="8007" then MsgBox "Diesen Fehlercode kann ich nicht entschlüsseln!" end if ' spezifischen Anteil holen: errcode = Fix("&H" & mid(fehlercode, 5)) MsgBox "Fehlercode lautet: " & errcode
Es fragt nach der Fehlernummer und errechnet daraus die dezimale Fehlerzahl. Anschließend gehen Sie so vor:
320
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
1. Wählen Sie im Startmenü Ausführen, und geben Sie ein: %COMSPEC% [Enter]. Ein DOS-Fenster öffnet sich. 2. Geben Sie ein: NET HELPMSG, fügen Sie ein Leerzeichen und dann die Fehlernummer ein, und drücken Sie [Enter]. Das alles wird vom nächsten Script automatisiert: ’ 10-11.vbs fehlercode = InputBox("Bitte geben Sie den Fehlercode ein:" _ ,,"8007") if not left(fehlercode,4)="8007" then MsgBox "Diesen Fehlercode kann ich nicht entschlüsseln!" end if ' spezifischen Anteil holen: errcode = Fix("&H" & mid(fehlercode, 5)) ' an DOS-Befehl verfüttern set wshshell = CreateObject("WScript.Shell") cmd = "%COMSPEC% /K NET HELPMSG " & errcode wshshell.Run cmd
Wenn Sie mögen, können Sie sich auch dynamisch eine Liste aller Fehler ausgeben lassen. Das nächste Script erstellt eine HTML-Referenz, die alle Win32-Fehlermeldungen auflistet. Das kann einige Minuten dauern: ’ 10-12.vbs MsgBox "Ermittle alle Win32-Fehlermeldungen. " _ & "Das kann eine Weile dauern..." set wshshell = CreateObject("WScript.Shell") set fs = CreateObject("Scripting.FileSystemObject") tempfile = "C:\CODE.TXT" ausgabe = "C:\LISTE.HTM" set ausgeben = fs.CreateTextFile(ausgabe,true) ausgeben.WriteLine "
" for x = 0 to 65535 cmd1 = "NET HELPMSG " & x cmd2 = "%COMSPEC% /C NET HELPMSG " & x & " > " & tempfile ' temporäre Ausgabedatei löschen, falls vorhanden if fs.FileExists(tempfile) then fs.DeleteFile tempfile end if ' schauen, ob Fehlermeldung erlaubt ist result = wshshell.Run(cmd1,0,true) if result = 0 then
10.5
ADSI-Fehler: Wissen, was schiefläuft
321
’ ja, erlaubt, also Meldung ausfragen result = wshshell.Run(cmd2,0,true) ’ Ergebnis einlesen set einlesen = fs.OpenTextFile(tempfile) ausgeben.Write "" & "0x8007" & _ right("000" & hex(x),4) & " | " ausgeben.Write "" & Convert(einlesen.ReadAll) _ & " | " ausgeben.WriteLine "
" einlesen.Close end if next
ausgeben.Write "
" ausgeben.close wshshell.Run ausgabe function Convert(text) Convert = Trim(Replace(text, chr(132), chr(228))) Convert = Replace(Convert, chr(129), chr(252)) Convert = Replace(Convert, chr(142), chr(196)) Convert = Replace(Convert, chr(154), chr(220)) Convert = Replace(Convert, chr(153), chr(214)) Convert = Replace(Convert, chr(148), chr(246)) Convert = Replace(Convert, chr(225), chr(223)) end function
Daneben gibt es Fehlermeldungen, die mit 0x80004 beginnen. Diese Fehlermeldungen stammen direkt vom OLE-Subsystem und liefern in der Regel keine nützlichen Hinweise auf die eigentliche Fehlerursache. Leider. Fehlernummer
Ursprung
0x80004... 0x80005… 0x8007…
OLE-Subsystem ADSI Win32
Tab. 10.7: Hexadezimale Fehlernummern und deren Ursprung
10.5.2 Fehlerursachen direkt erfragen: eigene Befehlserweiterung Natürlich ist es schlichtweg unmöglich, in einem Script alle nur denkbaren Fehlernummern abzufangen und entsprechende Meldungen auszugeben. Das ist in den meisten Fällen auch gar nicht nötig. Oft läßt sich von vornherein abschätzen, welche der Fehler unter Umständen auftreten könnten, und es genügt, sich auf diese Fehlermeldungen zu konzentrieren. Ein wesentlich effektiverer Ansatz ist eine kleine Befehlserweiterung, die ich für Sie geschrieben habe. Die wandelt auto-
322
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
matisch die unleserlichen Fehlernummern des Win32-Subsystems in Klartext um. Sie finden die Befehlserweiterung auf der Buch-CD im Ordner OLEERR. Damit Sie sie einsetzen können, genügt es, die OCX-Datei auf Ihrem System registrieren zu lassen: 1. Kopieren Sie die Datei OLEERROR.OCX von der Buch-CD in Ihren Windows-Systemordner. 2. Wählen Sie im Startmenü Ausführen, und geben Sie ein: REGSVR32 OLEERROR.OCX [Enter]. Anschließend können Ihre Scripts ganz leicht den passenden Klartextnamen zu jeder Fehlermeldung erfragen. So wird’s gemacht: ’ 10-13.vbs set oleerr = CreateObject("OLE.Err") fehlernummer = InputBox("Geben Sie die Fehlernummer ein!") ’ hexadezimale Zahl in dezimale Zahl umwandeln fehlernummer = Fix("&H" & fehlernummer) MsgBox oleerr.OLEError(fehlernummer)
Das Script fragt nach der vollständigen hexadezimalen Fehlernummer. Geben Sie beispielsweise 0 ein, dann meldet das Script »Der Vorgang wurde erfolgreich beendet.«. Geben Sie statt dessen 80070035 ein, dann meldet das Script »Der Netzwerkpfad wurde nicht gefunden.« Damit können Sie ab sofort alle kritischen Script-Teile mit komfortablem Fehlerhandling ausstatten. Ohne Ihre neue Befehlserweiterung sähe der Scriptcode so aus: ’ 10-14.vbs ’ mit Netzwerkcomputer verbinden ’ eingebautes Fehlerhandling abschalten: on error resume next ’ Verbindung aufnehmen: set computer = GetObject("WinNT://computer12,computer") ’ nachsehen, ob alles glatt ging if not err.number=0 then ’ Fehler aufgetreten MsgBox "Konnte Verbindung nicht herstellen: " _ & err.description err.clear else MsgBox "Verbindung wurde hergestellt." end if ’ Fehlerhandling wieder aktivieren on error goto 0
Sie können Fehler zwar abfangen, bekommen aber keine vernünftige Fehlerbeschreibung.
10.5
ADSI-Fehler: Wissen, was schiefläuft
323
Bild 10.7: Endlich vernünftige Fehlermeldungen anstelle kryptischer Zahlen
Mit der neuen Befehlserweiterung sieht die Sache so aus: ’ 10-15.vbs set oleerr = CreateObject("OLE.Err") ’ mit Netzwerkcomputer verbinden ’ eingebautes Fehlerhandling abschalten: on error resume next ’ Verbindung aufnehmen: set computer = GetObject("WinNT://computer12,computer") ’ nachsehen, ob alles glatt ging if not err.number=0 then ’ Fehler aufgetreten MsgBox "Konnte Verbindung nicht herstellen: " _ & oleerr.OLEError(err) err.clear else MsgBox "Verbindung wurde hergestellt." end if ’ Fehlerhandling wieder aktivieren on error goto 0
Schon wesentlich besser. Hier noch zwei Dinge, an die Sie danken müssen:
In einfachen Fällen wie diesem Beispiel brauchen Sie die Befehlserweiterung nicht unbedingt. Bekommen Sie nach versuchter Verbindungsaufnahme einen Fehler (err.Number ist dann nicht null), so wissen Sie in der Regel die Ursache. Bei komplexeren Scripts sind die Fehlermeldungen der Befehlserweiterung dagegen auf jeden Fall Gold wert.
Wenn Sie mit on error resume next die Fehlerbehandlung abschalten, dann denken Sie unbedingt daran, die Fehlerbehandlung zum frühest möglichen Zeitpunkt mit on error goto 0 wieder einzuschalten. Ansonsten würden Fehler, die später auftreten und an die Sie gar nicht gedacht haben, ebenfalls verschluckt. Schalten Sie außerdem bei einem Fehler den Fehlermelder wieder mit err.clear »in Ruhe«, weil der Fehlerstatus sonst weiter aktiv wäre und beim nächsten Fehlercheck erneut gemeldet würde.
324 10.6
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Informationen über Computer erfragen
Sie kennen nun alle ADSI-Grundfunktionen. Wie universell sie sich einsetzen lassen, zeigen die nächsten Scripts. Probieren Sie die Scripts einfach aus, und vergessen Sie bitte nicht, wo nötig den vorgegebenen Computernamen //SCENIC1 durch den Computernamen zu ersetzen, den Sie in Ihrem Netzwerk tatsächlich untersuchen wollen.
10.6.1 Alle Computer sehen, die gerade online sind Das nächste Script listet alle ADSI-fähigen Computer einer jeglichen Arbeitsgruppe oder Domäne auf: ’ 10-16.vbs set winnt = GetObject("WinNT:") for each domain in winnt domain.Filter = Array("Computer") for each computer in domain list = list & computer.name & vbCr next next MsgBox list
Das folgende Script listet nur die Computer in einer bestimmten Domäne/Arbeitsgruppe auf: ’ 10-17.vbs set domain = GetObject("WinNT://Arbeitsgruppe") domain.Filter = Array("Computer") for each computer in domain list = list & computer.name & vbCr next MsgBox list
10.6.2 Details über Computer erfragen Das nächste Script findet automatisch heraus, welche Eigenschaften das Computer-Objekt zur Verfügung stellt, und listet dann die Ergebnisse auf: ’ 10-18.vbs ’ Zugang zum Computer set comp = GetObject("WinNT://scenic1")
10.6
Informationen über Computer erfragen
325
’ Schema erfragen ' (das Schema enthält die Infos über das Objekt) set schema = GetObject(comp.schema) list = "Infos zu Computer " & comp.name & vbCr for each prop in schema.MandatoryProperties list = list & prop & "=" & Ask(comp, prop) & vbCr next for each prop in schema.OptionalProperties list = list & prop & "=" & Ask(comp, prop) & vbCr next MsgBox list, vbInformation function Ask(obj, property) ' fragt eine Eigenschaft ab ' zuerst Fehlerhandling abschalten on error resume next ' Information abfragen Ask = obj.get(property) ' fehlerfrei? if not err.number=0 then ' nein, Fehler! err.clear Ask = "kein Ergebnis" end if end function
Bild 10.8: Diese Informationen über Computer stellt ADSI zur Verfügung
10.6.3 Hardware-Inventurliste erstellen Mit nur einer kleinen Änderung bekommen Sie automatisch eine kleine Hardware-Inventarliste in Ihrem Netzwerk:
326
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
’ 10-19.vbs logfile = "C:\inventar.txt" ’ Datei anlegen set fs = CreateObject("Scripting.FileSystemObject") set ausgabe = fs.CreateTextFile(logfile, true) ' Zugang zu Domänen set domains = GetObject("WinNT:") ' in allen Domänen nachsehen for each domain in domains domain.Filter = Array("Computer") for each computer in domain ausgabe.WriteLine computer.name ausgabe.WriteLine vbTab & computer.Get("OperatingSystem") _ & " " & computer.Get("OperatingSystemVersion") ausgabe.WriteLine vbTab & computer.Get("Processor") ausgabe.WriteLine vbTab & computer.Get("ProcessorCount") next next ' Ausgabedatei schließen und anzeigen ausgabe.close set wshshell = CreateObject("WScript.Shell") wshshell.Run """" & logfile & """"
10.6.4 Alle Drucker im Netzwerk auflisten Wollen Sie herausfinden, welche Drucker im Netzwerk online sind? Das nächste Script verrät es Ihnen: ’ 10-20.vbs set adsi = GetObject("WinNT:") ' alle Domänen finden for each domain in adsi domname = domain.name ' alle Computer in der Domäne auflisten ' Inhalt beschränken auf Elemente, ' die vom Typ "Computer" sind domain.Filter = Array("Computer") ' alle Computer durchsuchen
10.7
Benutzerkonten verwalten
327
for each computer in domain compuname = computer.name ' Ergebnis nur auf Netzwerkdrucker beschränken computer.Filter = Array("PrintQueue") for each printer in computer list = list & domname & "/" & compuname _ & "/" & printer.name & vbCr next next next MsgBox list, vbInformation
Lesen Sie auch weiter unten, wie Sie nachschauen, an welchen Druckaufträgen ein Drucker gerade arbeitet und wie Sie Druckaufträge in der Warteschlange nach vorn mogeln.
Bild 10.9: Alle Drucker im Netzwerk auflisten, die online sind
10.7
Benutzerkonten verwalten
Benutzerkonten lassen sich komplett über ADSI verwalten. In diesem Kapitel zeige ich Ihnen, wie Sie die bestehenden Benutzerkonten eines Netzwerkcomputers auflisten, Änderungen an den Einstellungen vornehmen und sogar ganz neue Konten schnell und zügig anlegen.
10.7.1 Alle Benutzerkonten eines Computers auflisten Das nächste Script zeigt Ihnen, wie Sie die lokalen Benutzerkonten eines Computers auflisten: ’ 10-21.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName ’ Zugang zum Namespace: set computer = GetObject("WinNT://" & computer) ’ alle Benutzerkonten auflisten computer.Filter = Array("User") ’ Liste generieren
328
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
for each user in computer list = list & user.name & vbCr next MsgBox list, vbInformation
Bild 10.10: Benutzerkonten eines lokalen Computers
Tip: Globale Benutzerkonten einer Domäne verwalten Möchten Sie nicht die lokalen Benutzerkonten eines bestimmten Computers verwalten, sondern die globalen Benutzerkonten einer Domäne, dann verbinden Sie sich nicht mit dem lokalen Computer, sondern mit der Domäne. Das nächste Script listet beispielsweise die globalen Benutzerkonten der Domäne WIN2000GER auf. ’ 10-22.vbs ' Zugang zur Domäne set domain = GetObject("WinNT://WIN2000GER") ' alle Benutzerkonten auflisten domain.Filter = Array("User") ' Liste generieren for each user in domain list = list & user.name & vbCr next MsgBox list, vbInformation
Bild 10.11: Benutzerkonten eines Domänencontrollers auflisten
10.7
Benutzerkonten verwalten
329
10.7.2 Ein neues Benutzerkonto anlegen Jedes Container-Objekt bietet Ihnen den Create-Befehl an. Mit Create können Sie neue Objekte in diesem Container anlegen. Create funktioniert also genau gleich, ganz egal, ob Sie Ihr Script mit einer Domäne oder einem lokalen Computer verbunden haben. Im ersten Fall legt das Script globale Benutzerkonten in der Domäne an, im zweiten Fall lokale Benutzerkonten auf dem angegebenen Computer. ’ 10-23.vbs ’ neues lokales Benutzerkonto anlegen ’ Details abfragen: username = Frage("Benutzername des neuen Kontos?") fullname = Frage("Nennen Sie den Klartextnamen des Benutzers!") describe = Frage("Nennen Sie eine Beschreibung des Kontos!") password = Frage("Geben Sie ein Kennwort ein!") ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName ’ Zugang zum Namespace: set computer = GetObject("WinNT://" & computer) ’ neues Benutzerkonto anlegen: set kontoneu = computer.Create("User", username) ’ wirksam werden lassen: kontoneu.SetInfo ’ Kennwort eintragen: kontoneu.SetPassword password ’ andere Details eintragen: kontoneu.FullName = fullname kontoneu.Description = describe ' Änderungen wirksam werden lassen: kontoneu.SetInfo MsgBox "Konto wurde erfolgreich angelegt!"
function Frage(prompt) Frage = InputBox(prompt, "Neues Konto anlegen") if Frage = vbEmpty then MsgBox "Abbruch!", vbCritical WScript.Quit end if end function
330
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Prüfen Sie den Erfolg der Aktion mit den Benutzerlist-Scripts von oben. Tatsächlich: Es listet Ihr neues Benutzerkonto auf! Das neue Konto ist allerdings noch in keiner Gruppe Mitglied und wird deshalb im einfachen Benutzerfenster von Windows 2000 noch nicht angezeigt. Trotzdem existiert es. Wie Sie neue Benutzerkonten zum Mitglied in beliebigen Gruppen machen, zeige ich Ihnen in einem Moment. Tip: Neue Konten aus einer Datenbank anlegen Hier wird das modulare Konzept des Scripting Hosts deutlich! Meine Beispielscripte sind extrem schlank gehalten, damit die wesentlichen Punkte nicht im Wust der Programmzeilen untergehen. In der Praxis können Sie diese Rezepte und Sofortlösungen beliebig miteinander kombinieren. Vielleicht haben Sie schon mal in Kapitel 9 geschaut: Dort sehen Sie, wie Scripts Datenbanken auslesen und anlegen können. Es wäre nur ein Aufwand von wenigen Minuten, zwei Scripts zu kombinieren, um beispielsweise neue Benutzerkonten direkt aus den Informationen einer Datenbank heraus anzulegen.
10.7.3 Benutzerkonten wieder entfernen Ebenso leicht, wie Sie scriptgesteuert Benutzerkonten angelegt haben, verschwinden diese auf Wunsch auch wieder. Verwenden Sie einfach anstelle der Create-Methode die Delete-Methode des Containers. Das nächste Script zeigt, wie das funktioniert. Es löscht auf Wunsch lokale Benutzerkonten Ihres Computers. Tip: Vorsicht – Änderungen werden sofort wirksam! Bei aller Freude am Experimentieren: Das nächste Script schießt scharf! Es löscht Benutzerkonten unwiderruflich. Legen Sie am besten zuerst mit dem vorangegangenen Script ein Testkonto an, das Sie danach mit dem folgenden Script wieder gefahrlos entsorgen können. ’ 10-24.vbs ' lokales Benutzerkonto löschen ' Details abfragen: username = Frage("Wie heißt das Konto, das Sie löschen wollen?") ' Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName ' Zugang zum Namespace: adsistring = "WinNT://" & computer & "/" & username & ",user" MsgBox "So komme ich an das Benutzerkonto heran:" & vbCr & adsistring ' prüfen, ob Konto wirklich vorhanden ist: on error resume next set user = GetObject(adsistring)
10.7
Benutzerkonten verwalten
331
if not err.number=0 then ’ es ist ein Fehler passiert MsgBox "Benutzerkonto existiert nicht oder anderer Fehler." WScript.Quit end if on error goto 0 ’ in "user" liegt jetzt das Benutzerkonto ’ wir brauchen aber den Container, in dem es liegt ’ also mit Parent nachfragen set computer = GetObject(user.Parent) msg = "Wollen Sie das Konto " & username _ & " UNWIDERRUFLICH löschen?" antwort = MsgBox(msg, vbYesNo + vbCritical) if antwort = vbYes then computer.Delete "user", username MsgBox "gelöscht..." end if function Frage(prompt) Frage = InputBox(prompt, "Neues Konto anlegen") if Frage = vbEmpty then MsgBox "Abbruch!", vbCritical WScript.Quit end if end function
10.7.4 Kennwörter ändern Kennen Sie das auch? Ein User hat sein Kennwort vergessen, und nun braucht er ein neues. Vielleicht wollen Sie auch Ihr eigenes Kennwort gegen ein anderes austauschen, um es Hackern schwieriger zu machen. Beides geht galant per Script. Das erste Script ändert ein Kennwort, wenn Sie das alte Kennwort wissen: ’ 10-25.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName username = InputBox("Wie heißt Ihr Benutzerkonto?") pwdalt = InputBox("Wie heißt Ihr derzeit gültiges Kennwort?") pwdneu = InputBox("Wie soll das Kennwort lauten?") pwdcheck = InputBox("Geben Sie das NEUE Kennwort zur Kontrolle ein!") if pwdcheckpwdneu then MsgBox "Sie haben sich vertippt. Ich breche ab." WScript.Quit
332
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
end if ’ mit Benutzerkonto verbinden set konto = GetObject("WinNT://" & computer & "/" & username & ",user") on error resume next konto.ChangePassword pwdalt, pwdneu if err.number=0 then MsgBox "Kennwort geändert." else MsgBox "Fehler!" end if err.clear on error goto 0
Sie können das Script auch so umformulieren, daß der jeweils eingeloggte Benutzer sein eigenes Kennwort ändern kann. Dazu sind nur minimale Änderungen nötig: ’ 10-26.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName username = network.UserName pwdalt = InputBox("Wie heißt Ihr derzeit gültiges Kennwort?") pwdneu = InputBox("Wie soll das Kennwort lauten?") pwdcheck = InputBox("Geben Sie das NEUE Kennwort zur Kontrolle ein!") if pwdcheckpwdneu then MsgBox "Sie haben sich vertippt. Ich breche ab." WScript.Quit end if ' mit Benutzerkonto verbinden set konto = GetObject("WinNT://" & computer & "/" _ & username & ",user") on error resume next konto.ChangePassword pwdalt, pwdneu if err.number=0 then MsgBox "Kennwort geändert." else MsgBox "Fehler!" end if err.clear on error goto 0
Ebenso einfach könnten Sie Klartext-Fehlermeldungen einbauen. Hier ein Beispiel, das die Befehlserweiterung von oben nutzt. Achtung: Dieses Script funktioniert nur, wenn Sie zuvor wie oben beschrieben die Befehlserweiterung auf Ihrem Computer startklar gemacht haben:
10.7
Benutzerkonten verwalten
333
’ 10-27.vbs set oleerr = CreateObject("ole.err") ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName username = network.UserName pwdalt = InputBox("Wie heißt Ihr derzeit gültiges Kennwort?") pwdneu = InputBox("Wie soll das Kennwort lauten?") pwdcheck = InputBox("Geben Sie das NEUE Kennwort zur Kontrolle ein!") if pwdcheckpwdneu then MsgBox "Sie haben sich vertippt. Ich breche ab." WScript.Quit end if ' mit Benutzerkonto verbinden on error resume next set konto = GetObject("WinNT://" & computer & "/" & username & ",user") DoCheck(err) on error goto 0 on error resume next konto.ChangePassword pwdalt, pwdneu DoCheck(err) on error goto 0 MsgBox "Fertig." sub DoCheck(fehlernr) if not fehlernr=0 then antwort = MsgBox(oleerr.oleError(fehlernr) & vbCr _ & "Abbrechen?",vbYesNo+vbQuestion) if antwort = vbYes then WScript.Quit end if end sub
Wenn Sie bei diesem Script zur Legitimation ein falsches Kennwort eingeben, bekommen Sie die passende Fehlermeldung auf den Tisch. Zudem fragt das Script nach, ob Sie die weitere Ausführung abbrechen wollen. DoCheck erledigt die allgemeine Fehlerprüfung und kann bei allen kritischen Stellen im Script eingesetzt werden. Das spart Code und macht Ihr Script übersichtlicher.
Vergessene Kennwörter reparieren: Schlüsseldienst Was aber, wenn Sie oder ein anderer Anwender sein Kennwort vergessen hat? In diesem Fall hilft die Macht des Administrators. Das nächste Script wird in der Hand eines Administrators zum allgemeinen Schlüsseldienst, mit dem Benutzerkonten neue Kennwörter vergeben werden können, auch wenn das alte nicht bekannt ist.
334
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Während also bei den vorangegangenen Scripts das alte Kennwort die Legitimation darstellte, ist es bei diesem Script der Administratorenstatus desjenigen, der das Script aufruft. Wird es von einem Nicht-Administrator bedient, dann verweigert es die Mitarbeit. ’ 10-28.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName username = InputBox("Wie heißt das Benutzerkonto?") pwdneu = InputBox("Wie soll das Kennwort lauten?") pwdcheck = InputBox("Geben Sie das NEUE Kennwort erneut ein!") if pwdcheckpwdneu then MsgBox "Sie haben sich vertippt. Ich breche ab." WScript.Quit end if ' mit Benutzerkonto verbinden set konto = GetObject("WinNT://" & computer & "/" _ & username & ",user") on error resume next konto.SetPassword pwdneu konto.SetInfo if err.number=0 then MsgBox "Kennwort geändert." else MsgBox "Fehler!" end if err.clear on error goto 0
10.7.5 Spezielle Einstellungen des Benutzerkontos setzen Ein Benutzerkonto besteht aus wesentlich mehr Informationen als nur dem Benutzernamen und dem Kennwort. Vielleicht wollen Sie, daß ein Benutzerkonto nur eine beschränkte Zeit zur Verfügung steht, also temporäre Konten einrichten. Ebenfalls wichtig: Vielleicht möchten Sie den Benutzer zwingen, bei seinem nächsten Login sein Kennwort zu ändern. All das ist über ADSI steuerbar. Welche Einzelinformationen in einem beliebigen Benutzerkonto stecken, verrät das folgende Script: ’ 10-29.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName username = InputBox("Wie heißt das Benutzerkonto?")
10.7
Benutzerkonten verwalten
335
set konto = GetObject("WinNT://" & computer & "/" _ & username & ",user") ’ Schema des Kontos erfragen set schema = GetObject(konto.Schema) for each property in schema.MandatoryProperties list = list & property & " = " & konto.Get(property) & vbCr next for each property in schema.OptionalProperties list = list & property & " = " & konto.Get(property) & vbCr next MsgBox list, vbInformation
Allerdings wird dieses Script in den meisten Fällen einen Fehler produzieren. Der Grund: Wird eine Eigenschaft des Kontos abgefragt, die noch gar nicht festgelegt ist, dann nörgelt ADSI. Andere Fehlerursachen: Eigenschaften wie LoginHours liefern die Informationen in einem Variablenformat, mit dem VBScript nichts anfangen kann.
Bild 10.12: Alle Daten eines Benutzerkontos abfragen
Es gilt also, diese Fehler abzufangen: ’ 10-30.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName username = InputBox("Wie heißt das Benutzerkonto?") set konto = GetObject("WinNT://" & computer & "/" & username & ",user")
336
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
’ Schema des Kontos erfragen set schema = GetObject(konto.Schema) for each property in schema.MandatoryProperties list = list & property & " = " & GetInfo(konto, property) & vbCr next for each property in schema.OptionalProperties list = list & property & " = " & GetInfo(konto, property) & vbCr next MsgBox list, vbInformation function GetInfo(obj, prop) on error resume next GetInfo = obj.Get(prop) if VarType(GetInfo)=8209 then GetInfo = "(ByteArray)" else GetInfo = GetInfo & " als " & TypeName(GetInfo) end if if not err.number=0 then GetInfo = "(undefiniert)" end if end function
10.7.6 Wie lange ist ein Kennwort bereits in Benutzung? Interessant, oder? Die Eigenschaft PasswordAge berichtet zum Beispiel beredt darüber, wie lange ein Benutzer bereits sein Kennwort nutzt. Die Angabe ist sekundengenau. Um also herauszufinden, wann ein Benutzer das letzte Mal sein Kennwort geändert hat, könnten Sie dieses Script verwenden: ’ 10-31.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName username = InputBox("Wie heißt das Benutzerkonto?") set konto = GetObject("WinNT://" & computer & "/" & username & ",user") alter = konto.Get("PasswordAge") ' Sekunden in Tage umwandeln: tage = Fix(alter/60/60/24) MsgBox "Das Kennwort ist " & tage & " Tage alt."
10.7
Benutzerkonten verwalten
337
Bild 10.13: Alter eines Kennworts herausfinden
Vielleicht wollen Sie lieber eine Statistik über alle Benutzerkonten und deren Alter. Das funktioniert so: ’ 10-32.vbs set fs = CreateObject("Scripting.FileSystemObject") ’ Ausgabedatei anlegen: name = "C:\LISTE.HTM" set ausgabe = fs.CreateTextFile(name, true) ausgabe.WriteLine "
" ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName set comp = GetObject("WinNT://" & computer & ",computer") comp.Filter = Array("User") ’ alle Benutzerkonten durchforsten: for each user in comp ausgabe.Write "" & user.name & " | " on error resume next alter = user.Get("PasswordAge") if err.number=0 then tage = Fix(alter/60/60/24) else tage = "(nicht festgelegt)" end if err.clear on error goto 0 ausgabe.WriteLine "" & tage & " |
" next ausgabe.WriteLine "
" ausgabe.close set wshshell = CreateObject("WScript.Shell") wshshell.Run name
Auch hier ist das Fehlerhandling wieder wichtig, denn sollte für ein Konto noch niemals ein Kennwort festgelegt worden sein, dann kann die Kennwort-Lebensdauer auch nicht abgefragt werden. Das Script listet alle lokalen Benutzerkonten Ihres Computers auf und berichtet, wie lange die einzelnen Nutzer bereits Ihr Kennwort verwenden. Wollen Sie statt dessen die Benutzerkonten einer
338
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Domäne überwachen, dann verbinden Sie sich nicht mit einem Computer, sondern mit einer Domäne. Zum Beispiel so: set comp = GetObject("WinNT:Domänenname,domain")
Allerdings brauchen Sie die notwendigen Berechtigungen. Sie müssen also Mitglied der Gruppe der Domänen-Admins sein.
10.7.7 Wann hat ein Benutzer sich das letzte Mal eingeloggt? Wie mächtig Ihr neues Wissen ist, zeigt das nächste Beispiel. Es fragt in den Benutzerkonten die Eigenschaft LastLogin ab und kann so herausfinden, wann die einzelnen Benutzerkonten zum letzten Mal verwendet worden sind. Als Firmenchef wäre es so ein leichtes, nachzuhaken, wer warum am Wochenende in der Firma gearbeitet hat, als die Firmendatenbank zusammenkrachte... Das Script ist im Grundgerüst genauso aufgebaut wie das vorangegangene: ’ 10-33.vbs set fs = CreateObject("Scripting.FileSystemObject") ’ Ausgabedatei anlegen: name = "C:\LISTE.HTM" set ausgabe = fs.CreateTextFile(name, true) ausgabe.WriteLine "
" ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName set comp = GetObject("WinNT://" & computer & ",computer") comp.Filter = Array("User") ’ alle Benutzerkonten durchforsten: for each user in comp ausgabe.Write "" & user.name & " | " on error resume next datum = user.Get("LastLogin") if not err.number=0 then datum = "(nicht festgelegt)" end if err.clear on error goto 0 ausgabe.WriteLine "" & datum & " |
" next ausgabe.WriteLine "
" ausgabe.close set wshshell = CreateObject("WScript.Shell") wshshell.Run name
10.7
Benutzerkonten verwalten
339
Tip: Sicherheitsrisiko Uralt-Konten – und die Lösung! Wissen Sie eigentlich, ob wirklich alle Benutzerkonten in Ihrem Unternehmen noch in Gebrauch sind? Über die Zeit haben sich vielleicht Konten von längst ausgeschiedenen Mitarbeitern angesammelt. Mit dem vorangegangenen Script ist es nun kinderleicht, alle Konten zu finden, die seit Urzeiten nicht mehr benutzt worden sind. Die können Sie anschließend umweltfreundlich entsorgen, und wenn Sie wollen, erledigt beides ein Script in einem Aufwasch.
10.7.8 Details der Benutzerkonten selbst festlegen Die meisten Zusatzinformationen eines Benutzerkontos können natürlich nicht nur gelesen werden, sondern lassen sich auch verändern. Der Counterpart zu Get heißt Put. Vielleicht wollen Sie von vornherein festlegen, daß ein Benutzerkonto nach einer bestimmten Zeit gesperrt wird. Für einen Kongreß brauchen Sie vielleicht Konten, die nur 5 Tage »haltbar« sind und anschließend von allein gesperrt werden. Mit dem folgenden Script begrenzen Sie die Lebensdauer eines beliebigen Benutzerkontos. Testen Sie das Script an einem Testkonto, nicht an einem Konto, das Sie für die tägliche Arbeit benötigen. Mit Skript 10-30.vbs kontrollieren Sie anschließend, ob die Eigenschaft wie gewünscht gesetzt wurde: ’ 10-34.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName username = InputBox("Wie heißt das Benutzerkonto?") set konto = GetObject("WinNT://" & computer _ & "/" & username & ",user") set konto = GetObject(konto.ADsPath) msg = "Wie lange soll das Konto gültig sein?" limit = InputBox(msg) if not isNumeric(limit) then MsgBox "Sie haben keine Zahl eingegeben!" WScript.Quit end if konto.Put "AccountExpirationDate", _ CDate(DateAdd("d", now, limit)) konto.SetInfo MsgBox "Erledigt."
Umgekehrt geht es ebenfalls: Wollen Sie das Haltbarkeitsdatum eines Kontos entfernen, so daß es wieder für unbeschränkte Zeit nutzbar ist, dann verwenden Sie das nächste Script:
340
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
’ 10-35.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName username = InputBox("Wie heißt das Benutzerkonto?") set konto = GetObject("WinNT://" & computer _ & "/" & username & ",user") set konto = GetObject(konto.ADsPath) konto.Put "AccountExpirationDate", CDate("1.1.1970") konto.SetInfo MsgBox "Erledigt."
Der Trick ist simpel: Wenn Sie als Ablaufdatum den 1.1.1970 angeben, dann wird das Ablaufdatum entfernt. Skript 10-30.vbs beweist: das Ablaufdatum ist nach dieser Operation wieder »undefiniert«.
10.7.9 Benutzer-Flags des Kontos setzen Ganz besonders geheimnisvoll ist die Eigenschaft UserFlags. Sie enthält nur einen Zahlenwert, der auf Anhieb wenig freundlich aussieht. Tatsächlich verbergen sich hinter diesem Zahlenwert ganz unterschiedliche mächtige Einstellungen. Jede Einstellung belegt genau ein Bit im Zahlenwert, und dies ist die geheime Bitbelegung: Bit
Beschreibung
1 2 8 16 32 64 256 512 2048 4096 8192 65536 131072
Script Konto abgeschaltet Heimatverzeichnis gefordert Konto gesperrt Kein Kennwort erforderlich Kennwort kann nicht verändert werden Vorübergehendes Konto Normales Konto Interdomain Trust Konto Workstation Trust Konto Server Trust Konto Kennwort läuft nicht ab MNS Logon Konto
Tab. 10.8: Flags für Spezialeinstellungen am Benutzerkonto
Um diese Informationen zu lesen oder zu verändern, müssen die einzelnen Bits einer Zahl herausgefischt werden. Das gelingt über die Befehle AND, OR und XOR. Schauen Sie sich die Sache in Ruhe an:
10.7
Benutzerkonten verwalten
341
10.7.10 Ein Konto sperren Wollen Sie ein Konto sperren? Dann hilft das nächste Script, das zeigt, wie Sie mit den Bits umspringen müssen. Das Script liefert eine Liste mit allen lokalen Benutzerkonten und berichtet, ob die Konten aktiv, abgeschaltet oder gesperrt sind: ’ 10-36.vbs
set fs = CreateObject("Scripting.FileSystemObject") ’ Ausgabedatei anlegen: name = "C:\LISTE.HTM" set ausgabe = fs.CreateTextFile(name, true) ausgabe.WriteLine "
" ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName set comp = GetObject("WinNT://" & computer & ",computer") comp.Filter = Array("User") ’ alle Benutzerkonten durchforsten: for each user in comp ausgabe.Write "" & user.name & " | " on error resume next userflags = user.Get("UserFlags") if not err.number=0 then typ = "(nicht festgelegt)" else if (userflags AND 2)0 then typ = "abgeschaltet" elseif (userflags AND 16)0 then typ = "gesperrt" else typ = "aktiv" end if end if err.clear on error goto 0 ausgabe.WriteLine "" & typ & " |
" next ausgabe.WriteLine "
" ausgabe.close set wshshell = CreateObject("WScript.Shell") wshshell.Run "iexplore.exe " & name
342
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Nur aktive Konten können verwendet werden. Konten, die abgeschaltet sind, stehen nicht zur Verfügung. Das Gast-Konto ist zum Beispiel anfangs abgeschaltet und muß explizit eingeschaltet werden, damit Gast-Logins (anonyme Logins) möglich werden. Gesperrte Konten spielen in einer etwas anderen Liga. Sie können Konten nicht manuell sperren (nur abschalten). Konten werden automatisch gesperrt, sobald der Benutzer mehrere Male vergeblich versucht hat sich, anzumelden. Wie viele Einloggversuche in welcher Zeit gescheitert sein müssen, damit das Konto gesperrt wird, das legen Sie in den Sicherheitsrichtlinien Ihres Computers (oder der Domäne) fest. Als Vorgabe gibt es keinen Sperrmechanismus. Es sind so viele Einloggversuche erlaubt, wie Sie wollen. Wie Sie einzelne Konten per Script verwalten, zeigt das nächste Script. Damit sperren (und entsperren) Sie jedes lokale Benutzerkonto. Wollen Sie lieber globale Domänenkonten verwalten, dann verwenden Sie anstelle des Computernamens den Namen der Domäne. ’ 10-37.vbs
’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName username = InputBox("Name des Benutzerkontos?") set user = GetObject("WinNT://" & computer & "/" & username & ",user") ’ Ist Konto momentan gesperrt? userflags = user.Get("UserFlags") sperrung = (userFlags and 2)0 if sperrung then msg = "Konto ist gesperrt. Aufschließen?" sperrung = userflags and not 2 else msg = "Konto ist aktiv. Sperren?" sperrung = userflags or 2 end if antwort = MsgBox(msg, vbYesNo + vbQuestion) if antwort = vbYes then user.Put "UserFlags", sperrung user.SetInfo MsgBox "Erledigt." end if
Testen Sie das Script zum Beispiel mit dem Konto Gast, und kontrollieren Sie den Erfolg zum Beispiel mit Skript 10-30.vbs. Vergessen Sie aber nicht, das Gastkonto wieder in den Ausgangszustand zurückzuversetzen. Ein aktiviertes Gast-Konto kann eine erhebliche Sicherheitslücke darstellen!
10.7
Benutzerkonten verwalten
343
Bild 10.14: Benutzerkonten sperren und aufschließen
Hier noch ein nützliches Beispiel: Hat sich ein Benutzer durch zu viele vergebliche Anmeldeversuche ausgeschlossen, dann hilft das nächste Script. Es listet sofort alle verschlossenen Konten auf und gibt Ihnen die Möglichkeit, die Sperrung aufzuheben. Wenn Sie Administratorrechte haben. Sonst natürlich nicht. ’ 10-38.vbs
’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName set comp = GetObject("WinNT://" & computer & ",computer") comp.Filter = Array("User") ’ alle Benutzerkonten durchforsten: counter = 0 for each user in comp on error resume next userflags = user.Get("UserFlags") if err.number=0 then if (userflags AND 16)0 then list = list & user.name & vbCr counter = counter + 1 end if end if err.clear on error goto 0 next
if counter > 0 then frage = list & "Welches Konto wollen Sie ent-sperren?" antwort = InputBox(frage,"Entsperrung") if antwort = vbEmpty then WScript.Quit set user = GetObject("WinNT://" & computer & "/" _ & antwort & ",user") user.Put "UserFlags", user.Get("UserFlags") and not 16 user.SetInfo
344
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
MsgBox "Konto entsperrt!" else MsgBox "Momentan ist kein Konto gesperrt." end if
10.7.11 Beim nächsten Einloggen Kennwortänderung erzwingen Noch ein Beispiel: Wie zwingt man einen Benutzer dazu, beim nächsten Einloggen sein Kennwort zu ändern? Zuständig hierfür ist die Eigenschaft PasswordExpired. So erzwingen Sie die KennwortÄnderung: ’ 10-39.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName username = InputBox("Name des Benutzerkontos?") set user = GetObject("WinNT://" & computer _ & "/" & username & ",user") user.PasswordExpired = CLng(1) user.SetInfo MsgBox "Erledigt."
Wenn Sie mögen, kombinieren Sie Ihr neues Wissen einfach! Schreiben Sie sich zum Beispiel ein Script, das bei allen Konten ein neues Kennwort erzwingt, wenn das Kennwort schon länger als zum Beispiel 30 Tage in Benutzung ist.
10.7.12 Kennwortänderungen verbieten Umgekehrt geht es natürlich genauso: Vielleicht wollen Sie verbieten, daß ein Benutzer das von Ihnen zugewiesene Kennwort einfach ändert. Solchen Eigenmächtigkeiten schiebt das nächste Script einen Riegel vor: ’ 10-40.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName username = InputBox("Name des Benutzerkontos?") set user = GetObject("WinNT://" & computer & "/" & username & ",user") ' Darf Kennwort geändert werden? userflags = user.Get("UserFlags") sperrung = (userFlags and 64)0
10.8
Gruppen-Verwaltung
345
if sperrung then msg = "Kennwortänderungen verboten. Erlauben?" sperrung = userflags and not 64 else msg = "Kennwortänderungen erlaubt. Verbieten?" sperrung = userflags or 64 end if antwort = MsgBox(msg, vbYesNo + vbQuestion) if antwort = vbYes then user.Put "UserFlags", sperrung user.SetInfo MsgBox "Erledigt." end if
10.8
Gruppen-Verwaltung
Windows NT und Windows 2000 nutzen zwei verschiedene Mechanismen für die Sicherheit: Jeder Benutzer bekommt ein eigenes Benutzerkonto, und darüber hinaus können Benutzer Mitglied in Gruppen werden. Gruppen sind ein exzellentes Mittel, um Arbeit zu sparen. Anstatt allen Mitarbeitern in der Verwaltung einzeln und von Hand die nötigen Rechte zu verleihen, erzeugen Sie einfach eine Gruppe namens »Verwaltung« und machen alle Verwaltungsleute zu Mitgliedern. Anschließend weisen Sie nur der Gruppe »Verwaltung« die nötigen Rechte zu – und können viele Stunden früher Feierabend machen. Gruppen sind natürlich nicht nur aus Gründen der Arbeitserleichterung erfunden worden. Sie sind auch ein wichtiger Sicherheitsgrundpfeiler. Wer konsequent Gruppen verwendet, behält viel einfacher die Übersicht in der Rechtevergabe.
10.8.1 Welche Gruppen gibt es überhaupt? Lassen Sie Ihre Scripts zuerst herausfinden, welche Gruppen es eigentlich auf Ihrem Computer gibt. Das erledigen Sie so: ’ 10-41.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName ’ Zugang zum Namespace: set computer = GetObject("WinNT://" & computer) computer.filter = Array("Group")
346
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
for each group in computer list = list & group.name & vbCr next MsgBox list, vbInformation
Wieder gilt: Wenn Sie anstelle der lokalen Gruppen eines Computers lieber die globalen Gruppen einer Domäne sehen wollen, dann ersetzen Sie den Computernamen durch den Namen der Domäne.
Bild 10.15: Gruppen auflisten
10.8.2 Welche Eigenschaften bieten Gruppen-Objekte? Lassen Sie sich als nächstes zeigen, welche Eigenschaften Sie bei Gruppen-Objekten erfragen können. Diese Antwort liefert wieder das Schema des Objekts: ’ 10-42.vbs ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") Computer = network.ComputerName ’ herausfinden, welche Eigenschaften Gruppen zu bieten haben ’ am Beispiel der Gruppe "Administratoren" set gruppe = GetObject("WinNT://" & computer & "/"
& "Administratoren,group")
’ Schema erfragen set schema = GetObject(gruppe.Schema) for each property in schema.MandatoryProperties list = list & property & " = " & GetInfo(gruppe, property) & vbCr next for each property in schema.OptionalProperties list = list & property & " = " & GetInfo(gruppe, property) & vbCr next MsgBox list, vbInformation function GetInfo(obj, prop) on error resume next
10.8
Gruppen-Verwaltung
347
GetInfo = obj.Get(prop) if VarType(GetInfo)=8209 then GetInfo = "(ByteArray)" else GetInfo = GetInfo & " als " & TypeName(GetInfo) end if if not err.number=0 then GetInfo = "(undefiniert)" end if end function
Zusätzlich zu diesen Eigenschaften bietet jedes Gruppen-Objekt die folgenden wichtigen Methoden: Methode
Beschreibung
Members IsMember Add Remove
Listet die Mitglieder der Gruppe auf Prüft, ob ein Benutzerkonto Mitglied der Gruppe ist Fügt neues Benutzerkonto in die Gruppe ein Entfernt Benutzerkonto aus der Gruppe
Tab. 10.9: Befehle eines Gruppen-Objekts
Sie werden gleich die passenden Beispielscripte kennenlernen.
10.8.3 In welchen Gruppen ist ein Benutzer Mitglied? Als erste Frage soll Ihr Script klären, in welchen Gruppen ein Benutzer eigentlich zur Zeit Mitglied ist. Dazu verwendet das Script die Methode Groups des User-Objekts: ’ 10-43.vbs Set net = WScript.CreateObject("WScript.Network") local = net.ComputerName ’ get user user = InputBox("Name des Benutzers?") set user = GetObject("WinNT://" & local & "/" & user) list = "Mitglied in diesen Gruppen:" & vbCr for each group in user.Groups list = list & group.name & vbCr next MsgBox list, vbInformation
348
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Bild 10.16: Herausfinden, in welchen Gruppen jemand Mitglied ist
Umgekehrt können Sie natürlich ebenfalls vorgehen und auflisten lassen, wer Mitglied in einer bestimmten Gruppe ist. Das gelingt mit der Members-Methode des Gruppen-Objekts, die alle Mitgliedskonten auflistet: ’ 10-44.vbs Set network = CreateObject("Wscript.Network") Computer = network.ComputerName name = InputBox("Name der Gruppe?",,"Administratoren") ’ Zugang zum Namespace: set gruppe = GetObject("WinNT://" & computer & "/" & name & ",group") set mitglieder = gruppe.Members list = "Mitglieder in Gruppe """ & name & """:" & vbCr for each konto in mitglieder list = list & konto.name & vbCr next MsgBox list
Oder aber Sie wollen nur prüfen, ob ein bestimmtes Konto Mitglied in einer bestimmten Gruppe ist. Dazu verwenden Sie IsMember: ’ 10-45.vbs Set network = CreateObject("Wscript.Network") Computer = network.ComputerName name = InputBox("Name des Kontos?") ' Prüfen, ob Konto Mitglied in der Gruppe der Administratoren ist: set gruppe = GetObject("WinNT://" & computer _ & "/Administratoren,group") ' Dieser Benutzer soll geprüft werden: set user = GetObject("WinNT://" & computer & "/" _ & name & ",user")
10.8
Gruppen-Verwaltung
349
’ na, Mitglied? istMitglied = gruppe.IsMember(user.ADsPath) ’ Ergebnis ausgeben if istMitglied then MsgBox "Konto """ & name _ & """ ist Mitglied in Gruppe ADMINISTRATOREN" else MsgBox "Konto """ & name _ & """ ist KEIN Mitglied in Gruppe ADMINISTRATOREN" end if
Das Script prüft nicht, ob das Konto, das Sie angeben, tatsächlich existiert. Hier könnten Sie also bei Bedarf das Fehlerhandling nachrüsten. Und so funktioniert die Sache: Da IsMember eine Methode des Gruppen-Objekts ist, öffnen Sie zuerst die Gruppe, in der Sie das Benutzerkonto vermuten. Anschließend wird es etwas tückisch: IsMember verlangt nämlich nicht etwa nach dem Namen des Benutzerkontos, sondern nach dem vollständigen ADsPath. Der einfachste Weg, diesen ADsPath richtig und vollständig zu erhalten, funktioniert so: Sie verbinden sich wie im Script mit dem Benutzerkonto, das Sie prüfen wollen, und verwenden dann die ADsPath-Eigenschaft des resultierenden User-Objekts. Hört sich furchtbar kompliziert an, ist aber eigentlich ganz simpel: Das Script von oben demonstriert, wie das Prinzip in der Praxis funktioniert. IsMember ist zum Beispiel dann nützlich, wenn Sie ein Benutzerkonto einer Gruppe hinzufügen wollen (siehe unten). Sie können dann nämlich bereits im Vorfeld testen, ob der Benutzer nicht vielleicht schon Mitglied in der Gruppe ist.
10.8.4 Eine neue Benutzergruppe anlegen Auf den nächsten Seiten zeige ich Ihnen, wie Sie Benutzerkonten in Gruppen einfügen und auch wieder daraus entfernen. Damit dabei nichts schiefläuft, legen Sie sich am besten zuerst eine Testgruppe an. Schauen Sie also, wie einfach Sie per ADSI neue Gruppen ins Leben rufen: ’ 10-46.vbs Set network = CreateObject("Wscript.Network") Computer = network.ComputerName ’ neue lokale Gruppe anlegen ' Gruppe soll "Testgruppe" heißen neuegruppe = "Testgruppe" set computer = GetObject("WinNT://" & computer & ",computer") ' neues leeres Gruppen-Objekt beschaffen
350
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
set gruppe = computer.Create("group", neuegruppe) ’ Gruppe anlegen gruppe.SetInfo MsgBox "Gruppe """ & neuegruppe & """ wurde angelegt"
Tip: Vorsicht mit Namenskonflikten! Gruppen und Benutzerkonten spielen – was die Namensgebung angeht – in einer gemeinsamen Liga. Das bedeutet: Wenn es bei Ihnen bereits ein Benutzerkonto namens xyz gibt, dann darf unter diesem Namen keine Gruppe angelegt werden – und umgekehrt.
Das Prinzip des Scripts kennen Sie schon: Es öffnet den »Container«, in dem es die neue Gruppe anlegen will, also Ihren lokalen Computer. Mit Create legt es ein neues Gruppen-Objekt an und schreibt es mit SetInfo in die Benutzerdatenbank.
10.8.5 Benutzerkonten in die neue Gruppe einfügen Leere Gruppen nützen Ihnen nur begrenzt, und deshalb schauen Sie sich als nächstes an, wie Sie Benutzerkonten zum Mitglied in Ihrer neuen Gruppe machen. Das nächste Script verfrachtet das Benutzerkonto Administrator in die neue Gruppe Testgruppe. ’ 10-47.vbs Set network = CreateObject("Wscript.Network") Computer = network.ComputerName ' gruppe öffnen, in die Konto eingefügt werden soll set gruppe = GetObject("WinNT://" & computer _ & "/testgruppe,Group") ' Konto hinzufügen gruppe.Add "WinNT://" & computer & "/Administrator" gruppe.SetInfo MsgBox "Konto hinzugefügt."
Mit Ihrem neuen Wissen können Sie ab sofort echte Administrationsarbeit erledigen. In Kapitel 10.7.2 haben Sie gesehen, wie Sie neue Benutzerkonten anlegen. Nun wissen Sie außerdem, wie Sie Konten in Gruppen zum Mitglied machen. Damit können Sie nun – neben vielen anderen Dingen – neue Konten anlegen und sofort zum Mitglied in einer der Standardgruppen machen. Das nächste Script zeigt, wie das funktioniert. Es legt neue Benutzerkonten an und macht diese Konten zu Mitgliedern in der vordefinierten Gruppe der Hauptbenutzer.
10.8
Gruppen-Verwaltung
’ 10-48.vbs ’ neues lokales Benutzerkonto anlegen ’ Details abfragen: username = Frage("Nennen Sie den Benutzernamen des neuen Kontos!") fullname = Frage("Nennen Sie den Klartextnamen des Benutzers!") describe = Frage("Nennen Sie eine Beschreibung des Kontos!") password = Frage("Geben Sie ein Kennwort ein!") ’ Welchen Namen hat Ihr eigener Computer im Netzwerk? Set network = CreateObject("Wscript.Network") cname = network.ComputerName ’ Zugang zum Namespace: set computer = GetObject("WinNT://" & cname) ’ neues Benutzerkonto anlegen: set kontoneu = computer.Create("User", username) ’ wirksam werden lassen: kontoneu.SetInfo ’ Kennwort eintragen: kontoneu.SetPassword password ’ andere Details eintragen: kontoneu.FullName = fullname kontoneu.Description = describe ' Änderungen wirksam werden lassen: kontoneu.SetInfo ' Konto zum Mitglied in Gruppe "Hauptbenutzer" machen pfad = "WinNT://" & cname & "/Hauptbenutzer,group" set gruppe = GetObject(pfad) gruppe.Add kontoneu.ADsPath gruppe.SetInfo MsgBox "Konto wurde erfolgreich mit Status " _ & "HAUPTBENUTZER angelegt!" function Frage(prompt) Frage = InputBox(prompt, "Neues Konto anlegen") if Frage = vbEmpty then MsgBox "Abbruch!", vbCritical WScript.Quit end if end function
351
352
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
10.8.6 Benutzer aus einer Gruppe entfernen Umgekehrt geht es ebenfalls: Wenn Sie das Administrator-Konto wieder aus der Gruppe Testgruppe entfernen wollen, verwenden Sie das nächste Script. Es zeigt, wie Sie das Gegenstück zu Add einsetzen: Remove. ’ 10-50.vbs Set network = CreateObject("Wscript.Network") Computer = network.ComputerName ' gruppe öffnen, aus der Konto entfernt werden soll set gruppe = GetObject("WinNT://" & computer _ & "/testgruppe,Group") ' Konto entfernen gruppe.Remove "WinNT://" & computer & "/Administrator" gruppe.SetInfo MsgBox "Konto-Mitgliedschaft wurde entfernt."
10.8.7 Benutzergruppen löschen Auch ganze Gruppen lassen sich löschen. Wollen Sie zum Beispiel die Gruppe Testgruppe, die Sie oben testweise angelegt hatten, wieder entfernen, dann machen Sie es so: ’ 10-51.vbs Set network = CreateObject("Wscript.Network") Computer = network.ComputerName set computer = GetObject("WinNT://" & computer & ",computer") computer.Delete "group", "Testgruppe"
10.9
Services – Windows-Dienste verwalten
Services sind Programme, die wichtige Dienstleistungen bereitstellen. Der Internet Information Server ist zum Beispiel solch ein Dienst. Er veröffentlicht Ordner und Dateien im Inter- und Intranet, ist also ein Webserver. ADSI kann Dienste via Netzwerk nicht nur auflisten, sondern auch kontrollieren. So können Sie ferngesteuert Dienste starten, pausieren lassen oder beenden. Auch das Startverhalten (automatisch oder von Hand zu starten) legen Sie via ADSI und Script sehr einfach fest.
10.9
Services – Windows-Dienste verwalten
353
10.9.1 Welche Dienste laufen gerade? Services sind immer an einen Computer gebunden. Klar, denn schließlich ist es der Computer, der die Dienste ausführt. Wollen Sie sich also ansehen, welche Dienste es auf einem bestimmten Computer überhaupt gibt, dann setzen Sie dieses Script ein: ’ 10-52.vbs Set network = CreateObject("Wscript.Network") Computer = network.ComputerName set computer = GetObject("WinNT://" & computer & ",computer") computer.filter = Array("Service") for each service in computer list = list & service.name & vbCr next MsgBox list, vbInformation
Huch, ganz schön viele Dienste, die das Script ausspuckt! Fragt sich, welche Dienstleistungen sich hinter den klingonischen Namen verbergen und wie man die Dienste steuert.
10.9.2 Welche Eigenschaften bieten Dienste? Fragen Sie als erstes im Schema nach, welche Eigenschaften ein Dienst zu bieten hat! Das nächste Script zeigt, wie das funktioniert. Es pickt sich wahllos einen beliebigen Dienst heraus und listet dann die Eigenschaften auf: ’ 10-53.vbs Set network = CreateObject("Wscript.Network") cname = network.ComputerName set computer = GetObject("WinNT://" & cname & ",computer") computer.Filter = Array("Service") ’ x-beliebigen Dienst herauspicken for each service in computer set schema = GetObject(service.Schema) exit for next for each property in schema.MandatoryProperties list = list & property & vbCr next for each property in schema.OptionalProperties list = list & property & vbCr next MsgBox list, vbInformation
354
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Zusätzlich bietet jedes Service-Objekt diese Eigenschaften und Methoden: Eigenschaft/Methode
Bedeutung
Status Continue Pause Start Stop SetPassword
Gegenwärtiger Zustand des Dienstes Dienst fortsetzen Dienst anhalten Dienst starten Dienst stoppen Kennwort für das Dienstkonto setzen
Tab. 10.10: Eigenschaften und Methoden des Service-Objekts
10.9.3 Zustandsbericht über alle Dienste erstellen Zuerst soll Ihr Script mehr über die Dienste in Erfahrung bringen, die auf Ihrem Computer vorhanden sind. Wofür sind die Dienste zuständig, und welche Grundvoraussetzungen müssen erfüllt sein, damit der Dienst funktionieren kann? Das folgende Script beantwortet diese Fragen und nutzt dazu die Eigenschaften des Service-Objekts. ’ 10-54.vbs set fs = CreateObject("Scripting.FileSystemObject") ausgabe = "C:\dienste.htm" set file = fs.CreateTextFile(ausgabe,true) file.WriteLine "
" Set network = CreateObject("Wscript.Network") cname = network.ComputerName set computer = GetObject("WinNT://" & cname & ",computer") computer.Filter = Array("Service") for each service in computer file.write "" & service.name & " | " file.write "" & GetInfo(service,"DisplayName") & " | " file.writeline "" & GetInfo(service,"Dependencies") & " |
" next file.Writeline "
" file.close set wshshell = CreateObject("WScript.Shell") wshshell.run "iexplore.exe " & ausgabe function GetInfo(obj, prop)
10.9
Services – Windows-Dienste verwalten
355
on error resume next GetInfo = obj.Get(prop) if VarType(GetInfo)=8209 then GetInfo = "(ByteArray)" else GetInfo = CStr(GetInfo) end if if not err.number=0 then GetInfo = "(undefiniert)" end if end function
Das Ergebnis ist eine höchst aufschlußreiche Liste mit Dienstnamen, in der zweiten Spalte den Klartextnamen und in der dritten Spalte den Abhängigkeiten, also den Namen des Dienstes, auf den der aktuelle Dienst aufsetzt. Wird in der dritten Spalte ein Dienst genannt, dann wissen Sie also, daß der aktuelle Dienst diesen Dienst der dritten Spalte als Grundlage benötigt, damit er funktionieren kann.
Bild 10.17: Zustandsbericht und Klartextnamen aller Dienste – lokal oder remote
Das Script ist ein Universalhilfsmittel. Sie können es mit geringstem Aufwand umdressieren. Wenn Sie zum Beispiel lieber eine Liste mit dem augenblicklichen Status der Dienste sehen wollen, dann verwenden Sie diese Variation:
356
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
’ 10-55.vbs set fs = CreateObject("Scripting.FileSystemObject") ausgabe = "C:\dienste.htm" set file = fs.CreateTextFile(ausgabe,true) file.WriteLine "
" Set network = CreateObject("Wscript.Network") cname = network.ComputerName set computer = GetObject("WinNT://" & cname & ",computer") computer.Filter = Array("Service") for each service in computer file.write "" & GetInfo(service,"DisplayName") & " | " file.write "" & service.status & " | " file.writeline "" & GetInfo(service,"ServiceType") & " |
" next file.Writeline "
" file.close set wshshell = CreateObject("WScript.Shell") wshshell.run "iexplore.exe " & ausgabe function GetInfo(obj, prop) on error resume next GetInfo = obj.Get(prop) if VarType(GetInfo)=8209 then GetInfo = "(ByteArray)" else GetInfo = CStr(GetInfo) end if if not err.number=0 then GetInfo = "(undefiniert)" end if end function
Als Ergebnis sehen Sie jetzt, ob ein Dienst gerade läuft oder nicht und was für eine Art von Dienst sich dahinter verbirgt. Dummerweise sind diese Informationen kodiert, und wenn Sie nicht gerade wissen, daß die Codezahl 4 einen gestarteten Dienst markiert, sagen Ihnen die Zahlenwerte nicht viel. Das nächste Script wandelt die Zahlencodes automatisch in Klartextnamen um, so daß auf den ersten Blick klar wird, was ein bestimmter Dienst gerade so treibt:
10.9
Services – Windows-Dienste verwalten
’ 10-56.vbs ’ Klartextnamen festlegen statuscodes = Split(",Stop,Starting,Stopping,Run," _ & "Resuming,Pausing,Paused,Error",",") set fs = CreateObject("Scripting.FileSystemObject") ausgabe = "C:\dienste.htm" set file = fs.CreateTextFile(ausgabe,true) file.WriteLine "
" Set network = CreateObject("Wscript.Network") cname = network.ComputerName set computer = GetObject("WinNT://" & cname & ",computer") computer.Filter = Array("Service") for each service in computer file.write "" & GetInfo(service,"DisplayName") _ & " | " file.write "" & statuscodes(service.status) & " | " typ = GetInfo(service,"ServiceType") typname = "" if (typ and 1)0 then typname = "Kernel Driver " end if if (typ and 2)0 then typname = typname & "FileSystem Driver " end if if (typ and 16)0 then typname = typname & "Own Process " end if if (typ and 32)0 then typname = typname & "Shared Process" end if file.writeline "" & typname & " |
" next file.Writeline "
" file.close set wshshell = CreateObject("WScript.Shell") wshshell.run "iexplore.exe " & ausgabe
357
358
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
function GetInfo(obj, prop) on error resume next GetInfo = obj.Get(prop) if VarType(GetInfo)=8209 then GetInfo = "(ByteArray)" else GetInfo = CStr(GetInfo) end if if not err.number=0 then GetInfo = "(undefiniert)" end if end function
Sicherheitsinformationen können Sie ebenfalls erfragen.
Bild 10.18: Kleine Änderung, große Wirkung: Status der Dienste ermitteln
Wieder verwendet das Script dasselbe Grundmuster und gibt diesmal das Konto an, unter dem der Dienst ausgeführt wird. In der dritten Spalte verrät die Liste, wie der Dienst gestartet wird oder ob er womöglich zur Zeit deaktiviert ist: ’ 10-57.vbs startkeys = Split("boot,system,auto,manual,disabled",",") set fs = CreateObject("Scripting.FileSystemObject") ausgabe = "C:\dienste.htm"
10.9
Services – Windows-Dienste verwalten
359
set file = fs.CreateTextFile(ausgabe,true) file.WriteLine "
" Set network = CreateObject("Wscript.Network") cname = network.ComputerName set computer = GetObject("WinNT://" & cname & ",computer") computer.Filter = Array("Service") for each service in computer file.write "" & GetInfo(service,"DisplayName") _ & " | " file.write "" & GetInfo(service,"ServiceAccountName") _ & " | " file.writeline "" & startkeys(service.StartType) _ & " |
" next file.Writeline "
" file.close set wshshell = CreateObject("WScript.Shell") wshshell.run "iexplore.exe " & ausgabe function GetInfo(obj, prop) on error resume next GetInfo = obj.Get(prop) if VarType(GetInfo)=8209 then GetInfo = "(ByteArray)" else GetInfo = CStr(GetInfo) end if if not err.number=0 then GetInfo = "(undefiniert)" end if end function
Natürlich können Sie auch alle Informationen gemeinsam für einen bestimmten Dienst In Erfahrung bringen. Dazu müssen Sie nur den Namen des Dienstes wissen: ’ 10-58.vbs Set network = CreateObject("Wscript.Network") cname = network.ComputerName dienst = InputBox("Name des Dienstes?",,"Alerter") set service = GetObject("WinNT://" & cname & "/" & dienst & ",service") set schema = GetObject(service.schema)
360
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
for each property in schema.MandatoryProperties list = list & property & " = " & GetInfo(service, property) & vbCr next for each property in schema.OptionalProperties list = list & property & " = " & GetInfo(service, property) & vbCr next MsgBox list, vbInformation function GetInfo(obj, prop) on error resume next GetInfo = obj.Get(prop) if VarType(GetInfo)=8209 then GetInfo = "(ByteArray)" else GetInfo = GetInfo & " als " & TypeName(GetInfo) end if if not err.number=0 then GetInfo = "(undefiniert)" end if end function
Tip: EXE-Datei eines Dienstes finden Besonders interessant ist die Path-Eigenschaft. Sie verrät, welche EXE-Datei eigentlich hinter dem jeweiligen Dienst steckt.
10.9.4 Einen Dienst starten oder beenden Sie können auch selbst handfest ins Geschehen eingreifen! Um einen Dienst manuell zu starten, pausieren zu lassen, oder den Dienst zu beenden, verwenden Sie die folgenden Methoden Start, Stop, Pause und Continue. Das nächste Script läßt den Dienst WinMgmt stoppen. Dieser Dienst ist für die Remote-Verwaltung zuständig (Kapitel 11), und solange der Dienst nicht läuft, kann niemand via Netzwerk Ihren Computer überwachen: ’ 10-59.vbs Set network = CreateObject("Wscript.Network") cname = network.ComputerName set service = GetObject("WinNT://" & cname & "/WinMgmt,service") service.Stop service.SetInfo MsgBox "WinMgmt gestoppt."
10.9
Services – Windows-Dienste verwalten
361
Tip: Dienste können von allein wieder lebendig werden! Selbst wenn Sie einen Dienst wie WinMgmt stoppen, kann es sein, daß dieser Dienst kurze Zeit später wieder von ganz allein munter umherspringt. Der Grund: Je nach Sicherheits- und Registry-Einstellungen können Dienste automatisch gestartet werden, sobald ihre Dienstleistungen von irgend jemandem angefordert werden.
Wollen Sie einen anderen Dienst stoppen, dann ersetzen Sie einfach im Script WinMgmt durch den Kurznamen des gewünschten Dienstes. Denken Sie daran: Obwohl dieses Script automatisch die Dienste Ihres lokalen Computers verwaltet, könnten Sie auf demselben Weg auch Dienste auf jedem anderen Netzwerkcomputer verwalten – vorausgesetzt, Sie haben die nötigen Berechtigungen. Um den Dienst wieder zu starten, verwenden Sie Start: ’ 10-60.vbs Set network = CreateObject("Wscript.Network") cname = network.ComputerName set service = GetObject("WinNT://" & cname & "/WinMgmt,service") service.Start service.SetInfo MsgBox "WinMgmt gestartet."
10.9.5 Das Startverhalten von Diensten ändern Auch das generelle Startverhalten eines Dienstes kann geändert werden. Wenn Sie zum Beispiel wollen, daß der WinMgmt-Dienst nur manuell gestartet werden kann, aber nicht automatisch beim Windows-Start mitstartet, dann verwenden Sie dieses Script: ’ 10-61.vbs Set network = CreateObject("Wscript.Network") cname = network.ComputerName set service = GetObject("WinNT://" & cname & "/WinMgmt,service") service.Put "StartType", 3 service.SetInfo MsgBox "WinMgmt: manueller Start"
Um den Dienst wieder auf automatischen Start umzuschalten (die Vorgabe), verwenden Sie dieses Script: ’ 10-62.vbs Set network = CreateObject("Wscript.Network") cname = network.ComputerName set service = GetObject("WinNT://" & cname & "/WinMgmt,service") service.Put "StartType", 2 service.SetInfo MsgBox "WinMgmt: Autostart"
362
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Wie Sie sehen, sind die Scripts weitgehend identisch und verwenden lediglich die unterschiedlichen Startcodes: Konstante
Beschreibung
0 1 2 3 4
Automatischer Start beim Booten Automatischer Start bei der Betriebssystem-Initialisierung Automatischer Start vom Service Control Manager Manueller Start Dienst ist gesperrt
Tab. 10.11: Startvarianten für NT/2000-Dienste
Besonders interessant ist dabei Code 4: Mit diesem Code sperren Sie einen Dienst. Er kann dann auf keinen Fall verwendet werden. Die RAS-Dienste für den Remote-Zugriff sind beispielsweise anfangs auf diese Art geschützt und müssen erst freigeschaltet werden, indem Sie den Dienst zum Beispiel mit dem Script von oben auf automatischen oder manuellen Start umschalten.
10.10 Freigegebene Ordner verwalten Ein Netzwerkanschluß macht Ihren Computer noch lange nicht zum gläsernen Computer. Erst wenn Sie Ordner freigeben, können andere den Inhalt via Netzwerk nutzen. Ein wichtiges Arbeitsfeld Ihrer Scripts ist deshalb, freigegebene Ordner zu verwalten. Lassen Sie sich zum Beispiel auflisten, welche Ordner bei Ihnen »gläsern« sind, ziehen Sie Freigaben zurück, und schauen Sie nach, wer gerade (und seit wann) mit welchen Ihrer Daten hantiert.
10.10.1 Alle freigegebenen Ordner auflisten Zuerst soll Ihr Script herausfinden, welche Ordnerfreigaben es auf Ihrem Computer überhaupt gibt. Ordnerfreigaben werden vom LanmanServer-Objekt des Computers verwaltet. Das nächste Script listet alle Freigaben auf: ’ 10-63.vbs set fs = CreateObject("Scripting.FileSystemObject") ausgabe = "C:\shares.htm" set file = fs.CreateTextFile(ausgabe,true) file.WriteLine "
" Set network = CreateObject("Wscript.Network") cname = network.ComputerName set lanman = GetObject("WinNT://" & cname & "/LanmanServer") for each share in lanman
10.10 Freigegebene Ordner verwalten
363
on error resume next file.write "" & share.name & " | " file.write "" & share.path & " | " file.write "" & share.MaxUserCount & " | " file.write "" & share.CurrentUserCount & " | " file.write "" & share.Description & " | " file.write "" & share.HostComputer & " |
" on error goto 0 next file.Writeline "
" file.close set wshshell = CreateObject("WScript.Shell") wshshell.run "iexplore.exe " & ausgabe
Das Ergebnis läßt sich allerdings noch kräftig optimieren. Die Angabe des HostComputers ist zum Beispiel überflüssig.
Bild 10.19: Alle freigegebenen Ordner und viele wichtige Detailinfos
Hier eine optimierte Fassung: ’ 10-64.vbs set fs = CreateObject("Scripting.FileSystemObject") ausgabe = "C:\shares.htm" set file = fs.CreateTextFile(ausgabe,true) file.WriteLine "
"
364
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Set network = CreateObject("Wscript.Network") cname = network.ComputerName set lanman = GetObject("WinNT://" & cname & "/LanmanServer") for each share in lanman ’ Infos holen: on error resume next name = share.name pfad = share.path limitusers = share.MaxUserCount if limitusers = -1 then limit = "beliebig viele" else limit = "max. " & limitusers & " Zugriffe" end if counter = share.CurrentUserCount desc = share.Description ’ ausgeben, wenn kein Fehler passiert ist if err.number=0 then on error goto 0 file.write "" & name & " | " file.write "" & pfad & " | " file.write "" & limit & " | " file.write "" & "Aktuelle Zugriffe: " & _ counter & " | " file.write "" & desc & " |
" else err.clear end if next file.Writeline "
" file.close set wshshell = CreateObject("WScript.Shell") wshshell.run "iexplore.exe " & ausgabe
Tip: Versteckte Freigaben bleiben unsichtbar Administrative Freigaben (wie zum Beispiel C$) werden von ADSI nicht aufgelistet.
10.10 Freigegebene Ordner verwalten
365
10.10.2 Einen neuen freigegebenen Ordner anlegen Erinnern Sie sich noch an die Methoden des Scripting.FileSystemObject? Mit CreateFolder konnten Sie dort einen neuen lokalen Ordner anlegen, und mit ADSI läßt sich dieser Ordner nun sogar freigeben. Das nächste Script legt automatisch einen Ordner an und gibt ihn im Netzwerk frei. Denken Sie allerdings daran, daß der neue freigegebene Ordner anfangs für jedermann voll zugänglich ist und meist zusätzlich mit Sicherheitsattributen ausgestattet werden muß. ’ 10-65.vbs ’ neuen freigegebenen Ordner anlegen neu = "C:\MEINE FREIGABE" netzname = "Scriptfreigabe" beschreibung = "Testfreigabe, per Script erstellt" ’ Ordner anlegen, falls erforderlich set fs = CreateObject("Scripting.FileSystemObject") if not fs.FolderExists(neu) then ' bei verschachtelten Ordnern muß der übergeordnete ' Ordner bereits bestehen! fs.CreateFolder neu end if ' Ordner freigeben Set network = CreateObject("Wscript.Network") cname = network.ComputerName set lanman = GetObject("WinNT://" & cname & "/LanmanServer") on error resume next set shareneu = lanman.Create("fileshare", netzname) if not err.number=0 then MsgBox "Fehler, Freigabe existiert womöglich schon." WScript.Quit end if on error goto 0 shareneu.Path = neu shareneu.Description = beschreibung shareneu.MaxUserCount = -1 ' unlimitierte Verbindungen ' anlegen shareneu.SetInfo MsgBox "Freigabe eingerichtet!"
Tatsächlich: Dieses Script legt automatisch einen neuen Ordner an und gibt ihn im Netzwerk frei.
366
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
10.10.3 Eine Freigabe rückgängig machen Freigaben lassen sich umgekehrt auch scriptgesteuert zurücknehmen. Oben haben Sie ein neues Objekt vom Typ FileShare angelegt und in den Container LanmanServer gespeichert. Dieses Objekt ist die Freigabe, und um die Freigabe ungeschehen zu machen, brauchen Sie das Objekt nur zu löschen. Diese Löschaktion betrifft lediglich die Freigabe. Der zugrundeliegende Ordner bleibt natürlich unberührt. Wollen Sie auch den Ordner löschen, dann schauen Sie sich die Methoden des Scripting.FileSystemObject an. So entfernen Sie die Freigabe, die Sie gerade angelegt haben: ’ 10-66.vbs netzname = "Scriptfreigabe" ’ Zugriff auf LanmanServer herstellen Set network = CreateObject("Wscript.Network") cname = network.ComputerName set lanman = GetObject("WinNT://" & cname & "/LanmanServer") ' Freigabeobjekt löschen on error resume next lanman.Delete "fileshare", netzname if not err.number=0 then MsgBox "Fehler, Freigabe existiert womöglich " _ & "gar nicht (mehr): 0x" & hex(err) WScript.Quit end if on error goto 0 MsgBox "Freigabe entfernt!"
10.10.4 Schauen, wer welche Freigaben zur Zeit nutzt Das LanmanServer-Objekt beschäftigt noch zwei weitere Unterobjekte, die ebenfalls interessante Informationen liefern. Das Session- und das Resource-Objekt listen penibel auf, wer im Augenblick welche freigegebenen Ressourcen nutzt. Glauben Sie nicht? Ausprobieren! ’ 10-67.vbs set fs = CreateObject("Scripting.FileSystemObject") ausgabe = "C:\snapshot.htm" set file = fs.CreateTextFile(ausgabe,true)
10.10 Freigegebene Ordner verwalten
367
file.WriteLine "
" ’ auf LanmanServer zugreifen: Set network = CreateObject("Wscript.Network") cname = network.ComputerName set lanman = GetObject("WinNT://" & cname & "/LanmanServer") file.write "Name | User | Computer | " file.write "Connect | Idle |
" for each session in lanman.Sessions ’ Infos holen: on error resume next name = session.name user = session.user computer = session.computer ct = session.ConnectTime it = session.IdleTime ’ ausgeben, wenn kein Fehler passiert ist if err.number=0 then on error goto 0 file.write "" & name & " | " file.write "" & user & " | " file.write "" & computer & " | " file.write "" & ct & " | " file.write "" & it & " |
" else err.clear end if next file.Writeline "
" file.close set wshshell = CreateObject("WScript.Shell") wshshell.run "iexplore.exe " & ausgabe
Dieses Script listet Ihnen alle Zugriffe auf, die von außen auf Ihre Freigaben erfolgen. ConnectTime und IdleTime listen sekundengenau auf, wie lange die Verbindung besteht und wie lange (Idle) die Verbindung ungenutzt ist. Das Resource-Objekt liefert detailliertere Informationen: Hier sehen Sie, welcher Benutzer auf welche Dateien und Ordner zugreift: ’ 10-68.vbs set fs = CreateObject("Scripting.FileSystemObject") ausgabe = "C:\snapshot.htm"
368
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
set file = fs.CreateTextFile(ausgabe,true) file.WriteLine "
" ’ auf LanmanServer zugreifen: Set network = CreateObject("Wscript.Network") cname = network.ComputerName set lanman = GetObject("WinNT://" & cname & "/LanmanServer") file.write "Name | User | Path | " file.write "Lock Count |
" for each resource in lanman.Resources ’ Infos holen: on error resume next name = resource.name user = resource.user path = resource.Path lc = resource.LockCount ’ ausgeben, wenn kein Fehler passiert ist if err.number=0 then on error goto 0 file.write "" & name & " | " file.write "" & user & " | " file.write "" & path & " | " file.write "" & lc & " | " else err.clear end if next file.Writeline "
" file.close set wshshell = CreateObject("WScript.Shell") wshshell.run "iexplore.exe " & ausgabe
10.11 Netzwerkdrucker – Druckaufträge managen Auch Drucker können im Netzwerk freigegeben und gemeinsam via Netzwerk genutzt werden. Und auch hier kann ADSI mächtig helfen. Mit ADSI finden Sie auf einen Schlag heraus, welche Drucker zur Zeit online sind. Sie können sich die Druckerauslastung ansehen und sogar einzelne Druckaufträge in der Warteschlange nach vorne mogeln. Dinge also, für die Sie an jeder Supermarktkasse gesteinigt würden.
10.11 Netzwerkdrucker – Druckaufträge managen
369
10.11.1 Welche Drucker stehen im Netzwerk zur Verfügung? Welche Drucker stehen in Ihrem Netzwerk eigentlich zur Verfügung? Anstatt sich auf Listen verlassen zu müssen, setzen Sie doch einfach ein ADSI-Script ein! Es findet automatisch alle Drucker, die gerade online sind. Dazu durchsucht es alle Domänen und Arbeitsgruppen und schaut nach, ob die gefundenen Computer Objekte vom Typ PrintQueue anzubieten haben: ’ 10-69.vbs set adsi = GetObject("WinNT:") ' alle Domänen finden for each domain in adsi domname = domain.name ' alle Computer in der Domäne auflisten ' Inhalt beschränken auf Elemente, ' die vom Typ "Computer" sind domain.Filter = Array("Computer") ' alle Computer durchsuchen for each computer in domain compuname = computer.name ' Ergebnis nur auf Netzwerkdrucker beschränken computer.Filter = Array("PrintQueue") for each printer in computer list = list & domname & "/" & compuname _ & "/" & printer.name & vbCr next next next MsgBox list, vbInformation
10.11.2 Die Eigenschaften der Drucker-Warteschlangen Wie schon bei den vorangegangenen Objekten lohnt es sich auch bei Netzwerkdruckern, alle Eigenschaften sichtbar zu machen, die dieses Objekt unterstützt. Dazu muß allerdings mindestens ein Netzwerkdrucker tatsächlich online sein. Das nächste Script schnappt sich den ersten verfügbaren Netzwerkdrucker und listet dann die Eigenschaften eines PrintQueue-Objekts auf: ’ 10-70.vbs set adsi = GetObject("WinNT:") ' alle Domänen finden
370
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
for each domain in adsi domname = domain.name domain.Filter = Array("Computer") for each computer in domain compuname = computer.name computer.Filter = Array("PrintQueue") for each printer in computer set testprinter = GetObject(printer.ADsPath) gefunden = true exit for next next if gefunden then exit for next ’ Schema des Objekts erfragen set schema = GetObject(testprinter.Schema) for each property in schema.MandatoryProperties list = list & property & " = " & _ GetInfo(testprinter, property) & vbCr next for each property in schema.OptionalProperties list = list & property & " = " & _ GetInfo(testprinter, property) & vbCr next MsgBox list, vbInformation function GetInfo(obj, prop) on error resume next GetInfo = obj.Get(prop) if VarType(GetInfo)=8209 then GetInfo = "(ByteArray)" else GetInfo = GetInfo & " als " & TypeName(GetInfo) end if if not err.number=0 then GetInfo = "(undefiniert)" end if end function
Zusätzlich zu den Eigenschaften eines Druckers bietet das PrintQueue-Objekt diese interessanten Methoden:
10.11 Netzwerkdrucker – Druckaufträge managen
Methode
Beschreibung
Status Pause Resume Purge
Druckerstatus Drucker anhalten Drucker fortsetzen Alle Druckjobs abbrechen und löschen
371
Tab. 10.12: Befehle des PrintQueue-Objekts
Das vorangegangene Script mußte einen relativ großen Aufwand treiben, weil es sich automatisch irgendeinen Drucker aus dem Netzwerk herausgepickt hat. Wenn Sie einen ganz bestimmten Drucker ansprechen wollen, geht es sehr viel einfacher. Sie brauchen nur den korrekten ADSI-Pfad zum Drucker anzugeben. Ersetzen Sie in den folgenden Scripts also den ADSI-Pfad zu Ihrem Drucker. Möchten Sie beispielsweise erfahren, an welchem Port der Drucker hängt, dann genügt dieses Script: ’ 10-71.vbs
set drucker = _ GetObject("WinNT://ARBEITSGRUPPE/SCENIC1/LexmarkColor") MsgBox "Port: " & drucker.Get("PrintDevices")
Auf die gleiche Weise können Sie auch all die übrigen Eigenschaften abfragen, die Ihnen das vorangegangene Script aufgelistet hat. Denken Sie nur an eins: Wenn eine Eigenschaft keinen Wert enthält, kassieren Sie einen Fehler. Oben haben Sie bereits mehrere Methoden kennengelernt, solche Fehler abzufangen und zu entschärfen.
10.11.3 Wie geht es meinem Drucker? Ein Statusreport Die Status-Eigenschaft des Druckers liefert Ihnen eine Schnelldiagnose: Funktioniert der Drucker einwandfrei, oder sind Probleme aufgetreten? Gleich wissen Sie es ganz genau: ’ 10-72.vbs set dict dict.add dict.add dict.add dict.add dict.add dict.add dict.add dict.add dict.add dict.add
= CreateObject("Scripting.Dictionary") 0, "alles in Ordnung!" 1, "Drucker pausiert" 2, "Drucker löscht Auftrag" 3, "Druckerfehler!" 4, "Papierstau." 5, "Kein Papier mehr" 6, "Papier von Hand zuführen!" 7, "Problem mit Papiereinzug" 8, "Drucker ist offline" &H100, "Drucker I/O aktiv"
372
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
dict.add dict.add dict.add dict.add dict.add dict.add dict.add dict.add dict.add dict.add dict.add dict.add dict.add dict.add dict.add dict.add
&H200, "Drucker ist beschäftigt" &H400, "Drucker druckt gerade" &H800, "Ausgabefach leeren!" &H1000, "Drucker nicht verfügbar" &H2000, "Drucker wartet" &H4000, "Drucker bearbeitet Job" &H8000, "Drucker wird initialisiert" &H10000, "Drucker wärmt auf" &H20000, "kaum noch Toner" &H40000, "kein Toner" &H80000, "Papierproblem" &H100000, "Benutzereingriff erforderlich" &H200000, "Druckerspeicher alle" &H400000, "Druckerklappe offen" &H800000, "Druckerserver unbekannt" &H1000000, "Drucker im Energiesparmodus"
set drucker = GetObject("WinNT://ARBEITSGRUPPE/SCENIC1/LexmarkColor") MsgBox dict(drucker.Status)
Welche Statusinformationen Ihr Drucker allerdings wirklich liefert, hängt von seiner Anbindung ab. Hier ein kleines Szenario: ’ 10-73.vbs set drucker = GetObject("WinNT://ARBEITSGRUPPE/SCENIC1/LexmarkColor") MsgBox drucker.Status drucker.Pause MsgBox drucker.Status drucker.Resume MsgBox drucker.Status
Tip: Bitfelder machen das Leben schwer – trallali Genau genommen liegen die Fehlermeldungen als Bits vor. Das macht die Sache nicht einfach, denn erstens können mehrere Bits gleichzeitig gesetzt sein (dann funktioniert die Abfrage eines festen Zahlenwertes nicht mehr), und zweitens verwenden die Fehlermeldungen teils mehrere Bits auf einmal. Die Fehlermeldung »Kein Papier mehr« mit Code 5 benutzt die Bits 0 und 2.
10.11.4 Die Aufträge eines Druckers sichtbar machen ADSI kann sogar herausfinden, welche Aufträge ein Drucker gerade abarbeitet. Das folgende Script zeigt, wie das bewerkstelligt wird:
10.11 Netzwerkdrucker – Druckaufträge managen ’ 10-74.vbs
set fs = CreateObject("Scripting.FileSystemObject") ausgabe = "C:\snapshot.htm" set file = fs.CreateTextFile(ausgabe,true) file.WriteLine "
" ’ auf Druckerwarteschlange zugreifen: Set network = CreateObject("Wscript.Network") cname = network.ComputerName ’ hier eigenen Druckerpfad angeben: set queue = _ GetObject("WinNT://ARBEITSGRUPPE/SCENIC1/LexmarkColor")
file.write "Beschreibung | User | Pos. | " file.write "Seiten gedruckt |
" for each printjob in queue.printjobs ’ Infos holen: on error resume next desc = printjob.description user = printjob.user position = printjob.Position pages = printjob.PagesPrinted ’ ausgeben, wenn kein Fehler passiert ist if err.number=0 then on error goto 0 file.write "" & desc & " | " file.write "" & user & " | " file.write "" & position & " | " file.write "" & pages & " | " else err.clear end if next file.Writeline "
" file.close set wshshell = CreateObject("WScript.Shell") wshshell.run "iexplore.exe " & ausgabe
373
374
Kapitel 10: ADSI: Netzwerk und Benutzerkonten verwalten
Dies sind längst nicht alle Informationen, die Sie über einen Druckauftrag in Erfahrung bringen können. Hier die komplette Liste: Name
Beschreibung
HostPrintQueue User UserPath TimeSubmitted TotalPages Size Description Priority StartTime UntilTime Notify NotifyPath TimeElapsed PagesPrinted Position
Pfadname der Druckerwarteschlange Benutzer, der den Druckjob in Auftrag gegeben hat ADS-Pfad des Benutzers Auftragszeit Seitenanzahl gesamt Größe in Byte Beschreibung Priorität Frühester Zeitpunkt, zu dem gedruckt werden soll Spätester Zeitpunkt, zu dem gedruckt werden soll Benutzer benachrichtigen, wenn Druck erledigt ist ADS-Pfad des Benutzers, der benachrichtigt werden soll Sekunden seit Druckbeginn Gedruckte Seiten Position des Auftrags in Druckerwarteschlange
Tab. 10.13: Informationen über Druckaufträge
10.11.5 Druckerwarteschlange komplett löschen Über Purge läßt sich ferngesteuert die gesamte Druckerwarteschlange eines Druckers löschen. Alle noch nicht gedruckten Aufträge gehen dabei verloren. So wird’s gemacht: ’ 10-75.vbs ’ auf Druckerwarteschlange zugreifen: Set network = CreateObject("Wscript.Network") cname = network.ComputerName set queue = _ GetObject("WinNT://ARBEITSGRUPPE/SCENIC1/LexmarkColor") queue.Purge MsgBox "Alle Aufträge gelöscht!"
10.11.6 Priorität einzelner Druckaufträge ändern Einige der Eigenschaften des PrintJob-Objekts sind veränderbar. So können Sie zum Beispiel mit der Eigenschaft Priority die Dringlichkeit des Druckauftrags ändern – und damit die Reihenfolge, in der Druckaufträge gedruckt werden. Das nächste Script setzt die Aufträge eines beliebigen Benutzers auf den höchsten Wert (99). Alle Aufträge dieses Benutzers werden also absolut vorrangig abgearbeitet.
10.11 Netzwerkdrucker – Druckaufträge managen ’ 10-76.vbs ’ auf Druckerwarteschlange zugreifen: Set network = CreateObject("Wscript.Network") cname = network.ComputerName username = InputBox("Geben Sie den Benutzernamen ein!") set queue = GetObject("WinNT://ARBEITSGRUPPE/SCENIC1/LexmarkColor") counter = 0 for each printjob in queue.printjobs ’ Infos holen: if lcase(printjob.user) = lcase(username) then if printjob.Priority0 then klassenname = subclass.path_ pos1 = Instr(klassenname, ":") file.WriteLine mid(klassenname, pos1+1) ’ Sperre: end if
394
Kapitel 11: WMI: Computerverwaltung lokal und quer durchs Netz
next file.close ’ Datei anzeigen set wshshell = CreateObject("WScript.Shell") wshshell.run "C:\classes.txt"
Bild 11.7: Schon besser: Herausfinden, welche WMI-Klassen es gibt
Tip: Es gibt sogar noch mehr Klassen! Wenn Sie sich das Script genau ansehen, dann werden Sie feststellen, daß es längst nicht alle Klassen ausspuckt. Es konzentriert sich nur auf Klassen, die mit »Win32_« beginnen. Das dürfte genügen, um die nächsten zwanzig Jahre die Klassenbestandteile zu erforschen. Wenn Sie noch mehr Informationsflut wünschen, um auch Ihre Kinder und Kindeskinder beschäftigt zu halten, dann bauen Sie die Sperre einfach aus. Entfernen Sie dazu die zwei markierten Zeilen.
11.5.2 Alle Informationen über eine Klasse finden Nun kennen Sie die Klassen-Namen, aber wissen noch nicht sonderlich viel über deren Innenleben. Welche Informationen und Funktionen verbergen sich in einer Klasse? Finden Sie es heraus! Das nächste Script durchleuchtet jede x-beliebige Klasse. Geben Sie einfach den Klassennamen an, der Sie interessiert: ’ 11-19.vbs set wshshell = CreateObject("WScript.Shell") ’ Variablentypen festlegen dim types(103) for x = 0 to 103
11.5
Welche Informationen hat WMI auf Lager?
395
types(x) = "???" next types(2) = " as Integer" ’"SINT16" types(3) = " as Integer" ’"SINT32" types(4) = " as Integer" ’"REAL32" types(5) = " as Integer" ’"REAL64" types(8) = " as String" ’"String" types(11) = " as Boolean" ’"BOOLEAN" types(13) = " as CIM-Object" ’"CIM OBJECT" types(16) = " as Integer" ’"SINT8" types(17) = " as Integer" ’"USINT8" types(18) = " as Integer" ’"USINT16" types(19) = " as Integer" ’"USINT32" types(20) = " as Integer" ’"SINT64" types(21) = " as Integer" ’"USINT64" types(101) = " as Date/Time" ’"Date/Time" types(103) = " as Unicode" ’"Char16"
’ Welche Klasse soll untersucht werden? which = InputBox("Geben Sie den Klassennamen ein!" _ ,,"win32_operatingsystem") set fs = CreateObject("Scripting.FileSystemObject") ’ hier einen besseren Pfad angeben! datei = "C:\" & which & ".htm" set file = fs.CreateTextFile(datei, true) ’ synthetische Klasse generieren: set wmi = GetObject("winmgmts:[locale=ms_407]!:" & which) set klasse = wmi.SpawnDerivedClass_ file.writeLine "" & which & "" file.writeLine "<style>td {font: 10pt Arial; color: ""#666600""; backgroundcolor: ""#AAAAAA""}" file.writeLine "p {font: 10pt Arial; color: ""#DDDDFF""; font-weight:}" file.writeLine ".mn {font-size: 11pt; color: black; font-weight: bold}" file.writeLine "" file.writeLine "" file.WriteLine "" & which & "
" file.WriteLine ShowMethods(klasse) file.WriteLine ShowProperties(klasse) file.writeline "
" file.close wshshell.Run datei
396
Kapitel 11: WMI: Computerverwaltung lokal und quer durchs Netz
function ShowMethods(obj) ’ listet alle Methoden auf set methods = obj.methods_ for each method in methods dl = "" newfunc = "" & method.name & "" ’ Parameter für die Eingabe set inpars = method.InParameters if not TypeName(inpars)="Nothing" then set params = inpars.Properties_ startchar = "(" for each param in params newfunc = newfunc & startchar _ & "" & param.name & "" _ & types(param.CIMType) _ & ", " startchar = "" ' beschreibung set qualifier = param.Qualifiers_ paramdesc = GetDesc(qualifier) if paramdesc"" then dl = dl & "" & param.name _ & "=" & GetDesc(qualifier) _ & "
" end if for each qual in qualifier if not lcase(qual.name) = _ "mappingstrings" then dl = dl & GetQualifier(qual) end if next next newfunc = left(newfunc, len(newfunc)-2) & ")" end if set outpars = method.OutParameters if not TypeName(outpars)="Nothing" then set param = outpars.Properties_.Item("ReturnValue") newfunc = "result" & types(param.CIMType) _ & " = " & newfunc end if set qualifier = method.Qualifiers_ commanddesc = GetDesc(qualifier)
11.5
Welche Informationen hat WMI auf Lager?
for each qual in qualifier if lcase(qual.name) = "mappingstrings" then check = GetQualifier(qual) pos1 = InstrRev(check, "=") api = _ "Befehl wird von folgender " _ & "API-Funktion bereitgestellt:
" _ & mid(check, pos1+1) end if next list = list & "
" & newfunc & " " _ & dl & " | " _ & Replace(Replace(commanddesc,vbCr,""),vbLf, " ") _ & " " & api & " |
" next ShowMethods = list end function
function ShowProperties(obj) ’ listet alle Eigenschaften auf: set props = obj.properties_ for each prop in props newfunc = prop.name set qualifier = prop.Qualifiers_ for each qual in qualifier if qual.name = "Description" then propdesc = qual.value end if next list = list & "
" _ & newfunc & " | " list = list & Replace(Replace(propdesc, vbCr, " "),_ vbLf, " ") & " |
" next ShowProperties = list end function function GetQualifier(qual) on error resume next select case lcase(qual.name) case "description" exit function case "id" exit function case "cimtype"
397
398
Kapitel 11: WMI: Computerverwaltung lokal und quer durchs Netz
exit function case "in" exit function end select retval = "" isAnArray = (TypeName(qual.value)="Variant()") if not isAnArray then retval = retval & qual.name & "=" & qual.value _ & "
" else retval = retval & qual.name & " = Array:" & "
" set context = CreateObject("WBEMScripting.SWBEMNamedValueSet") context.add "n1", qual.value for x = lbound(context("n1")) to ubound(context("n1")) if context("n1")(x)"" then retval = retval & x & "=" _ & context("n1")(x) & "
" end if next end if GetQualifier = retval end function function GetDesc(qualifier) for each qual in qualifier if qual.name = "Description" then on error resume next GetDesc = qual.value if err.number0 then GetDesc = "???" err.clear end if on error goto 0 end if next end function
Als Vorgabe schlägt das Script den Klassennamen Win32_OperatingSystem vor. Schauen Sie doch mal rein! Huch – bisher kannten Sie nur das friedliche SerialNumber, doch nun entdecken Sie: Diese Klasse ist vollgestopft mit hochbrisanten Informationen zum Betriebssystem.
11.5
Welche Informationen hat WMI auf Lager?
399
Bild 11.8: Automatisch eine »Bedienungsanleitung« für die Klasse generieren
Und wie bekommt man Zugriff auf den Inhalt einer Klasse? Oben haben Sie schon verschiedene Ansätze gesehen. Hier ein Script, das automatisch alle Instanzen einer beliebigen Klasse ausfragt und alle Informationen anzeigt: ’ 11-20.vbs ’ Zugang zu WMI set obj = CreateObject("WBemScripting.SWbemLocator") set service = obj.ConnectServer(,"root/cimv2") set fs = CreateObject("Scripting.FileSystemObject") set wshshell = CreateObject("WScript.Shell") datei = "c:\klassen.txt" set file = fs.CreateTextFile(datei, true)
klasse = InputBox("Bitte geben Sie die Klasse an!",_
400
Kapitel 11: WMI: Computerverwaltung lokal und quer durchs Netz
,"win32_operatingsystem") query = "Select * from " & klasse set alles = service.ExecQuery(query) list = klasse & vbCrLf for each batterie in alles counter = counter + 1 list = list & "Gerät Nr. " & counter & ":" & vbCrLf list = list & ShowProperties(batterie) next file.WriteLine list file.Close wshshell.Run datei function ShowProperties(obj) ' listet alle Eigenschaften auf: set props = obj.properties_ mylist = "" for each prop in props newfunc = prop.name mylist = mylist & newfunc & " = " on error resume next value = prop.value & vbCrLf if err.number0 then value = "unbekanntes Format" & vbCrLf err.clear end if mylist = mylist & value on error goto 0 next ShowProperties = mylist end function
11.5
Bild 11.9: Alle Informationen einer Klasse auslesen
Welche Informationen hat WMI auf Lager?
401
403
12 Mit WMI-Klassen arbeiten
Es würde den Rahmen dieses Buches gnadenlos sprengen, würde ich versuchen, alle WMI-Klassen und alle Möglichkeiten darzulegen. Statt dessen habe ich Ihnen im vorangegangenen Kapitel alle Werkzeuge an die Hand gegeben, um selbst zu forschen und zu experimentieren. Sie kennen inzwischen alle WMI-Klassen, deren Aufbau, Befehle und Inhalte. In diesem Kapitel zeige ich Ihnen exemplarisch an einigen Beispielen, wie WMI funktioniert und welche enormen Möglichkeiten auf Sie warten.
12.1
Mit Win32_OperatingSystem experimentieren
Selten werden Sie alle Informationen der Win32_OperatingSystem-Klasse auf einmal brauchen. Viel häufiger sind Details gefragt. Wann zum Beispiel wurde Ihr Betriebssystem installiert? Wissen Sie nicht mehr? WMI schon. Das nächste Script ermittelt die Geburtsstunde des Betriebssystems: ’ 12-1.vbs ’set wmi = GetObject("winmgmts:\\serverX\root\cimv2") set wmi = GetObject("winmgmts:") set infos = wmi.InstancesOf("Win32_OperatingSystem") for each os in infos MsgBox "Windows wurde installiert am: " & _ GetTime(os.InstallDate) next
function GetTime(info) f_jahr = left(info,4) f_monat = mid(info,5,2) f_tag = mid(info, 7,2) f_stunde = mid(info, 9,2) f_minute = mid(info, 11,2) f_sekunde = mid(info, 13,2) GetTime = CDate(DateSerial(f_jahr,f_monat,f_tag) _ & " " & TimeSerial(f_stunde, f_minute, f_sekunde)) end function
Die erste Zeile des Scripts dient nur der Angeberei: Damit will ich noch mal unterstreichen, wie simpel es ist, das Script auf einen entfernten anderen Computer anzuwenden. Ersetzen Sie einfach SERVERX durch einen echten Computernamen in Ihrem Netzwerk – auf dem WMI installiert ist.
404
Kapitel 12: Mit WMI-Klassen arbeiten
Bild 12.1: Aha – WMI verrät, wann Windows installiert wurde
Das Script untersucht Ihren lokalen Computer und findet heraus, wann Windows installiert wurde. InstallDate liefert die nötige Information, allerdings in einem etwas ungewöhnlichen Zahlenformat. Damit daraus eine echte Zeitinformation wird, jongliert GetTime etwas mit den Zeitinformationen. Besonders wichtig ist die Prozedur GetTime. Sie wandelt das etwas eigentümliche WMI-Datumsformat in eine menschenfreundlichere Version um. Andere interessante Zeitinformationen sind: Eigenschaft
Bedeutung
LastBootUpTime LocalDateTime
Zeit des letzten Hochfahrens (letzte Benutzung) Lokale Zeit auf einem Rechner
Tab. 12.1: Datumsfunktionen der Win32_OperatingSystem-Klasse
Ersetzen Sie einfach InstallDate durch eine der beiden Varianten.
12.1.1 Einen Computer herunterfahren (oder neu starten) Die Win32_OperatingSystem-Klasse kann noch mehr: Sie enthält einige Methoden, mit denen Sie handfest ins Geschehen eingreifen. Über diese Methoden fahren Sie zum Beispiel einen Computer herunter oder starten ihn neu. Ganz gleich, wo der Computer im Netzwerk lebt. Tip: Aufpassen: WMI meint es ernst! WMI hat sich Fernwartung auf die Fahnen geschrieben und tut alles, damit sich der faule Systemadministrator nicht von der Couch entfernen muß. Das bedeutet aber auch: WMI hält sich nicht mit lästigen Nachfragen auf. Wenn Sie WMI beauftragen, einen Rechner herunterzufahren, dann macht WMI das auch. Ohne Warnung oder die Möglichkeit, nicht gesicherte Dinge zu speichern, fährt das System herunter. ’ 12-2.vbs computer = InputBox("Name des Rechners?") set wmi = CreateObject("WBemScripting.SWbemLocator") set server = wmi.ConnectServer(computer,"root\cimv2") set infos = server.InstancesOf("Win32_OperatingSystem") for each os in infos on error resume next
12.1
Mit Win32_OperatingSystem experimentieren
405
result = os.Shutdown err.clear on error goto 0 MsgBox result next
Wollen Sie es etwas galanter anstellen und den Anwender vorher vor dem Herunterfahren warnen, dann verwenden Sie die API-Version aus Kapitel 8.18. Die funktioniert allerdings nur mit Windows NT und Windows 2000. Ihren eigenen Computer können Sie übrigens genauso herunterfahren. Allerdings müssen Sie sich hier die nötigen »Privilegien« einräumen. Das sieht in der Praxis folgendermaßen aus: ’ 12-3.vbs set wmi = CreateObject("WBemScripting.SWbemLocator") set server = wmi.ConnectServer(,"root\cimv2") set infos = server.InstancesOf("Win32_OperatingSystem") for each os in infos os.security_.Privileges.add 18, true os.Shutdown next
Computer neu starten Ersetzen Sie einfach in den Scripts oben den Befehl Shutdown durch den Befehl Reboot. Schon fahren die Scripts die Rechner nicht mehr herunter, sondern starten sie neu.
Reboots mit maximaler Kontrolle WMI kann sogar die offizielle Windows-API-Funktion ExitWindowsEx ansteuern. So haben Sie maximale Kontrolle darüber, was der Computer eigentlich tun soll. Das nächste Script erlaubt, ferngesteuert jeden Computer auf eine der Arten der folgenden Tabelle herunterzufahren oder neu zu starten. Geben Sie neben dem Netzwerknamen nur noch die gewünschte Kennzahl ein. Kennzahl
Bedeutung
0 1 2 1+4 2+4 1+8 1+4+8 1+16 2+16
Ausloggen Herunterfahren Neu starten Sofort herunterfahren Sofort neu starten Herunterfahren und ausschalten Sofort herunterfahren und ausschalten Herunterfahren trotz aufgehängter Programme (Windows 2000) Neu starten trotz aufgehängter Programme (Windows 2000)
Tab. 12.2: Herunterfahr-Optionen der verpackten ExitWindowsEx-WMI-Funktion
406
Kapitel 12: Mit WMI-Klassen arbeiten
’ 12-4.vbs computer = InputBox("Name des Rechners?") modus = InputBox("Welchen Modus wünschen Sie?",,"4") set wmi = CreateObject("WBemScripting.SWbemLocator") set server = wmi.ConnectServer(computer,"root\cimv2") set infos = server.InstancesOf("Win32_OperatingSystem") for each os in infos on error resume next call os.Win32Shutdown(modus) err.clear on error goto 0 next MsgBox "Erledigt."
12.2
Programme ferngesteuert starten
WMI kann sich mit Leichtigkeit ein Bild darüber verschaffen, welche Programme zur Zeit auf einem beliebigen Computer ausgeführt werden. Was den Betriebsrat wenig freuen wird, ist sogar nur die Spitze des Eisbergs. WMI kann außerdem selbst neue Programme starten und auf dem fremden Computer ausführen lassen.
12.2.1 Welche Programme laufen gerade? Zuerst soll WMI herausfinden, welche Programme im Augenblick auf einem beliebigen Computer ausgeführt werden. Das erledigt das folgende Script: ’ 12-5.vbs computer = InputBox("Bitte geben Sie einen Computernamen ein!") set wmi = GetObject("winmgmts:\\" & computer & "\root\cimv2") set system = wmi.InstancesOf("win32_process") for each process in system list = list & process.name & vbCr next MsgBox list, vbInformation
Wollen Sie nur die Prozesse auf Ihrem eigenen Computer beobachten, dann gibt’s eine vereinfachte Fassung:
12.2
Programme ferngesteuert starten
407
Bild 12.2: Laufende Prozesse auf Ihrem – oder einem anderen – Computer beobachten ’ 12-6.vbs set wmi = GetObject("winmgmts:") set system = wmi.InstancesOf("win32_process") for each process in system list = list & process.name & vbCr next MsgBox list, vbInformation
12.2.2 Alle Infos über Prozesse anzeigen Prozeßinformationen haben noch viel mehr Geheimnisse auf Lager. Wenn Sie eine genaue Liste aller Informationen aller gerade laufenden Prozesse sehen wollen, dann bemühen Sie das nächste Script. Nun wissen Sie, seit wann ein Programm läuft, wie viel Speicher es verschlingt und wie die zugrundeliegende ausführbare Datei heißt: ’ 12-7.vbs set fs = CreateObject("Scripting.FileSystemObject") ausgabe = "c:\process.txt" set file = fs.CreateTextFile(ausgabe, true) set wmi = GetObject("winmgmts:") set system = wmi.InstancesOf("win32_process") for each process in system file.WriteLine vbCrLf & "***" & process.name & "***"
408
Kapitel 12: Mit WMI-Klassen arbeiten
file.WriteLine ShowProperties(process) & vbCrLf next file.close set wshshell = CreateObject("WScript.Shell") wshshell.Run ausgabe function ShowProperties(obj) ’ listet alle Eigenschaften auf: set props = obj.properties_ mylist = "" for each prop in props newfunc = prop.name mylist = mylist & newfunc _ & " = " & prop.value & vbCrLf next ShowProperties = mylist end function
Bild 12.3: Detaillierte Prozeßinformationen quer über das Netzwerk
12.2
Programme ferngesteuert starten
409
12.2.3 Programme ferngesteuert starten Auch Programmstarts sind möglich. Dazu startet WMI einfach selbst einen neuen Prozeß. Das ist viel leichter, als Sie vielleicht denken. Das nächste Script startet zum Beispiel den Texteditor Notepad auf jedem beliebigen WMI-fähigen Computer: ’ 12-8.vbs computer = InputBox("Name des Computers?") set system = GetObject("winmgmts:\\" & computer _ & "\root\cimv2:win32_process") system.Create "notepad.exe"
Das war nicht besonders schwierig, oder? Stellen Sie sich die Möglichkeiten vor, die Ihnen nun offen stehen: Sie könnten ferngesteuert auf allen Computern Wartungsprogramme ausführen lassen. Oder Sie gehen noch raffinierter vor: Kopieren Sie zuerst ein Scriptprogramm auf einen freigegebenen Ordner des Remotecomputers, und lassen Sie das Script dann ausführen! Das folgende Beispiel macht genau das. Das Script ist sehr einfach aufgebaut und macht die folgenden Annahmen:
Auf Ihrem Rechner befindet sich das gewünschte Script als C:\SKRIPT.VBS.
Der Remote-Rechner verfügt über einen freigegebenen Ordner mit Schreib- und Ausführungsberechtigung für Ihr Benutzerkonto. Diese Freigabe trägt den Namen Service.
’ 12-9.vbs quellort = "C:" ’ Hier liegt Original scriptname = "SKRIPT.VBS" ’ Name des Originalscripts zielcomputer = "\\win98" ’ Remote-Computer freigabe = "service" ’ Freigabename remoteort = "C:\SERVICE" ’ Ordner des Freigabenamens ’ auf Remote-Computer ’ zuerst Script ans Ziel kopieren set fs = CreateObject("Scripting.FileSystemObject") fs.CopyFile quellort & "\" & scriptname, zielcomputer & "\" & freigabe & "\" & scriptname ' dann Script ausführen set system = GetObject("winmgmts:" & zielcomputer _ & "\root\cimv2:win32_process") WScript.Sleep 1000 system.Create "WSCRIPT.EXE " & remoteort _ & "\" & scriptname
410
Kapitel 12: Mit WMI-Klassen arbeiten
12.2.4 Programme ferngesteuert beenden Umgekehrt geht es auch: WMI kann fremde Programme radikal beenden, wobei die Betonung auf »radikal« liegt: Das Programm wird sofort und ohne Rückfragen oder Speicherungen aus dem Computer gekickt. Dieses Feature ist also mit Vorsicht zu genießen. Das nächste Script ist ein Gottesgeschenk für alle Programmierer, denn es räumt schnell und unaufdringlich alle Notepad-Instanzen Ihres lokalen Computers weg – allerdings wie gesagt ohne Speicher-Rückfragen: ’ 12-10.vbs set wmi = GetObject("winmgmts:") set system = wmi.InstancesOf("win32_process") for each process in system if lcase(process.name)="notepad.exe" then process.Terminate (0) end if next
Sie können das Script mit Leichtigkeit auch auf andere Programme ansetzen. Ersetzen Sie einfach notepad.exe durch den (kleingeschriebenen) Namen des Programms, das Sie entsorgen wollen. Kommen Sie aber lieber nicht auf die Idee, »explorer.exe« beenden zu wollen – denn dann fährt Ihr Windows runter. Der Explorer ist nämlich weitaus tiefer ins System verwoben, als seine Ordnerfenster vermuten lassen. Internet Explorer-Fenster räumt das Script dagegen ohne zu murren weg. Verwenden Sie als Programmnamen in diesem Fall iexplore.exe. Und wenn Sie nicht auf Ihrem eigenen Computer Programme beenden wollen, sondern auf dem Ihres Kollegen, dann fügen Sie hinter winmgmts: wie üblich den Netzwerkpfad an. Hier wird übrigens auch deutlich, wieviel Flexibilität WMI bietet. Dasselbe Script von oben könnten Sie nämlich dank der SQL-artigen WQL-Syntax galanter so formulieren: ’ 12-11.vbs set wmi = GetObject("winmgmts:") wql = "select * from win32_process where name=’notepad.exe’" set notepad = wmi.ExecQuery(wql) for each instance in notepad instance.Terminate (0) next
12.3
Programme ferngesteuert installieren
Hätten Sie das für möglich gehalten? WMI kann sogar Software ferngesteuert im gesamten Netzwerk installieren! Und zwar nicht nur auf Windows 2000-Rechnern, sondern auf jedem WindowsRechner, bei dem Sie wie im vorangegangenen Kapitel WMI einsatzbereit gemacht haben.
12.3
Programme ferngesteuert installieren
411
Das wird natürlich alle mächtig ärgern, die viele tausend Mark für Softwarepakete wie den System Management Server von Microsoft ausgegeben haben. Tatsache ist aber: Der Windows Installer Service, auf den auch SMS zugreift, ist via WMI genauso gut nutzbar.
12.3.1 Ferninstallation – was sind die Voraussetzungen? Natürlich können Sie nicht x-beliebige Programme ferninstallieren. Die Softwarepakete müssen in einem bestimmten Paketformat vorliegen, das der Windows Installer auch versteht. Dieses Paketformat heißt msi, und viele neuere Programme kommen bereits in diesem Format. So auch Microsoft Office 2000. Wenn Sie selbst Software herstellen, dann benutzen Sie einfach einen Paketgenerator wie den von InstallShield, um msi-Pakete zu erstellen. Wollen Sie ältere Software ins msi-Paketformat umverpacken, so gibt es auch für diesen Zweck entsprechende Tools. Das msi-Format ist also keineswegs eine Microsoft-Schrulligkeit, sondern ein neuer gemeinsamer Standard, der Voraussetzung dafür ist, daß Programme ohne lästige »Sind Sie sicher?«-Fragen reibungslos und still installierbar sind. Auf dem Computer, auf dem Sie die Software installieren wollen, muß neben WMI zusätzlich der Windows Installer Service installiert sein. Bei Windows 2000 ist das von vornherein der Fall. Alle anderen Windows-Computer können nachträglich den Installer Service nachrüsten, und zwar kostenlos. Pakete wie Microsoft Office 2000 und andere bringen das nötige Update sogar selbst mit.
12.3.2 Ferngesteuert Programmpakete installieren Das nächste Script zeigt, wie Sie bequem Programmpakete ferninstallieren. Das Script fragt nach nur zwei Informationen: dem Ort mit dem MSI-Paket und dem Namen des Netzwerkcomputers, auf dem Sie das Paket installieren wollen. Damit das klappt, brauchen Sie allerdings Administratoren-Status auf der Zielmaschine. Das Script übernimmt die aktuellen Benutzerinformationen. Wollen Sie sich lieber für die Installation unter einem anderen Namen anmelden, dann sind nur kleine Änderungen am Script nötig, auf die ich unten eingehe. Hier das Wunderscript: ’ 12-12.vbs package_location = InputBox("Pfad mit dem MSI-Paket angeben!") remote_machine_name = InputBox("Netzwerkcomputer, auf dem installiert werden soll?") set Locator = CreateObject("WbemScripting.SWbemLocator") Set Service = Locator.ConnectServer(remote_machine_name, _ "root\cimv2") Set Product = Service.Get("Win32_Product") Set Path = Product.Path_ Set Method = Product.Methods_.Item("Install") Set InParams = Method.InParameters
412
Kapitel 12: Mit WMI-Klassen arbeiten
Set MyIns = InParams.SpawnInstance_ MyIns.PackageLocation = package_location MyIns.AllUsers = "TRUE" MyIns.Options = "" set result = Service.ExecMethod(Path, "Install", MyIns) MsgBox "Erledigt. Rückgabewert: " & result.ReturnValue
Um den Installationsprozeß unter einem anderen Namen auszuführen, ersetzen Sie nur eine Scriptzeile: Set Service = Locator.ConnectServer(remote_machine_name, _ "root\cimv2", benutzername, kennwort)
12.3.3 Programme ferngesteuert deinstallieren Alle Programme, die Sie über den Windows Installer installiert haben, sind fernwartbar und können also auch ferngesteuert wieder von Netzwerkcomputern heruntergeworfen werden. Diese Aufgabe übernimmt das nächste Script. Es fragt zunächst nach dem Computernamen, auf dem Sie ein Programm deinstallieren wollen. Anschließend listet es Ihnen alle Programminstallationen auf, die Sie deinstallieren können. Geben Sie einfach die Kennziffer vor dem gewünschten Programmpaket an, und schon wird es deinstalliert. ’ 12-13.vbs remote_machine_name = InputBox("Computername, auf dem deinstalliert werden soll") set Locator = CreateObject("WbemScripting.SWbemLocator") Set Service = Locator.ConnectServer(remote_machine_name, _ "root\cimv2") Set Products = Service.InstancesOf("Win32_Product") on error resume next prodcount = Products.Count if not err.number=0 then MsgBox "Keine Produkte deinstallierbar." WScript.Quit end if on error goto 0 dim prods(200) counter = 0 for each product in Products counter = counter + 1 list = list & counter & "> " & product.name & vbCr prods(counter) = product.path_ next deinst = InputBox(list)
12.3
Programme ferngesteuert installieren
413
if ((deinst = vbEmpty) or (not isNumeric(deinst))) then MsgBox "Abbruch..." WScript.Quit elseif (CInt(deinst)>prodcount) or (CInt(deinst) 0 then iComplete = Fix((iCurrent * 100)/iUpperBound) ie.document.body.innerHTML = iComplete & " %" end if End Sub Sub INSTALLSINK_OnObjectReady(objObject, objAsyncContext) if Not objObject.ReturnValue = 0 Then ie.document.body.innerHTML = "Installation fehlgeschlagen: " & objObject.ReturnValue Else ie.document.body.innerHTML = "Installation abgeschlossen." End If End Sub
Dieses Script »mißbraucht« den Internet Explorer als Ausgabefenster und zeigt während des Installationsprozesses darin den Fortschritt in Prozent. Sinnvoller sind asynchrone Aufrufe, wenn Sie selbst ein eigenes Control mit maßgeschneidertem Dialogfenster basteln. Solch ein Tool habe ich für Sie entwickelt. Sie finden den Code auf der BuchCD im Ordner WMI\TOOL. Allerdings liefert der Code nur den Mindestrahmen. Sicher werden Sie die Dialogfenster noch feintunen und mit einem ansprechenden Fehlerhandling ausstatten können.
12.3
Programme ferngesteuert installieren
415
Tip: Asynchrone Aufrufe und Netzwerkbelastung Zwar ist es schön anzusehen, wie der Installer mit seiner Arbeit voranschreitet. Aber asynchrone Aufrufe haben auch ihre Tücken. Erstens steigt die Netzwerkbelastung, weil ständig Statusinformationen den Besitzer wechseln. Und zweitens wird der Installationsprozeß anfällig für Störungen. Kann Ihr Script oder Programm nämlich die angelieferten Statusinformationen nicht rechtzeitig verarbeiten, dann wundert sich der Installer und bricht schließlich seine Arbeit ab. Für den Heavy-Duty-Einsatz im Alltagsnetz sind deshalb die beiden synchronen Fassungen von oben sehr gut zu gebrauchen. Die asynchronen Beispiele sind eher für den bedächtigen Sauna-Untensitzer.
Um mit dem Tool ein Programm zu installieren, verwenden Sie diesen Scriptcode: ’ 12-15.vbs set dialog = CreateObject("wmi.remoteinstall") MsgBox dialog.ShowDialog
Und wollen Sie deinstallieren, dann ist dieser Scriptcode richtig: ’ 12-16.vbs set dialog = CreateObject("wmi.remoteinstall") MsgBox dialog.ShowDeinstall
Die Installation von Software kann sogar automatisiert werden. Dazu verwenden Sie dieses Script und geben an, auf welchem Server welches MSI-Paket zu installieren ist: ’ 12-17.vbs set dialog = CreateObject("wmi.remoteinstall") MsgBox dialog.DoInstall("server1", "\\win98\e\data1.msi")
Tip: Einschränkungen, die Sie kennen müssen Der Installer kann nicht multiple Installationen gleichzeitig durchführen. Solange also ein MSI-Paket benutzt wird, kann keine andere Installation damit durchgeführt werden. Versuchen Sie es dennoch, dann kassieren Sie die Fehlermeldung 1619: Installationspaket in Benutzung. Der Fehler 2 ist ebenfalls nicht selten und weist darauf hin, daß Sie sich bei der Pfadangabe des MSI-Pakets vertan haben. Denken Sie daran, die Dateiendung .msi mit anzugeben! Ebenfalls wichtig: Kann der Zielcomputer das Installationsverzeichnis überhaupt öffnen, oder fehlen ihm womöglich Berechtigungen?
Fehlercode
Bedeutung
1601 1602 1603 1604 1605 1606
Installationsdienst steht nicht zur Verfügung Benutzer hat Installation abgebrochen Fehler während der Installation Installation unvollständig Produktcode ist nicht registriert Feature-ID ist nicht registriert
416
Kapitel 12: Mit WMI-Klassen arbeiten
Fehlercode
Bedeutung
1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619
Komponenten-ID ist nicht registriert Unbekannte Eigenschaft Handle ist ungültig Konfiguration ungültig Komponenten-Qualifier fehlt Installationsquelle nicht verfügbar Datenbankversion wird nicht unterstützt Produkt deinstalliert SQL-Syntax fehlerhaft Record existiert nicht Ungültiges Befehlsargument Installationsprozeß im Gange Installationspaket konnte nicht geöffnet werden (ist möglicherweise bereits in Benutzung) Installationspaket ungültig Benutzeroberfläche des Installers konnte nicht geöffnet werden Log-Datei konnte nicht geöffnet werden Produkt-Sprachversion nicht unterstützt Installationspaket konnte nicht transformiert werden Installations-Signatur nicht akzeptiert Funktion war nicht ausführbar Funktion abgebrochen Ungültige Tabelle angegeben Falscher Datentyp Falscher Datentyp Falscher Datentyp
1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631
Tab. 12.3: Fehlermeldungen des Ferninstallations-Dienstes
12.4
Mit WMI auf System-Ereignisse reagieren
WMI kann – soviel ist inzwischen klar – alle nur irgendwie erdenklichen Funktionen Ihrer Netzwerkcomputer erfragen. Allerdings tut WMI dies nur, wenn Sie es darum bitten. Das ist zwar verständlich, aber eigentlich wollen Sie ja Kosten sparen und so viel wie möglich automatisieren. Läßt sich WMI nicht auch dressieren, so daß es automatisch bestimmte Aufgaben übernimmt, ohne mit der Nase darauf gestoßen zu werden? Genau das geht. WMI kann sich nämlich an Systemereignisse binden und dann völlig automatisch die richtigen Schritte einleiten. Ob Sie wollen, daß eine E-Mail versendet wird, sobald ein wichtiger Dienst auf einem Computer abgeschaltet wird, oder ob Sie sofort informiert werden wollen, wenn sich ein bestimmter Benutzer irgendwo im Netzwerk anmeldet – WMI macht’s möglich.
12.4
Mit WMI auf System-Ereignisse reagieren
417
Tip: Events – funktionieren bei Windows 2000 am besten Obwohl Events bei allen WMI-fähigen Computern funktionieren sollten, ist es mir bislang nicht gelungen, sie auch bei Windows 9x zu dressieren. Vielleicht finden Sie ja die Lösung. Mailen Sie mir dann bitte:
[email protected].
12.4.1 Auf Events warten Wie bringen Sie WMI bei, auf bestimmte Ereignisse zu warten? Zum Beispiel so: ’ 12-18.vbs Set services = _ GetObject("WinMgmts:{impersonationLevel=impersonate, (security)}") Set sink = _ WScript.CreateObject("WbemScripting.SWbemSink","SINK_") services.ExecNotificationQueryAsync sink, _ "select * from __instancecreationevent where " _ & "targetinstance isa ’Win32_NTLogEvent’" WScript.Echo "Warte auf Events" Sub SINK_OnObjectReady(objObject, objAsyncContext) MsgBox objObject.TargetInstance.Message & " von " _ & objObject.TargetInstance.User _ & " eignetragen in Logfile " _ & objObject.TargetInstance.logfile End Sub
Dieses Script klinkt sich so lange in die Win32_NTLogEvent-Events des lokalen Rechners ein, bis Sie das Dialogfenster und damit das Script beenden. Kernstück ist das Objekt WBEMScripting.SWBEMSink. Dieses Objekt ist eine Art Event-Empfänger und wird an die WMI-Funktion ExecNotificationQuery übergeben. Diese Funktion weiß dann, an wen sie im Bedarfsfall »zurückfunken« soll. Dieses Zurückfunken beim Eventhandler kümmert Ihr Script allerdings wenig. Es wird erst deshalb auf den Event aufmerksam, weil das Script via WScript.CreateObject selbst einen eigenen Eventhandler für den WMI-Eventhandler installiert hat. Wie das funktioniert, haben Sie ja bereits bei normalen Scripts in den vorangegangenen Kapiteln gesehen.
418
Kapitel 12: Mit WMI-Klassen arbeiten
Bild 12.4: Ihr Script kann jegliche System-Events abfangen
Damit Ihr Script allerdings etwas melden kann, müssen natürlich Events ausgelöst werden. Events werden zum Beispiel ausgelöst, wenn Sie in der Ereignisanzeige das Sicherheitslogbuch löschen. Events können aber auch per Script ausgelöst werden, und zwar so: ’ 12-19.vbs set wshshell = CreateObject("WScript.Shell") wshshell.LogEvent 1, "Hello"
Wenn Sie dieses Script ausführen, solange Ihr Event-Spion auf der Lauer liegt, dann protokolliert er eifrig mit und zeigt die Event-Mitteilung an, ohne daß Sie im Eventlog nachzuschauen brauchen.
Bild 12.5: Ihr Event-Lauscher hat einen Event abgefangen, der vom Script stammt
12.4.2 Programmstarts protokollieren Sie können jeden beliebigen Event abhören. Vielleicht wollen Sie informiert werden, wenn Programme gestartet oder beendet werden. Das leistet das nächste Script. Es bedient sich eines Tricks, damit auch wirklich nur die Programme überwacht werden, die vom Benutzer gestartet werden – und nicht etwa Programme, die das System hinter den Kulissen startet. Dazu besorgt sich das Script die ProgID des Explorers und kümmert sich nur um die Programme, die Child-Prozesse des Explorers sind. Alle Programme, die Sie über die Windows-Benutzeroberfläche starten, sind ChildProzesse des Explorers.
12.4
Mit WMI auf System-Ereignisse reagieren
419
’ 12-20.vbs Klasse = "Win32_Process" ’ Events melden sich hier und werden ans Script weitergeleitet: set Eventlauscher = WScript.CreateObject("WBEMScripting.SWBEMSink", "event_") ’ Verbindung zu WMI herstellen set locator = CreateObject("WbemScripting.SWbemLocator") ' geben Sie einen Servernamen an, wenn Sie remote überwachen wollen: set service = locator.ConnectServer() ' alle laufenden Instanzen des Explorers finden: set explorerinstances = service.ExecQuery("SELECT * FROM Win32_Process WHERE Name='explorer.exe'") ' ID herauspicken: for each inst in explorerinstances explorerprogid = inst.Handle next ' an diesen Events sind wir interessiert ' __InstanceDeletionEvent = Programm wird beendet ' __InstanceCreationEvent = Programm wird gestartet call EventAbhoeren("SELECT * FROM __InstanceDeletionEvent WITHIN 1.5 WHERE TargetInstance ISA '" & Klasse & "' AND TargetInstance.ParentProcessId=" & explorerprogid, "Prg Stop") call EventAbhoeren("SELECT * FROM __InstanceCreationEvent WITHIN 1.5 WHERE TargetInstance ISA '" & Klasse & "' AND TargetInstance.ParentProcessId=" & explorerprogid, "Prg Start") MsgBox "Eventüberwachung abschalten", vbSystemModal function EventAbhoeren(Eventanforderung, Zusatzdaten) ' aktiviert die Eventüberwachung call service.ExecNotificationQueryAsync(Eventlauscher,Eventanforderung, "WQL", 0, null, EventDaten(Zusatzdaten)) end function function EventDaten(InfoObjekt) ' fügt Daten über den Ursprung des Events hinzu set Zusatzinfos = CreateObject("WbemScripting.SWbemNamedValueSet") call Zusatzinfos.Add("data", InfoObjekt) set EventDaten = Zusatzinfos end function function Eventhandler(objObject, objAsyncContext) ' wird aufgerufen, wenn Event feuert set EventInformationen = objAsyncContext.Item("data")
420
Kapitel 12: Mit WMI-Klassen arbeiten
MsgBox EventInformationen.Value & ": " & objObject.TargetInstance.PATH_, vbSystemModal end function sub event_OnObjectReady(objObject, objAsyncContext) ' wird ausgelöst, wenn einer der abgehörten ' Events ausgelöst wird call Eventhandler(objObject, objAsyncContext) end sub
Wenn Sie das Script starten, beginnt es mit der Eventüberwachung. Starten Sie ein Programm! Sofort meldet das Script den Programmstart und könnte ihn ebensogut in eine Logbuchdatei schreiben. Beenden Sie das Programm, dann wird auch dieses Ereignis gemeldet.
Bild 12.6: Ihr Script überwacht Programmstart und Programmende
Bislang überwacht das Script nur Ihren lokalen Computer. Sie können aber ebensogut auch jeden anderen WMI-fähigen Computer im Netzwerk überwachen. Lassen Sie das Script einfach mit dem gewünschten Computer eine Verbindung eingehen (siehe Scriptcode). Wie interessant die Möglichkeiten sind, die Sie nun haben, zeigt das nächste Script. Es schließt sofort alle NOTEPAD.EXE-Programme wieder, die Sie versuchen zu starten. ’ 12-21.vbs set Eventlauscher = WScript.CreateObject("WBEMScripting.SWBEMSink", "event_") set locator = CreateObject("WbemScripting.SWbemLocator") set service = locator.ConnectServer() call EventAbhoeren("SELECT * FROM __InstanceCreationEvent WITHIN 1.5 WHERE TargetInstance ISA ’win32_process’ AND TargetInstance.Name=’notepad.exe’") MsgBox "Eventüberwachung abschalten", vbSystemModal function EventAbhoeren(Eventanforderung) ' aktiviert die Eventüberwachung call service.ExecNotificationQueryAsync(Eventlauscher,Eventanforderung, "WQL", 0, null) end function
12.4
Mit WMI auf System-Ereignisse reagieren
421
function Eventhandler(objObject, objAsyncContext) ’ wird aufgerufen, wenn Event feuert objObject.TargetInstance.Terminate (0) MsgBox "Programmausführung verboten!", vbSystemModal end function sub event_OnObjectReady(objObject, objAsyncContext) ' wird ausgelöst, wenn einer der abgehörten ' Events ausgelöst wird call Eventhandler(objObject, objAsyncContext) end sub ' (C) 2000 by Dr. Tobias Weltner
Endlich haben Sie eine Möglichkeit gefunden, dem Kollegen von Maschine 8 das Ballerspiel DOOM zu verderben...
12.4.3 Sinnvolle Management-Tools entwickeln Wie nützlich dieses neue Wissen ist, zeigt das folgende Beispiel. Speichern Sie diesen Code als check.hta (oder check.htm). Starten Sie dann bei Windows 2000 check.hta und bei Windows NT check.htm (hierzu muß der Internet Explorer die Berechtigung haben, ActiveX-Objekte auszuführen, siehe Kapitel 1.2).
Bild 12.7: Ferngesteuert Prozesse überwachen und sogar beenden – via Web
422
Kapitel 12: Mit WMI-Klassen arbeiten
Anschließend passiert etwas sehr Verblüffendes: Der Internet Explorer listet dynamisch alle laufenden Programme auf. Starten Sie neue Programme, dann werden diese der Liste hinzugefügt, und wenn Sie Programme beenden, dann verschwinden die Einträge aus der Liste. Sie können sogar auf die kleine Bombe klicken und damit die Programme ferngesteuert beenden. Das Script funktioniert nicht nur auf dem lokalen Computer. Geben Sie in ConnectServer den Namen eines anderen Computers an, dann wird eben dieser überwacht. WMI ist flexibel. Das Script ist diesmal in JavaScript geschrieben, denn diese Sprache wird von anderen Browsern ebenfalls unterstützt. Es basiert auf den VBScript-Grundlagen, die Sie oben kennengelernt haben, und könnte ebensogut in VBScript geschrieben werden: Prozeßüberwachung <SCRIPT FOR="EventLauscher" EVENT="OnObjectReady(objObject, objAsyncContext)">EventBearbeiten(objObject, objAsyncContext) <SCRIPT> // wir sind an Prozessen interessiert var KlassenName = "Win32_Process" //Mit WMI verbinden var locator = new ActiveXObject("WbemScripting.SWbemLocator"); // lokalen Computer überwachen var wmiserver = locator.ConnectServer(); var tbl; var TabBody; // ID des EXPLORER.EXE herausfinden var explorerPID = 0; // alle Instanzen des Explorers suchen var explorerinstances = wmiserver.ExecQuery('SELECT * FROM Win32_Process WHERE Name="explorer.exe"'); // alle Instanzen durchgehen var collection = new Enumerator (explorerinstances); if(!collection.atEnd()) { var processInstance = collection.item (); // letzte Instanz merken und verwenden explorerPID = processInstance.Handle; } function EventBearbeiten(objObject, objAsyncContext) {
12.4
Mit WMI auf System-Ereignisse reagieren
// Im Kontext wandern die Infos über den Event mit // Infos liegen in der Eigenschaft "Botschaft" var EventCustomInfo = objAsyncContext.Item("Botschaft"); // na, was für einen Event haben wir denn? if("BotschaftPrgStTabPElement" == EventCustomInfo.Value) { // wie heißt das Programm? var objektpfad = "" + objObject.TargetInstance.PATH_; // Tabellenmitglied finden var tabellenobjekt = document.all(objektpfad); // weg damit, falls es noch existiert! if(null != tabellenobjekt) tabellenobjekt.removeNode(true); } // Neues Programm gestartet, also ab in die Liste damit: if("BotschaftPrgStart" == EventCustomInfo.Value) { // neue Tabellenzeile anlegen var TabZeile=document.createElement("TR"); // neues Feld anlegen var TabZelle=document.createElement("TD"); // ID des neuen Programms eintragen TabZeile.appendChild(TabZelle); TabZeile.id = objObject.TargetInstance.PATH_; TabZelle.appendChild(TabelleErweitern(objObject.TargetInstance)); TabBody.appendChild(TabZeile); } } function CreateEventDataObject(objekt) { // Ein SWbemNamedValueSet mit der Eigenschaft 'Botschaft'. // anlegen. Darin kann der Event Daten transportieren, // zum Beispiel den Namen des Programms, um das es geht var CustomInfoObject = new ActiveXObject("WbemScripting.SWbemNamedValueSet"); CustomInfoObject.Add("Botschaft", objekt); return CustomInfoObject; } function ExecuteQueryAsynchron(AbfrageString, AbfrageDaten) { // Asynchron eine Abfrage starten. // Die Abfrage steht in AbfrageString
423
424
Kapitel 12: Mit WMI-Klassen arbeiten
// Daten über den Event landen in AbfrageDaten // Zugriff auf den Event-Sink herstellen, der als // Objekt auf der Webseite // liegt: var sink = document.all("EventLauscher"); // Die Abfrage ausführen wmiserver.ExecNotificationQueryAsync(sink,AbfrageString, "WQL", 0, null, CreateEventDataObject(AbfrageDaten)); } function window.onload() { // Tabellenstruktur dynamisch via DHTML generieren TabelleAnlegen(); // Festlegen, welche Events überwacht werden sollen // Wir sind an Prozessen interessiert (win32_Process), // und zwar an den Events, // die bei Prozessstart und -Ende generiert werden // __InstanceDeletionEvent // __InstanceCreationEvent ExecuteQueryAsynchron('SELECT * FROM __InstanceDeletionEvent WITHIN 1.5 WHERE TargetInstance ISA "'+KlassenName+'" AND TargetInstance.ParentProcessId='+explorerPID, "BotschaftPrgStTabPElement"); ExecuteQueryAsynchron('SELECT * FROM __InstanceCreationEvent WITHIN 1.5 WHERE TargetInstance ISA "'+KlassenName+'" AND TargetInstance.ParentProcessId='+explorerPID, "BotschaftPrgStart"); } function TabelleAnlegen() { // bastelt eine kleine Tabelle in DHTML (dynamisch) var Tabelle=document.createElement("TABLE"); var TabBodyEl=document.createElement("TBODY"); var TabZeile=document.createElement("TR"); var TabZelle=document.createElement("TD"); Tabelle.appendChild(TabBodyEl); // // // // // //
Alle Prozesse auflisten, die vom EXPLORER.EXE abstammen auf diese Weise werden alle systeminternen Prozesse ignoriert alle Programme, die über die SHELL gestartet werden, stammen eigentlich vom Explorer und sind Child-Prozesse des EXPLORER.EXE
// alle Kindprozesse herausfinden, die vom Explorer stammen
12.4
Mit WMI auf System-Ereignisse reagieren
var procs = wmiserver.ExecQuery("SELECT * FROM Win32_Process WHERE ParentProcessId = "+explorerPID); var collection = new Enumerator (procs); for (;!collection.atEnd();collection.moveNext ()) { var processInstance = collection.item (); var tabellenobjekt = TabZeile.cloneNode(); var curZelle = TabZelle.cloneNode(); curZelle.appendChild(TabelleErweitern(processInstance)); tabellenobjekt.appendChild(curZelle); tabellenobjekt.id = processInstance.PATH_; TabBodyEl.appendChild(tabellenobjekt); } document.body.appendChild(Tabelle); tbl = Tabelle; TabBody = TabBodyEl; tbl.border = "0"; tbl.curZellepadding = "0"; tbl.curZellespacing="0"; } function ProgrammLoeschen() { // Einen Prozess beenden // sobald auf die "Bombe"-Grafik geklickt wird, // findet diese Prozedur statt // Der WMI-Pfad zum Prozess liegt im IMG-Objekt und // kann dazu verwendet werden, // den aktuellen Prozess anzusprechen und zu terminieren. // Der Prozess verschwindet automatisch aus der Tabelle, denn bei seinem Ende // wird der Deletion-Event ausgelöst und vom Script behandelt var obj = window.event.srcElement; wmiserver.Delete(obj.WMIPrgPfad); } function TabelleErweitern(obj) { // Eine Zeile dynamisch zur Tabelle hinzufügen // Als Argument wird ein SWbemObject in obj übergeben. // Das ist der Prozess, // der in dieser Tabellenzeile angezeigt werden soll. var Tabelle=document.createElement("TABLE"); var TabBodyEl=document.createElement("TBODY"); var TabZeile=document.createElement("TR");
425
426
Kapitel 12: Mit WMI-Klassen arbeiten
var TabZelle=document.createElement("TD"); var tabZelleImage=TabZelle.cloneNode(); var tabImageObject=document.createElement("IMG"); TabZeile.appendChild(tabZelleImage); TabZeile.appendChild(TabZelle); Tabelle.appendChild(TabBodyEl); TabBodyEl.appendChild(TabZeile); var TabPElement = document.createElement("P"); // Name des Programms eintragen TabPElement.innerHTML = obj["Name"]; TabPElement.align = "center" TabZelle.appendChild(TabPElement); TabZelle.bgColor = "#CCCC88"; TabZelle.width = 350; tabZelleImage.width = 10; tabZelleImage.appendChild(tabImageObject); // Bild für den Image-SchaltknTabPElementf tabImageObject.src = "bombe.bmp"; tabImageObject.onclick = ProgrammLoeschen; // Wichtig: WMI-Pfad zum Programm in der Grafik // speichern, damit später bekannt ist, welches Programm // eigentlich herausgeworfen werden soll tabImageObject.WMIPrgPfad = "" + obj.PATH_; Tabelle.border = "0"; Tabelle.width = "100%"; return Tabelle } <style> p {font: 10pt Arial}
427
A
Auf der Buch-CD
Auf der Buch-CD finden Sie alle wichtigen Materialien sofort zum Loslegen. Hier eine kleine Übersicht:
A.1
Scripting Host und Zubehör
Den Windows Scripting Host finden Sie im Ordner WSH, zusammen mit dem Script-Debugger für Windows 9x und NT. Installieren Sie STE51DE.EXE auf allen Windows-Rechnern, die nicht bereits von Haus aus den WSH 2.0 mitbringen – also auf allen Windows-Versionen mit Ausnahme von Windows 2000. Um ein Script im Debugger auszuführen, installieren Sie zuerst den für Sie passenden Debugger. Windows 2000-Benutzer aufgepaßt: Sie finden den Windows 2000 Debugger als Zubehör auf der Windows 2000-CD. Wählen Sie in der Systemsteuerung das Software-Modul und dann WindowsKomponenten hinzufügen/entfernen. Aktivieren Sie dann das Häkchen vor Script Debugger. Um ein Script im Debugger auszuführen, wählen Sie im Startmenü Ausführen und geben ein: WSCRIPT.EXE //X Scriptname. Geben Sie den vollen Pfadnamen für Ihr Script an. Sie können auch das folgende Service-Script verwenden: set args = WScript.Arguments if args.Count=0 then MsgBox "Bitte ziehen Sie eine Scriptdatei auf mein Icon!" WScript.Quit else set wshshell = CreateObject("WScript.Shell") wshshell.Run "WSCRIPT.EXE //X """ & args(0) & """" end if
Im Unterordner DOKUMENTATION finden Sie die Hilfedateien für den WSH sowie die Programmiersprachen VBScript und JScript.
A.2
Scripting Spy – Das Spionagetool
Im Ordner SCRIPTING SPY finden Sie das Setup-Programm für das Spionagetool Scripting Spy. Rufen Sie SETUP.EXE auf, um das Tool bei Ihnen zu installieren. Damit der Scripting Spy läuft, muß zuerst der WSH installiert werden (siehe oben). Beachten Sie bitte auch die Hinweise in
428
Anhang A: Auf der Buch-CD
Kapitel 2. Der Scripting Spy ist noch im Experimentierstadium und startet unter Umständen je nach Struktur Ihrer Registry nicht durch. Sollten Sie Probleme mit dem Scripting Spy haben, dann deinstallieren Sie das Tool wieder mit dem Software-Modul Ihrer Systemsteuerung. Sie finden eine etwas abgespeckte Variante im Unterordner SCRIPTING SPY LIGHT, die unempfindlicher ist, aber nicht ganz so viele Möglichkeiten bietet.
A.3
Scriptbeispiele öffnen statt abtippen
Alle Scripts dieses Buches finden Sie nach Kapiteln sortiert im Ordner SKRIPTBEISPIELE. Am besten kopieren Sie sich diesen ganzen Ordner auf die Festplatte. Denken Sie bitte daran: Alle Dateien, die Sie von CD auf die Festplatte kopieren, behalten zunächst das Schreibgeschützt-Dateiattribut. Sie müssen Dateien, die Sie ändern wollen, zuerst mit der rechten Maustaste anklicken und dann Eigenschaften wählen. Löschen Sie danach im Dialogfenster das Schreibgeschützt-Attribut, und klicken Sie auf OK.
A.4
Visual Basic-Entwicklungsumgebung
Im Ordner VISUAL BASIC CCE finden Sie die Visual Basic Control Creation Edition, mit der Sie Befehlserweiterungen für Ihre Scripts schreiben können. Installieren Sie die Programmierwerkstatt, indem Sie VB5CCEIN.EXE ausführen.
A.5
Programmierprojekte en masse
Alle Programmierprojekte – vor allem die vielen Projekte aus Kapitel 8 – finden Sie im Ordner PROGRAMMIERPROJEKTE. Öffnen Sie die VBP-Dateien jeweils in Ihrer Visual Basic CCE. Die Einführungsbeispiele zur VB CCE finden Sie im Ordner BEISPIELE.
A.6
WMI – Tools für wahres WMI-Vergnügen
Im Ordner WMI finden Sie alles, was Sie für WMI (Kapitel 11 und 12) benötigen. Besonders wichtig ist der Unterordner KLASSEN. Darin finden Sie die komplette WMI-Klassenreferenz, und wenn Sie diesen Ordner im Explorer öffnen, dann können Sie über [F3] sogar bequem nach Suchwörtern fahnden. Geben Sie einfach ins Enthaltener Text-Feld den gesuchten Befehlsnamen ein.
429
B
WMI Klassenreferenz
B.1 Wie Sie diese Referenz nutzen... Die Kapitel 11 und 12 haben Ihnen den Einstieg in WMI geliefert. Probieren Sie einfach aus, welche Informationen die einzelnen Klassen, die dieser Anhang listet, auf Ihrem System enthalten. Dazu verwenden Sie das Skript 11-20.vbs und geben den Klassennamen ein, der Sie interessiert. Versuchen Sie zum Beispiel Win32_Account oder Win32_NetworkAdapter. Welche Informationen tatsächlich zurückgeliefert werden, hängt stark von Ihrem System und dem Grad ab, in dem die Gerätetreiber WMI bereits unterstützen.
B.2 Win32_1394Controller result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
430
Anhang B: WMI Klassenreferenz
Availability
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID ErrorCleared ErrorDescription
InstallDate
LastErrorCode Manufacturer MaxNumberControlled Name
PNPDeviceID
Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den 1394Controller von anderen Geräten im System unterscheidet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des 1394-Controllers an. Beispiel: Acme Maximale Anzahl der direkt adressierbaren Einheiten, die vom Controller unterstützt werden. Wenn der Wert unbekannt ist, geben Sie 0 ein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
B.2 Win32_1394Controller PowerManagementCapabilities
PowerManagementSupported
ProtocolSupported Status
StatusInfo
SystemCreationClassName
SystemName
TimeOfLastReset
431
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht daß die Energieverwaltungsfunktionen aktiviert sind. Das vom Controller zum Zugriff auf gesteuerte Geräte verwendete Protokoll. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »TimeOfLastReset« gibt an, wann der Controller zuletzt zurückgesetzt (ausgeschalten oder erneut initialisiert) wurde.
432
Anhang B: WMI Klassenreferenz
B.3 Win32_1394ControllerDevice AccessState
Antecedent Dependent NegotiatedDataWidth
NegotiatedSpeed
NumberOfHardResets NumberOfSoftResets
Die Eigenschaft »AccessState« gibt an, ob der Controller das Gerät steuert oder darauf zugreift (Wert=1) oder nicht (Wert=2). Es kann auch der Wert »Unbekannt« (0) definiert werden. Diese Informationen sind erforderlich, wenn ein logisches Gerät von mehreren Controllern gesteuert werden kann. Die Referenz »Win32_1394Controller« stellt den dem Gerät zugeordneten 1394-Controller dar. Die Referenz »CIM_LogicalDevice« stellt das mit dem 1394-Controller verbundene logische CIM-Gerät dar. Wenn mehrere Bus- und/oder Verbindungsdatenbreiten möglich sind, definiert die Eigenschaft »NegotiatedDataWidth« die verwendete Datenbreite in Bits. Wenn die Datenbreite nicht ausgehandelt wurde oder diese Informationen nicht verfügbar sind, sollte der Wert der Eigenschaft 0 sein. Wenn mehrere Bus- und/oder Verbindungsgeschwindigkeiten möglich sind, definiert die Eigenschaft »NegotiatedSpeed« die verwendete Geschwindigkeit in Bits pro Sekunde. Wenn die Verbindungs- oder Busgeschwindigkeit nicht ausgehandelt wurde oder diese Informationen nicht verfügbar sind, sollte der Wert der Eigenschaft 0 sein. Anzahl der vom Controller ausgelösten Kaltstarts. Anzahl der vom Controller ausgelösten Warmstarts.
B.4 Win32_ACE AccessMask AceFlags AceType GuidInheritedObjectType GuidObjectType Trustee
Bitflags, die die dem Vertrauensnehmer erteilten/verweigerten Rechte darstellen. Bitflags, die die Vererbung von ACE angeben. Der Typ des ACE-Eintrags. Die dem übergeordneten Objekt mit diesen Rechten zugeordnete GUID. Die dem Objekttyp mit diesen Rechten zugeordnete GUID. Der Vertrauensnehmer des ACE-Eintrags.
B.5 Win32_Account Caption Description Domain
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »Domain« gibt den Namen der Windows-Domäne an, zu der eine Gruppe oder ein Benutzer gehört. Beispiel: NA-SALES
B.6 Win32_AccountSID InstallDate
Name SID
SIDType
Status
Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« gibt den Namen des Win32-Systemkontos in der Domäne an, der vom Domänenmitglied der Klasse definiert wurde. Die Eigenschaft »SID« enthält die SID (Security Identifier) für dieses Konto. Eine SID ist ein variabler Zeichenfolgenwert zum Identifizieren eines Vertrauensnehmers. Jedes Konto besitzt eine von einer Autorität (z.B. einer Windows-Domäne) ausgestellte eindeutige SID, die in einer Sicherheitsdatenbank gespeichert wird. Wenn sich ein Benutzer anmeldet, wird seine SID aus der Datenbank abgefragt und in das Zugriffstoken eingetragen. Anhand der SID im Zugriffstoken wird der Benutzer in allen nachfolgenden Interaktionen mit Windows-Sicherheit identifiziert. Wenn eine SID als eindeutige Kennung für einen Benutzer oder eine Gruppe verwendet wurde, kann sie nicht für einen anderen Benutzer bzw. eine andere Gruppe verwendet werden. Die Eigenschaft »SIDType« enthält Werte, die den SID-Typ angeben: SidTypeUser – Gibt eine Benutzer-SID an. SidTypeGroup – Gibt eine GruppenSID an. SidTypeDomain – Gibt eine Domänen-SID an. SidTypeAlias – Gibt eine Alias-SID an. SidTypeWellKnownGroup – Gibt eine SID für eine bekannte Gruppe an. SidTypeDeletedAccount – Gibt eine SID für ein gelöschtes Konto an. SidTypeInvalid – Gibt eine ungültige SID an. SidTypeUnknown – Gibt einen unbekannten SID-Typ an. SidTypeComputer – Gibt eine SID für einen Computer an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.6 Win32_AccountSID Element Setting
433
Konto Die SID des Kontos
434
Anhang B: WMI Klassenreferenz
B.7 Win32_AllocatedResource Antecedent Dependent
Die Referenz »Antecedent« stellt die Eigenschaften einer für das logische Gerät verfügbaren Systemressource dar. Die Referenz »Dependent« stellt die Eigenschaften des logischen Geräts dar, das die zugeordneten Systemressourcen verwendet.
B.8 Win32_ApplicationCommandLine Antecedent Dependent
Verweist auf die Anwendung. references the commandline used to access the antecedent.
B.9 Win32_ApplicationService result as Integer = StartService Die Methode »StartService« startet den Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst einwandfrei gestartet wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = StopService Die Methode »StopService« hält den Dienst an. Der Wert 0 wird zurückgegeben, wenn der Dienst einwandfrei angehalten wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. CreationClassName »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Description Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. InstallDate Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Name Die Eigenschaft »Name« gibt den Dienst und die verwalteten Funktionen an. Die Funktionen werden in der Eigenschaft »Description« des Objekts genauer beschrieben. Started Der boolesche Wert »Started« gibt an, ob der Dienst gestartet (TRUE) oder angehalten (FALSE) wurde. StartMode »StartMode« ist eine Zeichenfolge, die angibt, ob der Dienst automatisch vom Betriebssystem oder nur manuell gestartet wird.
B.10 Win32_AssociatedBattery Status
SystemCreationClassName SystemName
435
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Der Typname des Systems, auf dem sich der Dienst befindet. Der Name des Systems, auf dem sich der Dienst befindet.
B.10 Win32_AssociatedBattery Antecedent Dependent
Die Referenz »Antecedent« stellt die Eigenschaften einer Batterie dar, die vom logischen Gerät verwendet wird. Die Referenz »Dependent« stellt die Eigenschaften eines logischen Geräts dar, das die Batterie verwendet.
B.11 Win32_AssociatedProcessorMemory Antecedent BusSpeed Dependent
Die Referenz »Antecedent« stellt den für den Prozessor verfügbaren Cache dar. Busgeschwindigkeit in MHz (Prozessor/Speicher). Die Referenz »Dependent« stellt den Prozessor dar, der den Cache verwendet.
B.12 Win32_BIOS BiosCharacteristics
BuildNumber Caption CodeSet CurrentLanguage Description
Die Eigenschaft »BiosCharacteristics« gibt die BIOS-Funktionen an, die vom System unterstützt werden (definiert in System Management BIOS Reference Specification). Die interne Kennung für die Kompilierung der Softwarekomponente. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Der von der Softwarekomponente verwendete Codesatz. Die Eigenschaft »CurrentLanguage« gibt den Namen der aktuellen BIOS-Sprache an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an.
436
Anhang B: WMI Klassenreferenz
IdentificationCode InstallableLanguages
InstallDate LanguageEdition
ListOfLanguages Manufacturer Name OtherTargetOS
PrimaryBIOS ReleaseDate SerialNumber SMBIOSBIOSVersion SMBIOSMajorVersion SMBIOSMinorVersion SMBIOSPresent
SoftwareElementID
Der Wert dieser Eigenschaft gibt die Herstellerkennung der Softwarekomponente an, z.B. eine SKU (Stock Keeping Unit) oder eine Teilenummer. Die Eigenschaft »InstallableLanguages« gibt die Anzahl der Sprachen an, die auf diesem System installiert werden können. Abhängig von der Sprache sind Eigenschaften wie z.B. Unicode und bidirektionaler Text erforderlich. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Der Wert dieser Eigenschaft gibt die Sprachversion der Softwarekomponente an. Es sollten die in ISO 639 definierten Sprachcodes verwendet werden. Wenn es sich bei der Softwarekomponente um eine mehrsprachige oder internationale Version handelt, verwenden Sie die Multilingual-Zeichenfolge. Die Eigenschaft »ListOfLanguages« enthält eine Liste der installierbaren BIOSSprachen. Hersteller der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Die Eigenschaft »OtherTargetOS« gibt den Hersteller und den Betriebssystemtyp einer Softwarekomponente an, wenn die Eigenschaft »TargetOperatingSystem« den Wert 1 (»Andere«) hat. Wenn die Eigenschaft »TargetOperatingSystem« den Wert »Andere« hat, darf der Wert der Eigenschaft »OtherTargetOS« nicht Null sein. Wenn die Eigenschaft »TargetOperatingSystem« einen anderen Wert hat, muß der Wert der Eigenschaft »OtherTargetOS« Null sein. True gibt an, daß dieses BIOS das primäre BIOS des Computersystems ist. Die Eigenschaft »ReleaseDate« gibt das Freigabedatum des Win32-BIOS im folgenden UTC-Format an: YYYYMMDDHHMMSS.MMMMMM(+-)OOO. Die der Softwarekomponente zugewiesene serielle Nummer. Die Eigenschaft »SMBIOSBIOSVersion« enthält die im SMBIOS angegebene BIOS-Version. Die Eigenschaft »SMBIOSMajorVersion« enthält die SMBIOS-Hauptversionsnummer. Diese Eigenschaft ist Null, wenn SMBIOS nicht gefunden wurde. Die Eigenschaft »SMBIOSMinorVersion« enthält die minimale SMBIOS-Versionsnummer. Diese Eigenschaft ist Null, wenn SMBIOS nicht gefunden wurde. Die Eigenschaft »SMBIOSPresent« gibt an, ob SMBIOS auf diesem Computersystem verfügbar ist. Werte: TRUE oder FALSE. TRUE gibt an, daß SMBIOS verfügbar ist. Eine Kennung für die Softwarekomponente, die in Verbindung mit anderen Schlüsseln verwendet wird, um »CIM_SoftwareElement« eindeutig darzustellen.
B.13 Win32_BaseBoard SoftwareElementState
Status
TargetOperatingSystem
Version
437
Der »SoftwareElementState« wird in diesem Modell festgelegt, um verschiedene Zustände eines Softwareelements während seiner Lebensdauer anzuzeigen. – Ein Softwareelement im einsetzbaren Status zeigt die erforderlichen Details zum Verteilen und die Bedingungen und Vorgänge an, die zum Erstellen eines Softwareelements im installierbaren Status (z.B. der nächsten Status) Vorraussetzung sind. – Ein Softwareelement im installierbaren Zustand zeigt die erforderlichen Details zum Installieren und die Bedingungen und Vorgänge an, die zum Erstellen eines Softwareelements im ausführbaren Status (z.B. der nächsten Status) Vorraussetzung sind. – Ein Softwareelement im ausführbaren Status zeigt die erforderlichen Details zum Installieren und die Bedingungen und Vorgänge an, die zum Erstellen eines Softwareelements im ausführenden Status (z.B. der nächsten Status) Vorraussetzung sind. – Ein Softwareelement im ausführenden Status zeigt die erforderlichen Details zum Überprüfen und Ausführen eines Startelements an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »TargetOperatingSystem« ermöglicht das Festlegen der Betriebssystemumgebung. Die Version des Betriebssystems und die Architektur müssen angegeben werden, da der Wert dieser Eigenschaft die binäre Ausführung nicht sicherstellt. Diese Informationen ermöglichen es, die für eine Softwarekomponente erforderliche Betriebssystemebene eindeutig festzulegen. Die Eigenschaft »Version« enthält die BIOS-Version. Diese Zeichenfolge wird vom BIOS-Hersteller erstellt.
B.13 Win32_BaseBoard result as Integer = IsCompatible (ElementToCheck???)
Caption ConfigOptions
Die Methode »IsCompatible« gibt an, ob das physikalische Element im physikalischen Paket enthalten ist oder hinzugefügt werden kann. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »ConfigOptions« enthält Zeichenfolgen, die die Konfiguration der Jumper und Schalter auf dem Motherboard beschreiben. Beispiel: JP2: 1-2 Cachegröße 256 KB, 2-3 Cachegröße 512 KB.
438
Anhang B: WMI Klassenreferenz
CreationClassName
Depth Description Height HostingBoard HotSwappable
InstallDate
Manufacturer Model Name
OtherIdentifyingInfo
PartNumber
PoweredOn Product
»CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Die Tiefe des physikalischen Pakets in Zoll. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Höhe des physikalischen Pakets in Zoll. Boolescher Wert, der angibt, daß es sich bei der Karte um ein Motherboard in einem Chassis handelt. Ein physikalisches Paket kann in Betrieb ausgetauscht werden, wenn es durch ein physikalisch unterschiedliches, aber gleichwertiges ersetzt werden kann, während der Container eingeschaltet ist. Ein Laufwerkpaket, das mit SCA-Steckverbindungen eingefügt wird, ist z.B. in Betrieb austauschbar. Alle in Betrieb austauschbaren Pakete sind ersetzbar. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Der Name der Organisation, die für die Herstellung des physikalischen Elements verantwortlich ist. Der Name der physikalischen Komponente. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. »OtherIdentifyingInfo« erfaßt außer Bestandskennzeichnungsinformationen auch Daten, die dazu verwendet werden können, physikalische Elemente zu identifizieren. Ein Beispiel dafür sind Barcodedaten, die mit einem Element verbunden sind, das auch über eine Bestandskennzeichnung verfügt. Hinweis: Wenn nur Barcodedaten verfügbar sind, die allein als Elementschlüssel verwendet werden können, ist diese Eigenschaft NULL, und die Barcodedaten werden in der Eigenschaft »Tag« als Klassenschlüssel verwendet. Die Einzelteilnummer, die von der Organisation, die für die Produktion und Herstellung des physikalischen Elements verantwortlich ist, zugewiesen wurde. Boolescher Wert, der angibt, ob die physikalische Komponente eingeschaltet (TRUE) oder ausgeschaltet (FALSE) ist. Die Eigenschaft »Product« gibt die Teilenummer des Motherboards an.
B.13 Win32_BaseBoard Removable
Replaceable
RequirementsDescription
RequiresDaughterBoard
SerialNumber SKU SlotLayout
SpecialRequirements
439
Ein physikalisches Paket ist austauschbar, wenn es aus seinem physikalischen Container entfernt werden kann, ohne die Funktion des Gesamtpakets zu beeinträchtigen. Ein Paket ist auch austauschbar, wenn das Gerät bei der Entnahme ausgeschaltet sein muß. Wenn das Gerät bei der Entnahme eingeschaltet sein kann, ist das Element in Betrieb austauschbar. Eine zusätzliche Batterie in einem Laptop ist z.B. austauschbar und ein Laufwerkpaket, das mit SCA-Steckverbindungen eingefügt wird, ist in Betrieb austauschbar. Ein Laptopbildschirm und eine nicht redundante Stromversorgung sind nicht austauschbar. Wenn diese Komponenten entfernt werden, werden die Funktionen des Gesamtpakets beeinträchtigt. Ein physikalisches Paket ist austauschbar, wenn sie durch ein physikalisch unterschiedliches Element ersetzt (oder aktualisiert) werden kann. Bei einigen Computersystemen ist es z.B. möglich, den Hauptprozessorchip durch einen Chip mit einer höheren Taktfrequenz zu ersetzen. Ein weiteres Beispiel ist ein Energieversorgungspaket auf Gleitschienen. Alle austauschbaren Pakete sind durch Vererbung ersetzbar. Eine formfreie Zeichenfolge, die beschreibt, wie sich diese Karte physikalisch von den anderen Karten unterscheidet. Diese Eigenschaft ist nur gültig, wenn die Eigenschaft »SpecialRequirements« TRUE ist. Boolescher Wert, der angibt, daß mindestens ein Daughterboard oder eine Zusatzkarte für die ordnungsgemäße Ausführung erforderlich ist. Eine Herstellernummer zum Identifizieren des physikalischen Elements. Die SKU-Nummer für das physikalische Element. Die formfreie Zeichenfolge »SlotLayout« beschreibt die Steckplatzposition, die typische Verwendung, Einschränkungen, den Abstand zwischen den Steckplätzen und andere Informationen für die Steckplätze auf einer Karte. Boolescher Wert, der angibt, daß sich diese Karte von den anderen Karten des gleichen Typs unterscheidet und einen speziellen Steckplatz erfordert. Für eine doppelt breite Karte sind z.B. zwei Steckplätze erforderlich. Ein weiteres Beispiel ist, wenn eine bestimmte Karte für die gleiche allgemeine Funktion wie andere Karten verwendet wird, aber einen speziellen Steckplatz erfordert (z.B. extra lang). Wenn der Wert TRUE ist, sollte die Karte in der Eigenschaft »RequirementsDescription« beschrieben werden.
440
Anhang B: WMI Klassenreferenz
Status
Tag Version Weight Width
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »Tag« gibt das Motherboard des Systems an. Beispiel: Motherboard Eine Zeichenfolge, die die Version des physikalischen Elements angibt. Das Gewicht des physikalischen Pakets in Pfund. Die Breite des physikalischen Pakets in Zoll.
B.14 Win32_BaseService result as Integer = StartService
Die Methode »StartService« startet den Dienst. Folgende Werte werden zurückgegeben: 0 – Die Anforderung wurde angenommen. 1 – Die Anforderung wird nicht unterstützt. 2 – Der Benutzer verfügt nicht über die erforderlichen Zugriffsrechte. 3 – Der Dienst kann nicht angehalten werden, da aktive Dienste von ihm abhängig sind. 4 – Der angeforderte Steuerungscode ist ungültig oder wird nicht angenommen. 5 – Der angeforderte Steuerungscode kann nicht an den Dienst gesendet werden, da der Dienststatus (Win32_BaseService: State) 0, 1 oder 2 ist. 6 – Der Dienst wurde nicht gestartet. 7 – Der Dienst hat nicht rechtzeitig auf die Startanforderung reagiert. 8 – Beim Starten des Dienstes ist ein unbekannter Fehler aufgetreten. 9 – Der Verzeichnispfad zur ausführbaren Datei wurde nicht gefunden. 10 – Der Dienst wird bereits ausgeführt. 11 – Die Datenbank zum Hinzufügen eines neuen Dienstes ist gesperrt. 12 – Eine für den Dienst erforderliche Abhängigkeit wurde vom System entfernt. 13 – Der für einen abhängigen Dienst erforderliche Dienst konnte nicht gefunden werden. 14 – Der Dienst wurde deaktiviert. 15 – Der Dienst verfügt nicht über die zum Ausführen erforderliche Authentifizierung. 16 – Der Dienst wurde entfernt. 17 – Für den Dienst ist kein Ausführungsthread vorhanden. 18 – Ringabhängigkeiten beim Starten des Dienstes.
B.14 Win32_BaseService
441
19 – Ein Dienst mit dem gleichen Namen wird bereits ausgeführt. 20 – Ungültige Zeichen im Dienstnamen. 21 – An den Dienst wurden ungültige Parameter übergeben. 22 – Das Konto, unter dem der Dienst ausgeführt wird, ist ungültig oder verfügt nicht über die erforderlichen Rechte. 23 – Der Dienst ist in der Dienstdatenbank des Systems vorhanden. 24 – Der Dienst wurde angehalten. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|StartService result as Integer = Die Methode »StopService« hält den Dienst an. Der Wert 0 StopService wird zurückgegeben, wenn der Dienst einwandfrei angehalten wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ControlService|dwControl| SERVICE_CONTROL_STOP result as Integer = Die Methode »PauseService« hält den Dienst an. Der Wert 0 PauseService wird zurückgegeben, wenn die Anforderung angenommen wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ControlService|dwControl| SERVICE_CONTROL_PAUSE result as Integer = Die Methode »ResumeService« setzt den Dienst fort. Der ResumeService Wert 0 wird zurückgegeben, wenn die Anforderung angenommen wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ControlService|dwControl| SERVICE_CONTROL_CONTINUE result as Integer = Die Methode »InterrogateService« erfordert, daß der DienstInterrogateService status aktualisiert wird. Der Wert 0 wird zurückgegeben, wenn die Anforderung angenommen wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender APIFunktion bereitgestellt: Win32API|Service Functions|Control Service|dwControl|SERVICE_CONTROL_INTERROGATE Die Methode »UserControlService« sendet einen benutzerderesult as Integer = UserControlService(ControlCode as Integer) finierten Steuerungscode an einem Dienst. Der Wert 0 wird ControlCode=Der Parameter »ControlCode« zurückgegeben, wenn die Anforderung angenommen wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. gibt definierte Werte (von 128 bis 255) für Andere Werte zeigen einen Fehler an. benutzerspezifische Steuerbefehle an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|CreateService|dwDesiredAccess| SERVICE_USER_DEFINED_CONTROL
442
Anhang B: WMI Klassenreferenz
result as Integer = Create (DesktopInteract as Boolean, DisplayName as String, ErrorControl as Integer, LoadOrderGroup as String, LoadOrderGroupDependencies as String, Name as String, PathName as String, ServiceDependencies as String, ServiceType as Integer, StartMode as String, StartName as String, StartPassword as String) DesktopInteract=Der Parameter »DesktopInteract« übergibt den Wert, der angibt, ob der Dienst mit Fenstern auf dem Desktop kommunizieren bzw. diese erstellen kann. Werte: TRUE oder FALSE. TRUE gibt an, daß der Dienst mit Fenstern auf dem Desktop kommunizieren oder diese erstellen kann. DisplayName=Der Parameter »DisplayName« übergibt den angezeigten Namen des Dienstes. Die Zeichenfolge darf aus maximal 256 Zeichen bestehen. Für den Namen muß die Groß/Kleinschreibung beachtet werden. Für den Vergleich von angezeigten Namen muß die Groß-/Kleinschreibung nicht beachtet werden. Einschränkungen: Akzeptiert den gleichen Wert wie der Parameter »Name«. Beispiel: Atdisk. ErrorControl=Wenn die Methode »Create« nicht gestartet wird, übergibt der Parameter »ErrorControl« den Schweregrad des Fehlers. Der Wert gibt den Startvorgang an, wenn ein Fehler auftritt. Alle Fehler werden vom System protokolliert. Der Benutzer wird bei normalen Fehlern benachrichtigt (nicht bei Fehlern die ignoriert werden können). Bei schwerwiegenden Fehlern wird das System mit der letzten funktionierenden Konfiguration neu gestartet. Bei kritischen Fehlern wird versucht, das System mit einer funktionierenden Konfiguration neu zu starten. Values = Array: 0=Ignorieren 1=Normal 2=Schwerwiegend 3=Kritisch
Die Methode »Create« erstellt einen neuen Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst einwandfrei erstellt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Der Parameter »Win32_LoadOrderGroup« stellt eine Gruppierung der Systemdienste dar, die die Ausführungsabhängigkeiten definieren. Die Dienste müssen in der in der Ladegruppe angegebenen Reihenfolge initialisiert werden, da sie voneinander abhängig sind. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|CreateService.
B.14 Win32_BaseService LoadOrderGroup=Der Parameter »LoadOrderGroup« übergibt den Gruppennamen des neuen Dienstes. Ladegruppen sind in der Registrierung enthalten und legen die Reihenfolge fest, in der Dienste im Betriebssystem geladen werden. Wenn der Zeiger Null ist oder auf eine leere Zeichenfolge zeigt, gehört der Dienst keiner Gruppe an. Abhängigkeiten zwischen Gruppen sind im Parameter »LoadOrderGroupDependencies« angegeben. Dienste, die in der Ladegruppenliste aufgeführt sind, werden zuerst gestartet. Danach folgen die Dienste in Gruppen, die nicht in der Ladegruppenliste aufgeführt sind, und Dienste, die zu keiner Gruppe gehören. Ladegruppen in der Registrierung: HKEY_LOCAL_ MACHINE\System\CurrentControlSet\ Control\ServiceGroupOrder. LoadOrderGroupDependencies=Der Parameter »LoadOrderGroupDependencies« übergibt eine Liste der Ladegruppen, die vor dem Dienst gestartet werden müssen. Das Array ist mit zwei Nullen abgeschlossen. Wenn der Zeiger Null ist oder auf eine leere Zeichenfolge zeigt, hat der Dienst keine Abhängigkeiten. Gruppennamen muß das SC_GROUP_ IDENTIFIER-Zeichen (definiert in der Datei WINSVC.H) vorangestellt sein, damit sie von Dienstnamen unterschieden werden können, da Dienste und Dienstgruppen den gleichen Namespace haben. Eine Gruppenabhängigkeit bedeutet, daß der Dienst ausgeführt werden kann, wenn mindestens ein Mitglied dieser Gruppen, nach dem Versuch alle Mitglieder der Gruppen zu starten, ausgeführt wird. Name=Der Parameter »Name« übergibt den Namen des mit der Methode »Create« zu installierenden Dienstes. Die Zeichenfolge darf aus maximal 256 Zeichen bestehen. In der Datenbank des Dienststeuerungs-Managers wird die Groß-/Kleinschreibung der Zeichen gespeichert. Für Vergleiche von Dienstnamen wird die Groß-/Kleinschreibung nicht beachtet. Schrägstriche und doppelte umgekehrte Schrägstriche sind in Dienstnamen ungültig.
443
444
Anhang B: WMI Klassenreferenz
PathName=Der Parameter »PathName« übergibt den vollqualifizierten Pfad zur ausführbaren Datei, die den Dienst implementiert. Beispiel: \SystemRoot\System32\ drivers\afd.sys ServiceDependencies=Der Parameter »ServiceDependencies« übergibt eine Liste mit den Namen der Dienste, die vor diesem Dienst gestartet werden müssen. Das Array ist mit zwei Nullen abgeschlossen. Wenn der Zeiger Null ist oder auf eine leere Zeichenfolge zeigt, hat der Dienst keine Abhängigkeiten. Eine Dienstabhängigkeit bedeutet, daß dieser Dienst nur ausgeführt werden kann, wenn auch der Dienst ausgeführt wird, von dem er abhängig ist. ServiceType=Der Parameter »ServiceType« übergibt den Diensttyp für aufrufende Prozeß. BitValues = Array: 0=Kernel-Treiber 1=Dateisystemtreiber 2=Adapter 3=Erkennungstreiber 4=Prozeßeigener Dienst 5=Freigabeprozess StartMode=Der Parameter »StartMode« übergibt den Startmodus des Win32-Basisdienstes. »Boot« gibt einen vom Ladeprogramm des Betriebssystems gestarteten Gerätetreiber an. Dieser Wert ist nur für Treiberdienste gültig. »Automatisch« gibt einen Dienst an, der vom Dienststeuerungs-Manager während dem Systemstart gestartet wird. »Manuell« gibt einen Dienst an, der vom DienststeuerungsManager gestartet wird, wenn die Funktion »StartService« aufgerufen wird. »Deaktiviert« gibt einen Dienst an, der nicht mehr gestartet werden kann. ValueMap = Array: 0=Boot 1=System 2=Automatic 3=Manual 4=Disabled
B.14 Win32_BaseService Values = Array: 0=Bootstart 1=Systemstart 2=Automatisch starten 3=Manuell starten 4=Deaktiviert StartName=Der Parameter »StartName« übergibt den Kontonamen, unter dem der Dienst ausgeführt wird. Abhängig vom Diensttyp kann der Kontoname folgendes Format haben: »Domänenname\Benutzername«. Der Dienstprozeß wird beim Ausführen mit einem dieser Formate protokolliert. Wenn das Konto zu einer integrierten Domäne gehört, kann ».\Benutzername« angegeben werden. Wenn NULL angegeben ist, wird der Dienst als lokales Systemkonto angemeldet. Für Kernel- oder Systemtreiber enthält »StartName« den Treiberobjektnamen (\Dateisystem\Rdr oder \Treiber\Xns), den das E/A-System verwendet, um die Gerätetreiber zu laden. Wenn NULL angegeben ist, wird der Treiber mit dem vom E/A-System basierend auf dem Dienstnamen erstellten Standardobjektnamen ausgeführt. Beispiel: DWDOM\Admin. StartPassword=Der Parameter »StartPassword« übergibt das Kennwort für den im Parameter »StartName« angegebenen Kontonamen. Geben Sie Null an, wenn das Kennwort nicht geändert wird. Lassen Sie die Zeichenfolge leer, wenn der Dienst kein Kennwort hat. result as Integer = Change(DesktopInteract as Boolean, DisplayName as String, ErrorControl as Integer, LoadOrderGroup as String, LoadOrderGroupDependencies as String, PathName as String, ServiceDependencies as String, ServiceType as Integer, StartMode as String, StartName as String, StartPassword as String) DesktopInteract=Der Parameter »DesktopInteract« übergibt den Wert, der angibt, ob der Dienst mit Fenstern auf dem Desktop kommunizieren bzw. diese erstellen kann.
445
Die Methode »Change« ändert einen Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst einwandfrei erstellt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Der Parameter »Win32_LoadOrderGroup« stellt eine Gruppierung der Systemdienste dar, die die Ausführungsabhängigkeiten definieren. Die Dienste müssen in der in der Ladegruppe angegebenen Reihenfolge initialisiert werden, da sie voneinander abhängig sind. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ChangeServiceConfig
446
Anhang B: WMI Klassenreferenz
Werte: TRUE oder FALSE. TRUE gibt an, daß der Dienst mit Fenstern auf dem Desktop kommunizieren oder diese erstellen kann. DisplayName=Der Parameter »DisplayName« übergibt den angezeigten Namen des Dienstes. Die Zeichenfolge darf aus maximal 256 Zeichen bestehen. Für den Namen muß die Groß-/Kleinschreibung beachtet werden. Für den Vergleich von angezeigten Namen muß die Groß-/Kleinschreibung nicht beachtet werden. Einschränkungen: Akzeptiert den gleichen Wert wie der Parameter »Name«. Beispiel: Atdisk. ErrorControl=Wenn der Dienst nicht gestartet wird, übergibt der Parameter »ErrorControl« den Schweregrad des Fehlers. Der Wert gibt den Startvorgang an, wenn ein Fehler auftritt. Alle Fehler werden vom System protokolliert. Der Benutzer wird bei normalen Fehlern benachrichtigt (nicht bei Fehlern die ignoriert werden können). Bei schwerwiegenden Fehlern wird das System mit der letzten funktionierenden Konfiguration neu gestartet. Bei kritischen Fehlern wird versucht, das System mit einer funktionierenden Konfiguration neu zu starten. Values = Array: 0=Ignorieren 1=Normal 2=Schwerwiegend 3=Kritisch LoadOrderGroup=Der Parameter »LoadOrderGroup« übergibt den Gruppennamen, dem er zugeordnet ist. Ladegruppen sind in der Registrierung enthalten und legen die Reihenfolge fest, in der Dienste im Betriebssystem geladen werden. Wenn der Zeiger Null ist oder auf eine leere Zeichenfolge zeigt, gehört der Dienst keiner Gruppe an. Abhängigkeiten zwischen Gruppen sind im Parameter »LoadOrderGroupDependencies« angegeben. Dienste, die in der Ladegruppenliste aufgeführt sind, werden zuerst gestartet.
B.14 Win32_BaseService Danach folgen die Dienste in Gruppen, die nicht in der Ladegruppenliste aufgeführt sind, und Dienste, die zu keiner Gruppe gehören. Ladegruppen in der Registrierung: HKEY_ LOCAL_MACHINE\System\ CurrentControlSet\Control\ ServiceGroupOrder. LoadOrderGroupDependencies=Der Parameter »LoadOrderGroupDependencies« übergibt eine Liste der Ladegruppen, die vor dem Dienst gestartet werden müssen. Das Array ist mit zwei Nullen abgeschlossen. Wenn der Zeiger Null ist oder auf eine leere Zeichenfolge zeigt, hat der Dienst keine Abhängigkeiten. Gruppennamen muß das SC_GROUP_IDENTIFIER-Zeichen (definiert in der Datei WINSVC.H) vorangestellt sein, damit sie von Dienstnamen unterschieden werden können, da Dienste und Dienstgruppen den gleichen Namespace haben. Eine Gruppenabhängigkeit bedeutet, daß der Dienst ausgeführt werden kann, wenn mindestens ein Mitglied dieser Gruppen, nach dem Versuch alle Mitglieder der Gruppen zu starten, ausgeführt wird. PathName=Der Parameter »PathName« übergibt den vollqualifizierten Pfad der binären Datei, die den Dienst implementiert. Beispiel: \SystemRoot\System32\drivers\afd.sys ServiceDependencies=Der Parameter »ServiceDependencies« übergibt eine Liste mit den Namen der Dienste, die vor diesem Dienst gestartet werden müssen. Das Array ist mit zwei Nullen abgeschlossen. Wenn der Zeiger Null ist oder auf eine leere Zeichenfolge zeigt, hat der Dienst keine Abhängigkeiten. Eine Dienstabhängigkeit bedeutet, daß dieser Dienst nur ausgeführt werden kann, wenn auch der Dienst ausgeführt wird, von dem er abhängig ist. ServiceType=Der Parameter »ServiceType« übergibt den Diensttyp für aufrufende Prozesse.
447
448
Anhang B: WMI Klassenreferenz
BitValues = Array: 0=Kernel-Treiber 1=Dateisystemtreiber 2=Adapter 3=Erkennungstreiber 4=Prozeßeigener Dienst 5=Freigabeprozess StartMode=Die Eigenschaft »StartMode« gibt den Startmodus des Win32-Basisdienstes an. »Boot« gibt einen vom Ladeprogramm des Betriebssystems gestarteten Gerätetreiber an. Dieser Wert ist nur für Treiberdienste gültig. »Automatisch« gibt einen Dienst an, der vom Dienststeuerungs-Manager während des Systemstarts gestartet wird. »Manuell« gibt einen Dienst an, der vom DienststeuerungsManager gestartet wird, wenn die Funktion »StartService« aufgerufen wird. »Deaktiviert« gibt einen Dienst an, der nicht mehr gestartet werden kann. ValueMap = Array: 0=Boot 1=System 2=Automatic 3=Manual 4=Disabled Values = Array: 0=Bootstart 1=Systemstart 2=Automatisch starten 3=Manuell starten 4=Deaktiviert StartName=Die Eigenschaft »StartName« gibt den Kontonamen an, unter dem der Dienst ausgeführt wird. Abhängig vom Diensttyp kann der Kontoname folgendes Format haben: »Domänenname\Benutzername«. Der Dienstprozeß wird beim Ausführen mit einem dieser Formate protokolliert. Wenn das Konto zu einer integrierten Domäne gehört, kann ».\Benutzername« angegeben werden. Wenn NULL angegeben ist, wird der Dienst als lokales Systemkonto angemeldet.
B.14 Win32_BaseService Für Kernel- oder Systemtreiber enthält »StartName« den Treiberobjektnamen (\Dateisystem\Rdr oder \Treiber\Xns), den das E/A-System verwendet, um die Gerätetreiber zu laden. Wenn NULL angegeben ist, wird der Treiber mit dem vom E/A-System basierend auf dem Dienstnamen erstellten Standardobjektnamen ausgeführt. Beispiel: DWDOM\Admin. StartPassword=Der Parameter »StartPassword« übergibt das Kennwort für den im Parameter »StartName« angegebenen Kontonamen. Geben Sie Null an, wenn das Kennwort nicht geändert wird. Lassen Sie die Zeichenfolge leer, wenn der Dienst kein Kennwort hat. result as Integer = ChangeStartMode (StartMode as String) StartMode=Der Parameter »StartMode« übergibt den Startmodus des Win32-Basisdienstes. »Boot« gibt einen vom Ladeprogramm des Betriebssystems gestarteten Gerätetreiber an. Dieser Wert ist nur für Treiberdienste gültig. »Automatisch« gibt einen Dienst an, der vom Dienststeuerungs-Manager während des Systemstarts gestartet wird. »Manuell« gibt einen Dienst an, der vom Dienststeuerungs-Manager gestartet wird, wenn die Funktion »StartService« aufgerufen wird. »Deaktiviert« gibt einen Dienst an, der nicht mehr gestartet werden kann. ValueMap = Array: 0=Boot 1=System 2=Automatic 3=Manual 4=Disabled Values = Array: 0=Bootstart 1=Systemstart 2=Automatisch starten 3=Manuell starten 4=Deaktiviert
449
Die Methode »ChangeStartMode« ändert den Startmodus für einen Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst geändert wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Service Functions|ChangeServiceConfig|dwStartType
450
Anhang B: WMI Klassenreferenz
result as Integer = Delete
AcceptPause
AcceptStop
Caption CreationClassName
Description DesktopInteract
DisplayName
ErrorControl
Die Methode »Delete« löscht einen vorhandenen Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst gelöscht wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ChangeServiceConfig| DeleteService Die Eigenschaft »AcceptPause« gibt an, ob der Dienst angehalten werden kann. Werte: TRUE oder FALSE. TRUE gibt an, daß der Dienst angehalten werden kann. Die Eigenschaft »AcceptStop« gibt an, ob der Dienst beendet werden kann. Werte: TRUE oder FALSE. TRUE gibt an, daß der Dienst beendet werden kann. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DesktopInteract« gibt an, ob der Dienst mit Fenstern auf dem Desktop kommunizieren bzw. diese erstellen kann. Werte: TRUE oder FALSE. TRUE gibt an, daß der Dienst mit Fenstern auf dem Desktop kommunizieren oder diese erstellen kann. Die Eigenschaft »DisplayName« gibt den angezeigten Namen des Dienstes an. Die Zeichenfolge darf aus maximal 256 Zeichen bestehen. Für den Namen muß die Groß/Kleinschreibung beachtet werden. Für den Vergleich von angezeigten Namen muß die Groß-/Kleinschreibung nicht beachtet werden. Einschränkungen: Akzeptiert den gleichen Wert wie die Eigenschaft »Name«. Beispiel: Atdisk. Wenn der Dienst nicht gestartet wird, wird in der Eigenschaft »ErrorControl« der Schweregrad des Fehlers angegeben. Der Wert gibt den Startvorgang an, wenn ein Fehler auftritt. Alle Fehler werden vom Computersystem protokolliert. Der Benutzer wird bei normalen Fehlern benachrichtigt (nicht bei Fehlern die ignoriert werden können). Bei schwerwiegenden Fehlern wird das System mit der letzten funktionierenden Konfiguration neu gestartet. Bei kritischen Fehlern wird versucht, das System mit einer funktionierenden Konfiguration neu zu starten.
B.14 Win32_BaseService ExitCode
InstallDate
Name
PathName
ServiceSpecificExitCode
ServiceType Started StartMode
451
Die Eigenschaft »ExitCode« gibt einen Win32-Fehlercode an, der beim Starten oder Anhalten des Dienstes aufgetretene Probleme definiert. Der Wert der Eigenschaft ist ERROR_ SERVICE_SPECIFIC_ERROR (1066), wenn der Fehler eindeutig von dieser Klasse dargestellt wird. Fehlerinformationen sind im Mitglied »ServiceSpecificExitCode« verfügbar. Der Dienst setzt den Wert auf »NO_ERROR«, wenn er ausgeführt oder ordnungsgemäß beendet wird. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« gibt den Dienst und die verwalteten Funktionen an. Die Funktionen werden in der Eigenschaft »Description« des Objekts genauer beschrieben. Die Eigenschaft »PathName« enthält den vollqualifizierten Pfad zur binären Datei, die den Dienst implementiert. Beispiel: \SystemRoot\System32\drivers\afd.sys Die Eigenschaft »ServiceSpecificExitCode« gibt einen dienstspezifischen Fehlercode für Fehler an, die beim Starten oder Anhalten des Dienstes auftreten. Der Beendigungscode wird vom Dienst definiert, der von dieser Klasse dargestellt wird. Dieser Wert wird nur festgelegt, wenn der Wert in der Eigenschaft »ExitCode« ERROR_SERVICE_SPECIFIC_ERROR, 1066 ist. Die Eigenschaft »ServiceType« gibt den Diensttyp für aufrufende Prozeß an. Der boolesche Wert »Started« gibt an, ob der Dienst gestartet (TRUE) oder angehalten (FALSE) wurde. Die Eigenschaft »StartMode« gibt den Startmodus des Win32Basisdienstes an. »Boot« gibt einen vom Ladeprogramm des Betriebssystems gestarteten Gerätetreiber an. Dieser Wert ist nur für Treiberdienste gültig. »Automatisch« gibt einen Dienst an, der vom Dienststeuerungs-Manager während dem Systemstart gestartet wird. »Manuell« gibt einen Dienst an, der vom Dienststeuerungs-Manager gestartet wird, wenn die Funktion »StartService« aufgerufen wird. »Deaktiviert« gibt einen Dienst an, der nicht mehr gestartet werden kann.
452
Anhang B: WMI Klassenreferenz
StartName
State Status
SystemCreationClassName SystemName TagId
Die Eigenschaft »StartName« gibt den Kontonamen an, unter dem der Dienst ausgeführt wird. Abhängig vom Diensttyp kann der Kontoname folgendes Format haben: »Domänenname\Benutzername«. Der Dienstprozeß wird beim Ausführen mit einem dieser Formate protokolliert. Wenn das Konto zu einer integrierten Domäne gehört, kann ».\Benutzername« angegeben werden. Wenn NULL angegeben ist, wird der Dienst als lokales Systemkonto angemeldet. Für den KernelSystemtreiber enthält »StartName« den Treiberobjektnamen (\Dateisystem\Rdr oder \Treiber\Xns), den das E/A-System verwendet, um die Gerätetreiber zu laden. Wenn NULL angegeben ist, wird der Treiber mit dem vom E/A-System basierend auf dem Dienstnamen erstellten Standardobjektnamen ausgeführt. Beispiel: DWDOM\Admin. Die Eigenschaft »State« gibt den aktuellen Status des Basisdienstes an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Der Typname des Systems, auf dem sich der Dienst befindet. Der Name des Systems, auf dem sich der Dienst befindet. Die Eigenschaft »TagId« gibt einen eindeutigen Tagwert für diesen Dienst in der Gruppe an. Der Wert 0 gibt an, daß dem Dienst kein Tag zugeordnet wurde. Ein Tag kann zum Anfordern eines Dienststarts in einer Ladegruppe verwendet werden, indem ein Taganforderungsvektor in der Registrierung unter folgender Adresse angegeben wird: HKEY_LOCAL_ MACHINE\System\CurrentControlSet\Control\ GroupOrderList. Tags werden nur für Kerneltreiber und Dateisystemtreiber im Start- oder Systemmodus ausgewertet.
B.15 Win32_Battery
453
B.15 Win32_Battery result as Integer = SetPowerState (PowerState as Integer, Time as Date/Time)
result as Integer = Reset
Availability
BatteryRechargeTime BatteryStatus
Caption Chemistry ConfigManagerErrorCode
»SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energiesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »BatteryRechargeTime« gibt die zum vollständigen Aufladen der Batterie erforderliche Zeitdauer an. Beschreibung des Batterieladestatus. Z.B. können folgende Werte angegeben werden: »Vollständig geladen« (Wert=3) oder »Teilweise geladen« (11). Der Wert 10 ist im CIM-Schema ungültig, da es in DMI angibt, daß keine Batterie installiert ist. In diesem Fall sollte das Objekt nicht initialisiert werden. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Eine Aufzählung, die die chemische Zusammensetzung der Batterie beschreibt. Gibt den Fehlercode des Win32-Konfigurations-Managers an.
454
Anhang B: WMI Klassenreferenz
ConfigManagerUserConfig CreationClassName Description DesignCapacity DesignVoltage DeviceID ErrorCleared
ErrorDescription
EstimatedChargeRemaining EstimatedRunTime
ExpectedBatteryLife ExpectedLife
FullChargeCapacity
InstallDate
LastErrorCode MaxRechargeTime
Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Kapazität der Batterie in Milliwatt-Stunden. Geben Sie 0 ein, wenn diese Eigenschaft nicht unterstützt wird. Die Spannung der Batterie in Millivolts. Geben Sie 0 ein, wenn dieses Attribut nicht unterstützt wird. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die die Batterie angibt. Beispiel: Interne Batterie Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Geschätzte Restladung in Prozent. »EstimatedRunTime« schätzt, wie lange es dauert, bis die Batterie oder der Generator unter der gegenwärtigen Belastung leer sind, wenn die Stromversorgung unterbrochen oder abgeschaltet ist oder ein Laptop von der Stromzufuhr getrennt wurde. Die Eigenschaft »ExpectedBatteryLife« gibt die erwartete Lebensdauer der Batterie an, nachdem diese vollständig aufgeladen wurde. Gibt die erwartete Lebensdauer der Batterie in Minuten an; vorausgesetzt daß die Batterie vollständig aufgeladen ist. Diese Eigenschaft gibt die gesamte Lebensdauer der Batterie an. Die verbleibende Lebensdauer wird in der Eigenschaft »EstimatedRunTime« angezeigt. Die gesamte Ladekapazität der Batterie in Milliwatt-Stunden. Der Vergleich dieses Werts mit der Eigenschaft »DesignCapacity« bestimmt, wann die Batterie ersetzt werden muß. Wenn die Eigenschaft »FullChargeCapacity« unter 80% der Eigenschaft »DesignCapacity« liegt, ist die Lebensdauer der Batterie beendet. Geben Sie 0 ein, wenn diese Eigenschaft nicht unterstützt wird. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. »MaxRechargeTime« gibt die zum Aufladen der Batterie maximal erforderliche Zeitdauer an. Diese Eigenschaft gibt die Zeitdauer zum Aufladen einer vollständig leeren Batterie an. Die verbleibende Aufladezeit wird in der Eigenschaft »TimeToFullCharge« angezeigt.
B.15 Win32_Battery Name
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
SmartBatteryVersion
Status
StatusInfo
SystemCreationClassName
455
Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Versionsnummer für Smart Battery-Datenspezifikationen, die von dieser Batterie unterstützt wird. Wenn die Batterie diese Funktion nicht unterstützt, sollte dieser Wert leer sein. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
456
Anhang B: WMI Klassenreferenz Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. »TimeOnBattery« gibt den Zeitraum in Sekunden an, der seit dem letzten Umschalten der UPS zu Batteriebetrieb oder seit dem letzten Neustart der UPS verstrichen ist. Der Wert Null wird zurückgegeben, wenn die Batterie aktiv ist. Erforderliche Zeit zum Aufladen der Batterie in Minuten (berechnet nach aktueller Aufladegeschwindigkeit und Verbrauch)
SystemName
TimeOnBattery
TimeToFullCharge
B.16 Win32_Binary Caption Data Description Name ProductCode SettingID
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Diese Eigenschaft stellt die binären Daten dar, die diesem Objekt zugeordnet sind. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«.
B.17 Win32_BindImageAction result as Integer = Invoke
ActionID Caption Description Direction
File
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«.
B.18 Win32_BootConfiguration Name Path SoftwareElementID SoftwareElementState TargetOperatingSystem
457
Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
Version
B.18 Win32_BootConfiguration BootDirectory Caption ConfigurationPath
Description LastDrive Name ScratchDirectory SettingID TempDirectory
Die Eigenschaft »BootDirectory« gibt den Pfad zu den Systemdateien an, die erforderlich sind, um das System zu starten. Beispiel: C:\Windows. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Die Eigenschaft »ConfigurationPath« gibt den Pfad zu den Konfigurationsdateien an. Dieser Wert kann dem Wert in der Eigenschaft »BootDirectory« entsprechen. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »LastDrive« gibt den letzten Laufwerkbuchstaben an, der einem physikalischen Laufwerk zugeordnet ist. BeispielExample: E: Die Eigenschaft »Name« gibt den Namen der Startkonfiguration an. Die Eigenschaft »ScratchDirectory« gibt das Verzeichnis an, in dem die temporären Dateien während des Starts gespeichert werden. Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »TempDirectory« gibt das Verzeichnis an, in dem die temporären Dateien gespeichert sind. Beispiel: C:\TEMP
B.19 Win32_Bus result as Integer = SetPowerState (PowerState as Integer, Time as Date/Time)
»SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energiesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
458
Anhang B: WMI Klassenreferenz
result as Integer = Reset
Availability
BusNum BusType
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID ErrorCleared
ErrorDescription
InstallDate
LastErrorCode
Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »BusNum« gibt die dem physikalischen Bus zugeordnete logische Nummer an. Beispiel: 1 Die Eigenschaft »BusType« gibt den Typ für den physikalischen Bus an. Dieser Wert wird in INTERFACE_TYPE definiert. Beispiel: PCIBus Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält einen eindeutigen Busnamen. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an.
B.19 Win32_Bus Name
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
Status
StatusInfo
SystemCreationClassName
459
Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
460
Anhang B: WMI Klassenreferenz
SystemName
Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
B.20 Win32_CDROMDrive result as Integer = SetPowerState (PowerState as Integer, Time as Date/Time)
result as Integer = Reset
Availability
Capabilities
»SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energiesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Funktionen des Geräts für den Medienzugriff. Wenn das Gerät z.B. »Zufälliger Zugriff«, »Austauschbare Medien« und »Automatische Reinigung« unterstützt, werden die Werte 3, 7 und 9 in das Datenfeld geschrieben.
B.20 Win32_CDROMDrive CapabilityDescriptions
Caption CompressionMethod
ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName DefaultBlockSize Description DeviceID Drive DriveIntegrity
ErrorCleared
ErrorDescription
ErrorMethodology
FileSystemFlags
461
Formfreie Zeichenfolgen mit genaueren Erklärungen zu den im Datenfeld »Capabilities« angezeigten Funktionen des Geräts für den Medienzugriff. Jeder Eintrag in diesem Array bezieht sich auf den Eintrag im Datenfeld »Capabilities« unter dem gleichen Index. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Eine formfreie Zeichenfolge, die den Algorithmus oder das Programm angibt, der bzw. das die Komprimierung unterstützt. Wenn es nicht möglich ist, das Komprimierungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob das Gerät die Komprimierung unterstützt. »Komprimiert«, wenn das Gerät die Komprimierung unterstützt, aber das Komprimierungsschema unbekannt ist. »Nicht komprimiert«, wenn das Gerät die Komprimierung nicht unterstützt. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Standardblockgröße für das Gerät in Bytes. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das CDROM-Laufwerk eindeutig identifiziert. Die Eigenschaft »Drive« gibt den Laufwerkbuchstaben des CDROM-Laufwerks an. Beispiel: d:\ Die Eigenschaft »DriveIntegrity« gibt an, ob Dateien vom CDROM-Laufwerk einwandfrei gelesen werden können, indem ein Datenblock zweimal gelesen und die Ergebnisse miteinander verglichen werden. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die formfreie Zeichenfolge »ErrorMethodology« beschreibt den Typ der Fehlererkennung und -korrektur, der von diesem Gerät unterstützt wird. Die Eigenschaft »FileSystemFlags« wurde durch die Eigenschaft »FileSystemFlagsEx« ersetzt.
462
Anhang B: WMI Klassenreferenz
FileSystemFlagsEx
Id InstallDate
LastErrorCode Manufacturer MaxBlockSize MaximumComponentLength
MaxMediaSize MediaLoaded
MediaType
MinBlockSize Name
NeedsCleaning
NumberOfMediaSupported
PNPDeviceID
Die Eigenschaft »FileSystemFlagsEx« gibt die dem Win32 CDROM-Laufwerk zugeordneten Dateisystemflags an. Dieser Parameter kann eine Kombination der Flags FS_FILE_COMPRESSION und FS_VOL_IS_COMPRESSED sein. Beispiel: 0. Die Eigenschaft »Id« gibt den Laufwerkbuchstaben des CD-ROMLaufwerks an. Beispiel: d:\ Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des Win32 CDROM-Laufwerks an. Beispiel: PLEXTOR Maximale Größe in Bytes des Mediums, auf das zugegriffen wird. Die Eigenschaft »MaximumComponentLength« gibt die maximale Länge einer Dateinamenkomponente an, die vom Win32-CDROM-Laufwerk unterstützt wird. Eine Dateinamenkomponente ist der Teil des Dateinamens zwischen den umgekehrten Schrägstrichen. Der Wert kann verwendet werden, um anzugeben, ob lange Dateinamen von einem Dateisystem unterstützt werden. Für ein FAT-Dateisystem, das lange Namen unterstützt, wird z.B. der Wert 255 gespeichert, statt 8.3. Lange Namen können auch von NTFSDateisystemen unterstützt werden. Beispiel: 255 Maximale Größe in KB des vom Gerät unterstützten Mediums. Die Eigenschaft »MediaLoaded« gibt an, ob sich eine CD im Laufwerk befindet. Werte: TRUE oder FALSE. TRUE gibt an, daß eine CD in das Laufwerk eingelegt ist. Die Eigenschaft »MediaType« gibt den Medientyp an, der von diesem Gerät verwendet wird. In dieser Klasse ist der Wert immer »CD-ROM«. Minimale Größe in Byte des Mediums, auf das zugegriffen wird. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Boolescher Wert, der angibt, daß das Laufwerk gereinigt werden muß. In der Eigenschaft »Capabilities« wird angegeben, ob eine automatische oder manuelle Reinigung möglich ist. Wenn das Gerät für den Medienzugriff mehrere individuelle Medien unterstützt, gibt diese Eigenschaft die maximale Medienanzahl an, die unterstützt oder eingelegt werden kann. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
B.20 Win32_CDROMDrive PowerManagementCapabilities
PowerManagementSupported
RevisionLevel SCSIBus SCSILogicalUnit
SCSIPort SCSITargetId Size Status
463
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »RevisionLevel« gibt die Firmwarerevision des Win32 CD-ROM-Laufwerks an. Die Eigenschaft »SCSIBus« gibt die SCSI-Busnummer des Laufwerks an. Beispiel: 0 Die Eigenschaft »SCSILogicalUnit« gibt die SCSI LUN (Logical Unit Number) des Laufwerks an. Die LUN definiert, auf welchen SCSIController in einem System mit mehreren Controllern zugegriffen wird. Die SCSI-Gerätekennung ist die Definition mehrerer Geräte auf einem Controller. Beispiel: 0 Die Eigenschaft »SCSIPort« gibt die SCSI-Anschlußnummer des Laufwerks an. Beispiel: 1 Die Eigenschaft »SCSITargetId« gibt die SCSI-Kennung des Win32 CD-ROM-Laufwerks an. Beispiel: 0. Die Eigenschaft »Size« gibt die Größe des Laufwerks an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
464
Anhang B: WMI Klassenreferenz
StatusInfo
SystemCreationClassName
SystemName
TransferRate
VolumeName VolumeSerialNumber
Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »TransferRate« gibt die Übertragungsrate des CDROM-Laufwerks an. Der Wert 1 gibt an, daß die Rate nicht bestimmt werden konnte (wenn sich z.B. keine CD im Laufwerk befindet). Die Eigenschaft »VolumeName« gibt den Datenträgernamen des Win32 CD-ROM-Laufwerks an. Die Eigenschaft »VolumeSerialNumber« gibt die Seriennummer des Mediums im CD-ROM-Laufwerk an. Beispiel: A8C3-D032
B.21 Win32_CIMLogicalDeviceCIMDataFile Antecedent Dependent Purpose PurposeDescription
Die Referenz »Antecedent« stellt die Eigenschaften des logischen Geräts dar, das von der Datendatei verwendet wird. Die Referenz »Dependent« stellt die Eigenschaften der dem logischen Gerät zugeordneten Datendatei dar. Die Eigenschaft »Purpose« gibt die Funktion der Datendatei in bezug auf das logische Gerät an. Die Eigenschaft »PurposeDescription« beschreibt den Wert der Eigenschaft »Purpose« dieser Klasse. Beispiel: Diskettentreiber
B.22 Win32_COMApplication Caption Description InstallDate Name
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden.
B.23 Win32_COMApplicationClasses Status
465
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.23 Win32_COMApplicationClasses GroupComponent PartComponent
Die Referenz »GroupComponent« stellt die COM-Anwendung dar, die die COM-Komponente enthält. »Win32_COMClass« stellt die in der COM-Anwendung gruppierte COMKomponente dar.
B.24 Win32_COMApplicationSettings Element Setting
Die Referenz »Element« stellt die DCOM-Anwendung dar, für die die Einstellungen verwendet werden. Die Referenz »Setting« stellt die der DCOM-Anwendung zugeordneten Konfigurationseinstellungen dar.
B.25 Win32_COMClass Caption Description InstallDate
Name
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden.
466
Anhang B: WMI Klassenreferenz
Status
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.26 Win32_COMSetting Caption Description SettingID
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«.
B.27 Win32_CacheMemory result as Integer = SetPowerState (PowerState as Integer, Time as Date/Time)
result as Integer =Reset
Access
»SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energiesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Eigenschaft »Access« gibt an, ob das Medium lesbar (Wert=1), beschreibbar (Wert=2) oder beides (Wert=3) ist. »Unbekannt« (0) kann ebenfalls definiert werden.
B.27 Win32_CacheMemory AdditionalErrorData
Associativity
Availability
BlockSize
CacheSpeed CacheType
Caption ConfigManagerErrorCode ConfigManagerUserConfig CorrectableError
CreationClassName
CurrentSRAM Description
467
Oktetts, die zusätzliche Fehlerinformationen enthalten. Ein Beispiel ist das ECC-Syndrom oder die Rückgabe der Prüfbits, wenn eine CRCbasierte Fehlermethode verwendet wird. Wenn ein Einzelbit-Fehler gefunden wird und der CRC-Algorithmus bekannt ist, ist es möglich, das fehlerhafte Bit zu bestimmen. Dieser Datentyp (ECC-Syndrom, Prüfbit, Paritätsbit oder andere Herstellerinformationen) ist in diesem Feld enthalten. Wenn der Wert der Eigenschaft »ErrorInfo« 3 ist, hat die Eigenschaft »AdditionalErrorData« keine Bedeutung. Eine Auflistung ganzer Zahlen, die die Assoziativität des Systemcaches definiert. Zum Beispiel bedeutet die Zahl 6 einen vollständig assoziativen Cache. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Größe der Speichererweiterungsblöcke in Byte. Geben Sie 1 ein, wenn die Größe unbekannt oder ein Blockkonzept ungültig ist (z.B. für zusammengesetzte Erweiterungen, Speicher oder logische Datenträger). Die Eigenschaft »CacheSpeed« gibt die Cachegeschwindigkeit an. Definiert, ob Anweisungen (Wert=3), Daten (Wert=4) oder beides (Wert=5, »Vereinheitlicht«) zwischengespeichert werden. Es kann auch »Andere« (1) und »Unbekannt« (2) definiert werden. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Boolescher Wert, der angibt, daß der letzte Fehler korrigierbar war. Wenn die Eigenschaft »ErrorInfo« 3 »OK« ist, hat diese Eigenschaft keine Bedeutung. Boolescher Wert, der angibt, daß der letzte Fehler korrigierbar war. Wenn die Eigenschaft »ErrorInfo« 3 »OK« ist, hat diese Eigenschaft keine Bedeutung. Die Eigenschaft »CurrentSRAM« gibt den für den Cache verwendeten SRAM-Typ (Static Random Access Memory) an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an.
468
Anhang B: WMI Klassenreferenz
DeviceID
EndingAddress
ErrorAccess
ErrorAddress
ErrorCleared ErrorCorrectType ErrorData
ErrorDataOrder
ErrorDescription
ErrorInfo
ErrorMethodology
ErrorResolution
Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den Cache eindeutig kennzeichnet, der von Win32_CacheMemory angegeben wird. Beispiel: Cache 1 Die Endadresse, auf die von einer Anwendung oder einem Betriebssystem verwiesen wird, und die von einem Speichercontroller für dieses Speicherobjekt zugeordnet wurde. Die Endadresse wird in KB angegeben. Eine ganze Zahl, die den Vorgang angibt, bei dem der letzte Speicherfehler aufgetreten ist. Der Fehlertyp wird in der Eigenschaft »ErrorInfo« beschrieben. Wenn die Eigenschaft »ErrorInfo« 3 »OK« ist, hat diese Eigenschaft keine Bedeutung. Gibt die Adresse des letzten Speicherfehlers an. Der Fehlertyp wird in der Eigenschaft »ErrorInfo« beschrieben. Wenn die Eigenschaft »ErrorInfo« 3 »OK« ist, hat diese Eigenschaft keine Bedeutung. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die Eigenschaft »ErrorCorrectType« gibt den Fehlerkorrekturtyp für den Cache an. Die Daten des letzten Speicherzugriffs mit einem Fehler. Die Daten belegen das erste N-Oktett des Datenfelds, das für die in der Eigenschaft »ErrorTransferSize« angegebenen Bits erforderlich ist. Wenn der Wert 0 ist, wird diese Eigenschaft nicht verwendet. Die Reihenfolge der in der Eigenschaft »ErrorData« gespeicherten Daten. »Unwichtigstes Byte zuerst« (Wert=1) oder »Wichtigstes Byte zuerst« (2) kann angegeben werden. Wenn »ErrorTransferSize« 0 ist, hat diese Eigenschaft keine Bedeutung. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Eine Aufzählung, die den Typ des zuletzt aufgetretenen Fehlers beschreibt. Mit dieser Eigenschaft können z.B. Einzelbit-Fehler (Wert=6) oder Doppelbit-Fehler (7) angegeben werden. Die Werte 12 bis 14 sind im CIM-Schema nicht definiert, da in DMI die Semantik der Fehlertypen und deren Korrigierbarkeit gemischt ist. Korrigierbare Fehler werden in der Eigenschaft »CorrectableError« angegeben. Die Eigenschaft »ErrorMethodology« für CIM_Memory gibt an, ob Parität, CRC-Algorithmen, ECC oder andere Mechanismen verwendet werden. Es können auch Details für den Algorithmus angegeben werden. Bestimmt den Bereich, in Bytes, in dem der letzte Fehler aufgelöst werden kann. Wenn z.B. Fehleradressen in Bit 11 aufgelöst werden, d.h. auf der Basis konventioneller Seitenverwaltung, können Fehler in 4-KB-Randwerte aufgelöst werden, soweit diese Eigenschaft auf 4000 gesetzt ist. Wenn die Eigenschaft »ErrorInfo« 3 »OK« ist, hat diese Eigenschaft keine Bedeutung.
B.27 Win32_CacheMemory ErrorTime
ErrorTransferSize
FlushTimer
InstallDate
InstalledSize LastErrorCode Level
LineSize Location MaxCacheSize Name
NumberOfBlocks
OtherErrorDescription
PNPDeviceID
469
Zeitpunkt, zu dem der letzte Speicherfehler aufgetreten ist. Der Fehlertyp wird in der Eigenschaft »ErrorInfo« beschrieben. Wenn die Eigenschaft »ErrorInfo« 3 »OK« ist, hat diese Eigenschaft keine Bedeutung. Die Größe der Datenübertragung in Bits, die den letzten Fehler verursacht hat. 0 gibt keine Fehler an. Wenn die Eigenschaft »ErrorInfo« 3 »OK« ist, sollte diese Eigenschaft 0 sein. Maximale Anzahl der Sekunden, die fehlerhafte Zeilen oder Buckets im Cache verbleiben, bevor sie gelöscht werden. Der Wert Null gibt an, daß der Löschvorgang nicht von einem Zeitgeber gesteuert wird. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InstalledSize« gibt die aktuelle Größe des installierten Cache an. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Definiert den primären (Wert=3), sekundären (Wert=4) oder tertiären (Wert=5) Cache. Es kann auch »Andere« (1) und »Unbekannt« (2) definiert werden. Größe eines Buckets oder einer Zeile im Cache in Bytes. Die Eigenschaft »Location« gibt die physikalische Position des Cachespeichers an. Die Eigenschaft »MaxCacheSize« gibt die maximale installierbare Cachegröße für diesen Cache an. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gesamtanzahl der aufeinander folgenden Blöcke. Jeder Block entspricht in der Größe dem in der Eigenschaft »BlockSize« angegebenen Wert. Die Gesamtgröße der Speichererweiterung kann berechnet werden, indem der Wert der Eigenschaft »BlockSize« mit dem Wert dieser Eigenschaft multipliziert wird. Wenn der Wert in »BlockSize« 1 ist, gibt diese Eigenschaft die Gesamtgröße der Speichererweiterung an. Formfreie Zeichenfolge mit weiteren Informationen, wenn die Eigenschaft »ErrorType« auf 1 »Andere« gesetzt ist. Wenn der Wert nicht 1 ist, hat diese Zeichenfolge keine Bedeutung. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
470
Anhang B: WMI Klassenreferenz
PowerManagementCapabilities
PowerManagementSupported
Purpose ReadPolicy
ReplacementPolicy StartingAddress
Status
StatusInfo
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Formfreie Zeichenfolge, die das Medium und/oder seine Verwendung beschreibt. Richtlinie, die vom Cache zum Verarbeiten von Leseanforderungen verwendet wird. Es kann z.B. »Lesen«, »Vorauslesen« oder beides mit den Werten 3, 4 oder 5 angegeben werden. Eine Aufzählung, die den Algorithmus zum Festlegen der Zeilen und Buckets im Cache für die erneute Verwendung beschreibt. Die Startadresse, auf die von einer Anwendung oder einem Betriebssystem verwiesen wird und die von einem Speichercontroller für dieses Speicherobjekt zugeordnet wurde. Die Startadresse wird in KB angegeben. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
B.28 Win32_CheckCheck SupportedSRAM
471
Die Eigenschaft »SupportedSRAM« gibt den SRAM-Typ (Static Random Access Memory) an, der für den Cache verwendet werden kann. Die Eigenschaft »SupportedSRAM« gibt den SRAM-Typ (Static Random Access Memory) an, der für den Cache verwendet werden kann. Boolescher Wert, der angibt, ob es sich bei den Adreßinformationen in der Eigenschaft »ErrorAddress« um eine Systemadresse (TRUE) oder eine physikalische Adresse (FALSE) handelt. Wenn die Eigenschaft »ErrorInfo« 3 »OK« ist, hat diese Eigenschaft keine Bedeutung. Boolescher Wert, der angibt, ob es sich bei den Adreßinformationen in der Eigenschaft »ErrorAddress« um eine Systemadresse (TRUE) oder eine physikalische Adresse (FALSE) handelt. Wenn die Eigenschaft »ErrorInfo« 3 »OK« ist, hat diese Eigenschaft keine Bedeutung. Definiert, ob der Wert für den Cache »Zurückschreiben« (Wert=3) oder »Durchschreiben« (Wert=4) ist, oder die Informationen mit der Adresse variieren (5). Es kann auch »Andere« (1) und »Unbekannt« (2) definiert werden.
SystemCreationClassName SystemLevelAddress
SystemName
WritePolicy
B.28 Win32_CheckCheck Check Location
Diese Zuordnung bezieht sich auf MSI-Vorgänge mit den erforderlichen Positionsinformationen (Datei- und/oder Verzeichnisangabe).
B.29 Win32_ClassInfoAction result as Integer = Invoke
ActionID AppID Argument Caption CLSID
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist.
472
Anhang B: WMI Klassenreferenz
Context DefInprocHandler Description Direction
FileTypeMask
Insertable
Name ProgID RemoteName SoftwareElementID SoftwareElementState TargetOperatingSystem Version VIProgID
Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder . Versionsformat: .. oder .
B.30 Win32_ClassicCOMApplicationClasses GroupComponent PartComponent
Die Referenz »GroupComponent« stellt eine DCOM-Anwendung dar, die die COM-Komponente enthält oder verwendet. Die Referenz »PartComponent« stellt die COM-Komponente dar, die in der DCOM-Anwendung vorhanden ist oder von dieser verwendet wird.
B.31 Win32_ClassicCOMClass Caption ComponentId
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »ComponentId« enthält die GUID (Globally Unique Identifier) der COM-Klasse.
B.32 Win32_ClassicCOMClassSetting Description InstallDate
Name Status
473
Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« enthält den lesbaren Namen der COM-Klasse. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.32 Win32_ClassicCOMClassSetting AppID AutoConvertToClsid
AutoTreatAsClsid
Caption ComponentId Control DefaultIcon Description InprocHandler InprocHandler32 InprocServer InprocServer32
Die Eigenschaft »AppID« enthält die GUID (Globally Unique Identifier) für die COM-Anwendung, die die COM-Komponente verwendet. Die Eigenschaft »AutoConvertToClsid« enthält die GUID (Globally Unique Identifier) der COM-Klasse, zu der die COM-Komponente automatisch konvertiert wird. Die Eigenschaft »AutoTreatAsClsid« enthält eine GUID (Globally Unique Identifier) einer COM-Komponente, die Instanzen der Klasse automatisch emuliert. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Die Eigenschaft »ComponentId« enthält die GUID (Globally Unique Identifier) der COM-Komponente. Die Eigenschaft »Control« gibt an, ob die COM-Komponente ein OLE-Steuerelement ist. Die Eigenschaft »DefaultIcon« enthält den Pfad zur ausführbaren Datei und Ressourcenkennung des von der Klasse verwendeten Standardsymbols. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »InprocHandler« enthält den vollständigen Pfad zu einem benutzerdefinierten Handler (16 Bit) für die COM-Komponente. Die Eigenschaft »InprocHandler32« enthält den vollständigen Pfad zu einem benutzerdefinierten Handler (32 Bit) für die COM-Komponente. Die Eigenschaft »InprocServer« enthält den vollständigen Pfad zu einer InProcess-Server-DLL (16 Bit) für die COM-Komponente. Die Eigenschaft »InprocServer32« enthält den vollständigen Pfad zu einer InProcess-Server-DLL (32 Bit) für die COM-Komponente.
474
Anhang B: WMI Klassenreferenz
Insertable JavaClass LocalServer LocalServer32
LongDisplayName
ProgId
SettingID ShortDisplayName ThreadingModel
ToolBoxBitmap32
TreatAsClsid
Die Eigenschaft »Insertable« gibt an, ob die COM-Komponente in OLEContaineranwendungen eingefügt werden kann. Die Eigenschaft »JavaClass« gibt an, ob die COM-Komponente eine JavaKomponente ist. Die Eigenschaft »LocalServer« enthält den vollständigen Pfad zu einer lokalen 16-Bit-Serveranwendung. Die Eigenschaft »LocalServer32« enthält den vollständigen Pfad zu einer lokalen 32-Bit-Serveranwendung. Die Eigenschaft »LongDisplayName« gibt den vollständigen Namen der COM-Anwendung an. Dieser wird z.B. im Ergebnisfeld im OLE-Dialogfeld »Inhalte einfügen« verwendet. Die Eigenschaft »ProgId« enthält eine Programmkennung für die COMKomponente in folgendem Format: ... Die Eindeutigkeit dieser Kennung ist nicht garantiert. Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »ShortDisplayName« gibt den kurzen Namen der COM-Anwendung für die Verwendung in Menüs an. Die Eigenschaft »ThreadingModel« gibt das Threadingmodell an, das von InProcess-COM-Klassen verwendet wird; einschließlich: Apartment – Komponenten können nur von einem Thread eingegeben werden. Allgemeine Daten auf diesen Objektservern müssen gegen Threadkonflikte geschützt werden, da der Objektserver mehrere Komponenten unterstützt. Jede Komponente kann gleichzeitig von verschiedenen Threads eingegeben werden. Free – Komponenten schränken nicht ein, auf welchen Threads oder wie viele Threads das Objekt eingeben können. Das Objekt darf keine threadspezifischen Daten enthalten, und die Daten müssen vor dem gleichzeitigen Zugriff mehrerer Threads geschützt sein. Apartmentthreads können nicht direkt auf Freethread-Komponenten zugreifen. Beide – Komponenten, die im Apartmentthread- oder Freethread-Modus verwendet werden können. Diese Komponenten können von mehreren Threads eingegeben werden. Die Daten sind nicht threadspezifisch und vor Threadkonflikten geschützt. Wenn diese Eigenschaft NULL ist, wird kein Threadingmodell verwendet. Die Komponente wird auf dem Hauptthread des Clients erstellt, und Aufrufe von anderen Threads werden zu diesem Thread umgeleitet. Weitere Informationen über die verschiedenen Threadingmodelle finden Sie im Platform Software Development Kit. Die Eigenschaft »ToolBoxBitmap32« gibt den Modulnamen und die Ressourcenkennung für eine kleine (16x16) Bitmap an, die in einer Symbolleiste oder Toolbox verwendet wird, wenn die COM-Komponente ein OLE- oder ActiveX-Steuerelement ist. Die Eigenschaft »TreatAsClsid« enthält eine GUID (Globally Unique Identifier) einer COM-Komponente, die Instanzen der Komponente emulieren kann.
B.33 Win32_ClassicCOMClassSettings TypeLibraryId Version VersionIndependentProgId
475
Die Eigenschaft »TypeLibraryId« enthält die GUID (Globally Unique Identifier) für die Typenbibliothek der COM-Komponente. Die Eigenschaft »Version« gibt die Versionsnummer der COM-Klasse an. Die Eigenschaft »VersionIndependentProgId« enthält eine Programmkennung, die für alle Versionen des Programms konsistent ist.
B.33 Win32_ClassicCOMClassSettings Element Setting
Die Referenz »Element« stellt die COM-Klasse dar, für die die Einstellungen verwendet werden. Die Referenz »Setting« stellt die der COM-Klasse zugeordneten Konfigurationseinstellungen dar.
B.34 Win32_ClientApplicationSetting Application Client
Die Referenz »Application« stellt die DCOM-Anwendung dar, die Konfigurationsoptionen der ausführbaren Datei enthält. Die Referenz »Client« stellt eine ausführbare Datei dar, die DCOM-Einstellungen verwendet.
B.35 Win32_CodecFile result as Integer = TakeOwnerShip
Die Methode »TakeOwnerShip« übernimt den Besitz der logischen Datei, die im Objektpfad angegeben ist. Wenn die logische Datei ein Verzeichnis ist, übernimt die Methode den Besitz aller Dateien und Unterverzeichnisse, die im Verzeichnis enthaltenen sind. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
476
Anhang B: WMI Klassenreferenz
result as Integer = ChangeSecurityPermissions (Option as Integer, SecurityDescriptor as CIM-Object)
result as Integer = Copy (FileName as String)
result as Integer = Rename (FileName as String)
Die Methode »ChangeSecurityPermissions« ändert die Sicherheitsrechte für die im Objektpfad angegebene logische Datei. Wenn die logische Datei ein Verzeichnis ist, werden die Sicherheitsrechte aller im Verzeichnis enthaltener Dateien und Unterverzeichnisse geändert. Die Methode gibt den Wert 0 zurück, wenn die Rechte geändert wurden. Jeder andere Wert zeigt einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Copy« kopiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist, in das im Eingabeparameter festgelegte Verzeichnis. Der Wert 0 wird zurückgegeben, wenn die Datei kopiert wurde. Andere Werte zeigen einen Fehler an. Das Kopieren wird nicht unterstützt, wenn eine vorhandene Datei überschrieben werden muß. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Rename« benennt die logische Datei (oder das Verzeichnis) um, die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei umbenannt wurde. Andere Werte zeigen einen Fehler an. Die Umbenennung wird nicht unterstützt, wenn das Ziel ein anderes Laufwerk ist oder eine vorhandene Datei überschrieben werden muß. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
B.35 Win32_CodecFile result as Integer = Delete
result as Integer = Compress
result as Integer = Uncompress
result as Integer = TakeOwnerShipEx (Recursive as Boolean, StartFileName as String)
477
Die Methode »Delete« löscht die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei gelöscht wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Compress« komprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei komprimiert wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Uncompress« dekomprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei dekomprimiert wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »TakeOwnerShipEx« übernimt den Besitz der logischen Datei, die im Objektpfad angegeben ist. Wenn die logische Datei ein Verzeichnis ist, übernimt die Methode den Besitz aller Dateien und Unterverzeichnisse, die im Verzeichnis enthaltenen sind. Der Wert 0 wird zurückgegeben, wenn der Vorgang erfolgreich beendet wurde. Andere Werte zeigen einen Fehler an. »TakeOwnerShipEx« ist eine erweiterte Version der Methode »TakeOwnerShip«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
478
Anhang B: WMI Klassenreferenz
Die Methode »ChangeSecurityPermissionsEx« ändert die Sicherheitsrechte für die im Objektpfad angegebene logische Datei. Wenn die logische Datei ein Verzeichnis ist, werden die Sicherheitsrechte aller im Verzeichnis enthaltener Dateien und Unterverzeichnisse geändert. Die Methode gibt den Wert 0 zurück, wenn die Rechte geändert wurden. Jeder andere Wert zeigt einen Fehler an. »ChangeSecurityPermissionsEx« ist eine erweiterte Version der Methode »ChangeSecurityPermissions«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »CopyEx« kopiert die logische Datei (oder das Verzeichnis), die result as Integer = CopyEx (FileName as String, Recursive im Objektpfad angegeben ist, in das im Parameter »FileName« festgelegte as Boolean, StartFileName as Verzeichnis. Der Wert 0 wird zurückgegeben, wenn die Datei kopiert wurde. Andere Werte zeigen einen Fehler an. Das Kopieren wird nicht unterstützt, String) wenn eine vorhandene Datei überschrieben werden muß. »CopyEx« ist eine erweiterte Version der Methode »Copy«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. result as Integer = DeleteEx Die Methode »DeleteEx« löscht die logische Datei (oder das Verzeichnis), die im (StartFileName as String) Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei gelöscht wurde. Andere Werte zeigen einen Fehler an. »DeleteEx« ist eine erweiterte Version der Methode »Delete«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. result as Integer = ChangeSecurityPermissionsEx (Option as Integer, Recursive as Boolean, SecurityDescriptor as CIM-Object, StartFileName as String)
B.35 Win32_CodecFile result as Integer = CompressEx (Recursive as Boolean, StartFileName as String)
result as Integer = UncompressEx (Recursive as Boolean, StartFileName as String)
result as Boolean = GetEffectivePermission (Permissions as Integer) AccessMask
Archive Caption Compressed CompressionMethod
479
Die Methode »CompressEx« komprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei komprimiert wurde. Andere Werte zeigen einen Fehler an. »CompressEx« ist eine erweiterte Version der Methode »Compress«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFSDateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »UncompressEx« dekomprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei dekomprimiert wurde. Andere Werte zeigen einen Fehler an. »UncompressEx« ist eine erweiterte Version der Methode »Uncompress«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »GetEffectivePermission« bestimmt, ob der Aufrufer über die vom Argument »Permission« angegebenen zusammengesetzten Berechtigungen für das Dateiobjekt und ggf. die Freigabe verfügt, auf der sich die Datei oder das Verzeichnis befindet. Die Eigenschaft »AccessMask« ist ein Bitarray, das die Zugriffsrechte für die Datei oder das Verzeichnis des Benutzers oder der Gruppe darstellt, für die die Instanz zurückgegeben wird. Diese Eigenschaft wird nur in Windows NT und Windows 2000 unterstützt. Auf Windows 98 und Windows NT/2000 FAT-Datenträgern wird FULL_ACCESS zurückgegeben, da keine Objektsicherheit festgelegt ist. Die Eigenschaft »Archive« ist ein boolescher Wert, der angibt, ob die Datei archiviert werden soll. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Compressed« ist ein boolescher Wert, der angibt, daß die Datei komprimiert ist. Die Eigenschaft »CompressionMethod« ist eine formfreie Zeichenfolge, die den Algorithmus oder das Programm zum Komprimieren der logischen Datei angibt. Wenn es nicht möglich ist, das Komprimierungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob die logische Datei komprimiert ist. »Komprimiert«, wenn die Datei komprimiert ist, aber das Komprimierungsschema unbekannt ist. »Nicht komprimiert«, wenn die logische Datei nicht komprimiert ist.
480
Anhang B: WMI Klassenreferenz
CreationClassName CreationDate CSCreationClassName CSName Description Drive EightDotThreeFileName Encrypted EncryptionMethod
Extension FileName FileSize FileType FSCreationClassName FSName Group Hidden InstallDate
InUseCount LastAccessed LastModified
Die Eigenschaft »CreationClassName« gibt den Klassennamen an. Die Eigenschaft »CreationDate« gibt das Erstellungsdatum der Datei an. Die Eigenschaft »CSCreationClassName« gibt die Klasse des Computersystems an. Die Eigenschaft »CSName« gibt den Namen des Computersystems an. Die Eigenschaft »Description« gibt den vollständigen Namen des Codectreibers an. Beispiel: Microsoft PCM-Konvertierungsprogramm. Die Eigenschaft »Drive« gibt den Laufwerkbuchstaben (einschließlich Doppelpunkt) der Datei an. Beispiel: c: Die Eigenschaft »EightDotThreeFileName« gibt den DOS-kompatiblen Namen der Datei an. Beispiel: c:\progra~1 Die Eigenschaft »Encrypted« ist ein boolescher Wert, der angibt, daß die Datei verschlüsselt ist. Die Eigenschaft »EncryptionMethod« ist eine formfreie Zeichenfolge, die den Algorithmus oder das Programm zum Verschlüsseln der logischen Datei angibt. Wenn es z.B. aus Sicherheitsgründen nicht möglich ist, das Verschlüsselungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob die logische Datei verschlüsselt ist. »Verschlüsselt«, wenn die Datei verschlüsselt ist, aber das Verschlüsselungsschema unbekannt ist. »Nicht verschlüsselt«, wenn die logische Datei nicht verschlüsselt ist. Die Eigenschaft »Extension« gibt die Erweiterung der Datei ohne Punkt an. Beispiel: txt, mof, mdb. Die Eigenschaft »FileName« gibt den Namen der Datei ohne Erweiterung an. Beispiel: autoexec Die Eigenschaft »FileSize« gibt die Datengröße in Bytes an. Die Eigenschaft »FileType« stellt den in der Eigenschaft »Extension« angegebenen Dateityp dar. Die Eigenschaft »FSCreationClassName« gibt die Klasse des Dateisystems an. Die Eigenschaft »FSName« gibt den Namen des Dateisystems an. Die Eigenschaft »Group« gibt den von dieser Klasse dargestellten Codectyp an. Die Eigenschaft »Hidden« ist ein boolescher Wert, der angibt, ob die Datei versteckt ist. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InUseCount« gibt die Anzahl der geöffneten Instanzen einer Datei an. Die Eigenschaft »LastAccessed« gibt an, wann zuletzt auf die Datei zugegriffen wurde. Die Eigenschaft »LastModified« gibt an, wann die Datei zuletzt geändert wurde.
B.36 Win32_ComClassAutoEmulator Manufacturer Name
Path Readable Status
System Version Writeable
481
Herstellerzeichenfolge aus der Versionsressource, falls vorhanden. Die Eigenschaft »Name« gibt den vererbten Namen an, der als Schlüssel einer logischen Datei innerhalb eines Dateisystems dient. Es müssen vollständige Pfadnamen angegeben werden. Beispiel: c:\winnt\system\win.ini Die Eigenschaft »Path« gibt den Pfad der Datei an, einschließlich umgekehrter Schrägstriche am Anfang und am Ende. Beispiel: \windows\system\ Die Eigenschaft »Readable« ist ein boolescher Wert, der angibt, ob die Datei gelesen werden kann. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »System« ist ein boolescher Wert, der angibt, ob die Datei eine Systemdatei ist. Versionszeichenfolge aus der Versionsressource, falls vorhanden. Die Eigenschaft »Writeable« ist ein boolescher Wert, der angibt, ob die Datei geschrieben werden kann.
B.36 Win32_ComClassAutoEmulator NewVersion
OldVersion
Die Referenz »NewVersion« stellt die COM-Komponente dar, die die zugeordnete COM-Komponente automatisch emulieren kann. Diese Informationen sind im Registrierungseintrag »AutoTreatAs« enthalten. Die Referenz »OldVersion« stellt die COM-Komponente dar, die automatisch von einer anderen Komponente emuliert wird.
B.37 Win32_ComClassEmulator NewVersion OldVersion
Die Referenz »NewVersion« stellt die COM-Komponente dar, die die Schnittstelle zum Emulieren der älteren Version der Komponente enthält. Die Referenz »OldVersion« stellt die COM-Komponente mit Schnittstellen dar, die von der neueren Version der Komponente emuliert werden kann.
482
Anhang B: WMI Klassenreferenz
B.38 Win32_CommandLineAccess Caption CommandLine CreationClassName
Description InstallDate Name
Status
SystemCreationClassName SystemName
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Commandline« enthält die Zeichenfolge, mit der der Dienst gestartet wird. »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« gibt den Dienstzugriffspunkt und die verwalteten Funktionen an. Die Funktionen werden in der Eigenschaft »Description« des Objekts genauer beschrieben. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Der Erstellungsklassenname des bereichsdefinierenden Systems. Der Name des bereichsdefinierenden Systems.
B.39 Win32_ComponentCategory Caption CategoryId Description InstallDate Name
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »CategoryId« gibt eine GUID für die Komponentenkategorie an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« gibt einen Namen für die Komponentenkategorie an.
B.40 Win32_ComputerSystem Status
483
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.40 Win32_ComputerSystem result as Integer = SetPowerState Die Methode »SetPowerState« definiert den gewünschten Energiestatus eines Computersystems und seines Betriebssystems. Außerdem wird fest(PowerState as Integer, Time as gelegt, wann das System in diesen Zustand versetzt wird. Der Parameter Date/Time) »PowerState« wird als ein für die Eigenschaft »PowerState« definierter Wert angegeben. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Systems an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. AdminPasswordStatus Die Eigenschaft »AdminPasswordStatus« gibt die Hardwaresicherheitseinstellungen für den Status des Administratorkennworts an. AutomaticResetBootOption Die Eigenschaft »AutomaticResetBootOption« legt fest, ob die Option zum automatischen Starten aktiviert ist. Werte: TRUE oder FALSE. TRUE gibt an, daß die Option aktiviert ist. AutomaticResetCapability Die Eigenschaft »AutomaticResetCapability« legt fest, ob der automatische Neustart aktiviert ist. Diese Funktion ist nur in Windows NT verfügbar (nicht in Windows 95). Werte: TRUE oder FALSE. TRUE gibt an, daß der automatische Neustart aktiviert ist. BootOptionOnLimit Gibt den Systemvorgang an, der ausgeführt wird, wenn der Neustartlimit erreicht ist. BootOptionOnWatchDog Die Eigenschaft »BootOptionOnWatchDog« gibt den Neustartvorgang an, der ausgeführt wird, nachdem die Zeit für den Überwachungszeitgeber verstrichen ist. BootROMSupported Die Eigenschaft »BootROMSupported« legt fest, ob ein Start-ROM unterstützt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß ein StartROM unterstützt wird. BootupState Die Eigenschaft »BootupState« gibt an, wie das System gestartet wurde. Der abgesicherte Start umgeht die vom Benutzer festgelegten Startdateien. Einschränkungen: Wert erforderlich.
484
Anhang B: WMI Klassenreferenz
Caption ChassisBootupState CreationClassName
CurrentTimeZone DaylightInEffect Description Domain DomainRole
FrontPanelResetStatus InfraredSupported
InitialLoadInfo
InstallDate
KeyboardPasswordStatus LastLoadInfo Manufacturer Model Name
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »ChassisBootupState« gibt den Startstatus des Gehäuses an. Die Eigenschaft »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Die Eigenschaft »CurrentTimeZone« gibt den Zeitraum für den Offset des unitären Computersystems von CUT (Coordinated Universal Time) an. Die Eigenschaft »DaylightInEffect« gibt an, ob der Sommerzeitmodus aktiv ist. Werte: TRUE oder FALSE. Wenn TRUE, ist die Sommerzeit aktiv. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »Domain« gibt die Namen der Domäne an, zu der der Computer gehört. Die Eigenschaft »DomainRole« gibt die Funktion des Computers in der Domäne/Arbeitsgruppe an. Die Domäne/Arbeitsgruppe besteht aus mehreren Computern im gleichen Netzwerk. Dieser Computer kann z.B. als »Mitglied der Domäne/Arbeitsgruppe » (Wert=1) angezeigt werden. Die Eigenschaft »FrontPanelResetStatus« gibt die Hardwaresicherheitseinstellungen für die Reset-Taste des Computers an. Die Eigenschaft »InfraredSupported« gibt an, ob im Computersystem ein Infrarotanschluß vorhanden ist. Werte: TRUE oder FALSE. Wenn TRUE, ist ein Infrarotanschluß vorhanden. Dieses Objekt enthält die zum Suchen des ursprünglichen Ladegeräts oder des Startdienstes erforderlichen Daten, um den Start des Betriebssystems anzufordern. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »KeyboardPasswordStatus« gibt die Hardwaresicherheitseinstellungen für den Status des Tastaturkennworts an. Der Arrayeintrag in der Eigenschaft »InitialLoadInfo«, der die Daten zum Starten des aktuellen Betriebssystems enthält. Die Eigenschaft »Manufacturer« gibt den Hersteller des Computers an. Beispiel: Acme Die Eigenschaft »Model« gibt den Modellnamen des Computers an. Einschränkungen: Wert erforderlich. Die geerbte Eigenschaft »Name« dient als Schlüssel einer CIM_SystemInstanz in einer Organisationsumgebung.
B.40 Win32_ComputerSystem NameFormat
NetworkServerModeEnabled
NumberOfProcessors
OEMLogoBitmap OEMStringArray
PauseAfterReset
PowerManagementCapabilities
485
Das CIM_System-Objekt und seine abgeleiteten Funktionen sind Objekte der obersten Ebene von CIM, die den Bereich für zahlreiche Komponenten definieren. Eindeutige CIM-Systemschlüssel sind erforderlich. Zum Erstellen des Computersystemnamens wird eine Heuristik definiert, um immer den gleichen Namen zu generieren. Es wird empfohlen, die Heuristik zu verwenden. Die Eigenschaft »NameFormat« gibt an, wie der Systemname mit einer Heuristik generiert wurde. Die Heuristik wird in der Spezifikation »CIM V2 Common Model« beschrieben. In »NameFormat« wird die Reihenfolge zum Zuordnen des Computersystemnamens definiert. Der mit der Heuristik erstellte Name ist der Schlüsselwert des Systems. Es können andere Namen zugeordnet und verwendet werden. Die Eigenschaft »NetworkServerModeEnabled« legt fest, ob der Netzwerkservermodus aktiviert ist. Werte: TRUE oder FALSE. TRUE gibt an, daß der Netzwerkservermodus aktiviert ist. Die Eigenschaft »NumberOfProcessors« gibt die Anzahl der verfügbaren aktivierten Prozessoren an, nicht die gesamten Prozessoren im System. Die verfügbaren Prozessoren können bestimmt werden, indem die Anzahl der dem Computersystemobjekt zugeordneten Prozessorinstanzen mit »Win32_ComputerSystemProcessor« aufgelistet werden. Das Array »OEMLogoBitmap« enthält die Daten für eine vom OEM erstellte Bitmap. Diese Struktur enthält vom OEM definierte formfreie Zeichenfolgen. Beispiel: Teilenummern für Referenzdokumente, Kontaktinformationen, usw. Die Eigenschaft »PauseAfterReset« gibt die Zeitverzögerung für den Neustart an. Sie wird nach einem Energiezyklus, einem Neustart (lokal oder remote) und einem automatischen Neustart verwendet. Der Wert -1 gibt an, daß der Verzögerungswert unbekannt ist. Gibt die energiespezifischen Funktionen eines Computersystems und des Betriebssystems an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein System seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann.
486
Anhang B: WMI Klassenreferenz
PowerManagementSupported
PowerOnPasswordStatus PowerState
PowerSupplyState PrimaryOwnerContact PrimaryOwnerName ResetCapability
ResetCount
ResetLimit Roles Status
SupportContactDescription
Boolescher Wert, der angibt, daß die Energieverwaltung vom Betriebssystem unterstützt wird. Dieser Wert zeigt nicht an, daß die Energieverwaltungsfunktionen aktiviert sind, sondern nur, daß das System über die entsprechenden Funktionen verfügt. Die Eigenschaft »PowerOnPasswordStatus« gibt die Hardwaresicherheitseinstellungen für den Status des Reaktivierungskennworts an. Gibt den aktuellen Energiestatus des Computersystems und des Betriebssystems an. Dieser wird wie folgt definiert: Der Wert 4 (Unbekannt) gibt an, daß sich das System im Energiesparmodus befindet, aber der genaue Status unbekannt ist. 2 (Niedriger Energiestatus) gibt an, daß sich das System im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist. 3 (Standby) gibt an, daß das System nicht funktioniert, aber schnell reaktiviert werden kann. 7 (Warnung) gibt an, daß sich das System sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »PowerSupplyState« gibt den Status der Stromversorgung des Gehäuses beim letzten Neustart an. Eine Zeichenfolge, die angibt, wie der primäre Systembesitzer erreicht werden kann; z.B. Rufnummer, E-Mailadresse, usw. Der Name des primären Systembesitzers. Bei Aktivierung (Wert = 4) kann das unitäre Computersystem über die Hardware (z.B. den Netzschalter) zurückgesetzt werden. Bei Deaktivierung (Wert = 3) ist das Zurücksetzen über die Hardware nicht zugelassen. Es können auch andere Werte für die Eigenschaft definiert werden: »Nicht implementiert« (5), »Andere« (1) und »Unbekannt« (2). Die Eigenschaft »ResetCount« gibt die Anzahl der automatischen Neustarts seit dem letzten manuellen Neustart an. Der Wert 1 gibt an, daß die Anzahl unbekannt ist. Die Eigenschaft »ResetLimit« gibt die Anzahl der aufeinander folgenden Neustarts an. Der Wert 1 gibt an, daß das Limit unbekannt ist. Eine Sammlung von Zeichenfolgen, die die Funktion des Systems in der IT-Umgebung angeben. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »SupportContactDescription« ist ein Array, das die Supportinformationen für das Win32-Computersystem enthält.
B.41 Win32_ComputerSystemProcessor SystemStartupDelay SystemStartupOptions SystemStartupSetting
SystemType ThermalState TotalPhysicalMemory UserName WakeUpType
487
Die Eigenschaft »SystemStartupDelay« gibt die Verzögerungszeit vor dem Starten des Betriebssystems an. Die Eigenschaft »SystemStartupOptions« gibt die Startoptionen des Win32-Computersystems an. Einschränkungen: Wert erforderlich Die Eigenschaft »SystemStartupSetting« gibt den Index des Standardstartprofils an. Gewöhnlich wird Null (0) zurückgegeben, da die Profilzeichenfolge beim Schreiben an den Anfang der Liste verschoben wird. Dadurch wird der Standardwert für Windows NT festgelegt. Die Eigenschaft »SystemType« gibt den Systemtyp an, der auf dem Win32-Computer ausgeführt wird. Einschränkungen: Wert erforderlich. Die Eigenschaft »ThermalState« gibt den thermischen Status des Gehäuses beim letzten Neustart an. Die Eigenschaft »TotalPhysicalMemory« gibt die Gesamtgröße des physikalischen Speichers an. Beispiel: 67108864 Die Eigenschaft »UserName« gibt den Namen des angemeldeten Benutzers an. Einschränkungen: Ein Wert ist erforderlich. Beispiel: johnsmith Die Eigenschaft »WakeUp« gibt das Ereignis an, das das System reaktiviert hat.
B.41 Win32_ComputerSystemProcessor GroupComponent PartComponent
Die Referenz »GroupComponent« stellt das Win32-Computersystem mit den Eigenschaften des Computersystems dar, auf dem der Prozessor ausgeführt wird. Die Referenz »PartComponent« stellt den Win32-Prozessor dar, der die Eigenschaften eines Prozessors des Computersystems enthält.
B.42 Win32_ComputerSystemProduct Caption Description IdentifyingNumber Name SKUNumber UUID
Vendor Version
Eine kurze Textbeschreibung (eine Zeile) des Produkts. Eine Textbeschreibung des Produkts. Produktidentifikation, z.B. eine serielle Softwarenummer oder die Nummer auf einem Hardwarechip. Hauptsächlich verwendeter Produktname. Produkt SKU-Informationen (Stock Keeping Unit). Die Eigenschaft »UUID« enthält die UUID (Universally Unique Identifier) für das Produkt. Eine UUID ist eine 128-Bit Kennung, die sich von anderen generierten UUIDs unterschiedet. Wenn keine UUID verfügbar ist, werden Nullen verwendet. Der Name des Produktherstellers; entspricht der Herstellereigenschaft im Produktobjekt im DMTF Solution Exchange Standard. Produktversionsinformationen; entspricht der Versionseigenschaft im Produktobjekt im DMTF Solution Exchange Standard.
488
Anhang B: WMI Klassenreferenz
B.43 Win32_Condition result as Integer = Invoke
Caption CheckID CheckMode
Condition
Description Feature Level Name SoftwareElementID SoftwareElementState TargetOperatingSystem Version
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde. Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Der Name zum Identifizieren der Softwarekomponente. Kennung für die Softwarekomponente. Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.44 Win32_CreateFolderAction result as Integer = Invoke
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde.
B.45 Win32_CurrentProbe ActionID Caption Description Direction
DirectoryName
Name SoftwareElementID SoftwareElementState TargetOperatingSystem Version
489
Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
B.45 Win32_CurrentProbe result as Integer = SetPowerState (PowerState as Integer, Time as Date/Time)
result as Integer = Reset
»SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energiesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
490
Anhang B: WMI Klassenreferenz
Accuracy
Availability
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName CurrentReading Description DeviceID ErrorCleared ErrorDescription
InstallDate
IsLinear LastErrorCode LowerThresholdCritical
LowerThresholdFatal
Gibt die Sensorgenauigkeit für die gemessene Eigenschaft plus/minus einem Hunderstel Prozent an. Der Wert der gemessenen physikalischen Eigenschaft wird anhand der Toleranz, der Auflösung und Genauigkeit berechnet. Die Genauigkeit ist davon abhängig, ob das Gerät linear über seinem dynamischen Bereich liegt. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Der aktuelle vom Sensor angegebene Wert. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den aktuellen Test kennzeichnet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Gibt an, daß der Sensor linear über seinem dynamischen Bereich liegt. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert.
B.45 Win32_CurrentProbe LowerThresholdNonCritical
MaxReadable MinReadable Name
NominalReading NormalMax NormalMin PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
Resolution
Status
491
Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert. »MaxReadable« gibt den größten Wert der gemessenen Eigenschaft an, der vom numerischen Sensor gelesen werden kann. »MinReadable« gibt den kleinsten Wert der gemessenen Eigenschaft an, der vom numerischen Sensor gelesen werden kann. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. »NominalReading« gibt den normalen bzw. erwarteten Wert für den numerischen Sensor an. »NormalMax« gibt den normalen maximalen Bereich für den numerischen Sensor an. »NormalMin« gibt den normalen minimalen Wert für den numerischen Sensor an. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. »Resolution« gibt die Sensorfunktion zum Beheben von Unterschieden in der gemessenen Eigenschaft an. Dieser Wert ist davon abhängig, ob das Gerät linear über seinem dynamischen Bereich liegt. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten
492
Anhang B: WMI Klassenreferenz
StatusInfo
SystemCreationClassName
SystemName
Tolerance
UpperThresholdCritical
UpperThresholdFatal
UpperThresholdNonCritical
wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Gibt die Sensortoleranz für die gemessene Eigenschaft an. Der Wert der gemessenen physikalischen Eigenschaft wird anhand der Toleranz, der Auflösung und Genauigkeit berechnet. Die Toleranz ist davon abhängig, ob das Gerät linear über seinem dynamischen Bereich liegt. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert.
B.46 Win32_DCOMApplication AppID Caption Description InstallDate Name
Die Eigenschaft »AppID« ist eine GUID (Globally Unique Identifier) für die DCOMAnwendung. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden.
B.47 Win32_DCOMApplicationAccessAllowedSetting Status
493
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.47 Win32_DCOMApplicationAccessAllowedSetting Element Setting
Die Referenz »Element« stellt die Funktion von Win32_DCOMApplication dar. Die Referenz »Setting« stellt die Funktion eines Benutzers dar, der auf eine unter Win32_DCOMApplication gruppierte Komponente zugreifen kann.
B.48 Win32_DCOMApplicationLaunchAllowedSetting Element Setting
Die Referenz »Element« stellt die Funktion von Win32_DCOMApplication dar. Die Referenz »Setting« stellt die Funktion eines Benutzers dar, der eine unter Win32_DCOMApplication gruppierte Komponente starten kann.
B.49 Win32_DCOMApplicationSetting AppID AuthenticationLevel
Caption CustomSurrogate
Die Eigenschaft »AppID« ist eine GUID (Globally Unique Identifier) für die DCOM-Anwendung. Die Eigenschaft »AuthenticationLevel« gibt die minimale Clientauthentifizierungsebene für den COM-Server an. Bei Null werden die Standardwerte verwendet. Authentifizierungsebenen: Keine – Es wird keine Authentifizierung ausgeführt. Verbinden – Die Authentifizierung wird nur ausgeführt, wenn der Client eine Beziehung mit der Anwendung einrichtet. Aufruf – Die Authentifizierung wird nur am Beginn eines Aufrufs ausgeführt, wenn die Anwendung eine Anforderung empfängt. Paket – Die Authentifizierung wird für alle vom Client empfangenen Daten ausgeführt. Paketintegrität – Alle zwischen dem Client und der Anwendung übertragenen Daten werden authentifiziert und überprüft. Paketsicherheit – Die Eigenschaften der anderen Authentifizierungsebenen werden verwendet, und alle Daten werden verschlüsselt. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Die Eigenschaft »CustomSurrogate« enthält den Namen eines angepaßten Surrogats, in dem die DCOM-Anwendung aktiviert wird. Wenn dieser Wert Null und der Schlüssel TRUE ist, gibt das System einen Surrogatprozeß an.
494
Anhang B: WMI Klassenreferenz
Description EnableAtStorageActivation
LocalService RemoteServerName RunAsUser ServiceParameters
SettingID UseSurrogate
Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »EnableAtStorageActivation« gibt an, ob die Instanz der DCOM-Anwendung den gespeicherten Status der Anwendung erhält oder mit dem Status, in dem die Anwendung zuerst initialisiert wurde, startet. Die Eigenschaft »LocalService« enthält den Namen des Dienstes der DCOMAnwendung. Die Eigenschaft »RemoteServerName« gibt den Namen des Remoteservers mit der aktivierten Anwendung an. Die Eigenschaft »RunAsUser« gibt an, ob die Anwendung beim Aktivieren unter einem bestimmten Benutzerkonto ausgeführt wird. Die Eigenschaft »ServiceParameters« enthält die an die DCOM-Anwendung übergebenen Befehlszeilenparameter. Diese Eigenschaft ist nur gültig, wenn die Anwendung als Win32-Dienst geschrieben wurde. Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »UseSurrogate« gibt an, ob die DCOM-Anwendung als deaktivierter Server aktiviert werden kann.
B.50 Win32_DMAChannel AddressSize
Availability BurstMode ByteMode
Caption ChannelTiming CreationClassName
CSCreationClassName CSName Description DMAChannel InstallDate
Eine ganze Zahl, die die Adressengröße des DMA-Kanals in Bits angibt. Zulässige Werte sind 8, 16, 32 oder 64 Bits. Geben Sie 0 ein, wenn die Größe unbekannt ist. Die Eigenschaft »Availability« gibt die Verfügbarkeit der DMA an. Gibt an, ob der Burstmodus vom DMA-Kanal unterstützt wird. Gibt an, ob DMA im »In Bytes«-Modus (Wert=4) ausgeführt werden kann oder nicht (Wert=3). Es können auch »Andere« (1) und »Unbekannt« (2) definiert werden. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. DMA-Kanalzeiten. Z.B. können »Typ A« (Wert =4) oder »Typ F« (6) angegeben werden. »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Der Erstellungsklassenname des bereichsdefinierenden Computersystems. Der Name des bereichsdefinierenden Computersystems. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Teil des Objektschlüsselwerts, DMA-Kanalnummer. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein.
B.51 Win32_DependentService MaxTransferSize
495
Die maximale Byteanzahl, die von diesem DMA-Kanal übertragen werden kann. Geben Sie 0 ein, wenn die Anzahl unbekannt ist. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »Port« gibt den vom Hostbusadapter verwendeten DMAAnschluß an. Diese Angabe ist für einen MCA-Bustyp erforderlich. Beispiel: 12 Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Ein Array, das die vom DMA-Kanal unterstützte Übertragungsbreite in Bits angibt. Geben Sie 0 ein, wenn der Wert unbekannt ist. Gibt an, ob C-Burstzeiten unterstützt werden (Wert=5) oder nicht (Wert=4). Es können auch »Andere« (1), »Unbekannt« (2) und »ISA-kompatibel« (3) definiert werden. Gibt an, ob DMA im »In Words«-Modus (Wert=4) ausgeführt werden kann oder nicht (Wert=3). Es können auch »Andere« (1) und »Unbekannt« (2) definiert werden.
Name
Port Status
TransferWidths TypeCTiming
WordMode
B.51 Win32_DependentService Antecedent Dependent TypeOfDependency
Die Referenz »Antecedent« stellt den Win32-Basisdienst dar, der den Basisdienst enthält, der von der Eigenschaft »Dependent« in dieser Klasse abhängig ist. Die Referenz »Dependent« stellt den Win32-Basisdienst dar, der einen Basisdienst enthält, der von der Eigenschaft »Antecedent« in dieser Klasse abhängig ist. Der Typ der Dienstabhängigkeit. Diese Eigenschaft beschreibt, ob der zugeordnete Dienst abgeschlossen (Wert=2), gestartet (3) oder nicht gestartet (4) sein muß, um ausgeführt werden zu können.
B.52 Win32_Desktop BorderWidth Caption
Die Eigenschaft »BorderWidth« legt die Rahmenbreite für alle Fenster mit einstellbaren Rahmen fest. Beispiel: 3. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«.
496
Anhang B: WMI Klassenreferenz
CoolSwitch
CursorBlinkRate Description DragFullWindows
GridGranularity
IconSpacing IconTitleFaceName IconTitleSize IconTitleWrap
Name Pattern ScreenSaverActive
ScreenSaverExecutable ScreenSaverSecure
ScreenSaverTimeout SettingID Wallpaper WallpaperStretched
Die Eigenschaft »CoolSwitch« gibt an, ob die schnelle Programmumschaltung aktiviert ist. Die Programmumschaltung ermöglicht das Wechseln von Fenstern mit der Tastenkombination ALT+TAB. Die Eigenschaft »CursorBlinkRate« gibt die Cursorblinkgeschwindigkeit an. Beispiel: 530. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »DragFullWindows« gibt an, ob der Fensterinhalt beim Verschieben des Fensters angezeigt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß der Fensterinhalt beim Verschieben angezeigt wird. Die Eigenschaft »GridGranularity« gibt die Rasterweite für Fenster auf dem Desktop an, um das Organisieren von Fenstern zu vereinfachen. Das Raster wird normalerweise vom Benutzer nicht bemerkt. Beispiel: 1. Die Eigenschaft »IconSpacing« legt den Abstand zwischen Symbolen fest. Beispiel: 75 Die Eigenschaft »IconTitleFaceName« gibt die Schriftart für die Symbolnamen an. Beispiel: MS San Serif. Die Eigenschaft »IconTitleSize« gibt den Schriftgrad für Symbole an. Beispiel: 9. Die Eigenschaft »IconTitleWrap« gibt an, ob der Symboltitel in die nächste Zeile umgebrochen wird. Werte: TRUE oder FALSE. TRUE gibt an, daß der Titel umgebrochen wird. Die Eigenschaft »Name« gibt den Namen des aktuellen Desktopprofils an. Beispiel: MainProf Die Eigenschaft »Pattern« gibt den Namen des Hintergrundmusters für den Desktop an. Die Eigenschaft »ScreenSaverActive« gibt an, ob der Bildschirmschoner aktiv ist. Werte: TRUE oder FALSE. TRUE gibt an, daß der Bildschirmschoner aktiv ist. Die Eigenschaft »ScreenSaverExecutable« gibt den Namen der aktuellen Bildschirmschonerdatei an. Beispiel: LOGON.SCR. Die Eigenschaft »ScreenSaverSecure« legt fest, ob das Kennwort für den Bildschirmschoner aktiviert ist. Werte: TRUE oder FALSE. TRUE gibt an, daß das Bildschirmschonerkennwort aktiviert ist. Die Eigenschaft »ScreenSaverTimeout« gibt den Zeitraum an, bevor der Bildschirmschoner gestartet wird. Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »Wallpaper« gibt den Dateinamen für das Hintergrundbild des Desktops an. Beispiel: WINNT.BMP Die Eigenschaft »WallpaperStretched« gibt an, ob das Hintergrundbild gestreckt wird, um den gesamten Bildschirm auszufüllen. Microsoft Plus! muß installiert werden, damit diese Option verfügbar ist. Werte: TRUE oder FALSE. TRUE gibt an, daß das Hintergrundbild gestreckt ist. FALSE gibt an, daß die ursprünglichen Abmessungen des Hintergrundbilds auf dem Desktophintergrund beibehalten werden.
B.53 Win32_DesktopMonitor WallpaperTiled
497
Die Eigenschaft »WallpaperTiled« gibt an, ob das Hintergrundbild nebeneinander oder zentriert angezeigt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß das Hintergrundbild nebeneinander angezeigt wird.
B.53 Win32_DesktopMonitor result as Integer = SetPowerState (PowerState as Integer, Time as Date/Time)
result as Integer = Reset
Availability
Bandwidth Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description
»SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energiesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Bandbreite des Monitors in MegaHertz. Geben Sie 0 ein, wenn der Wert unbekannt ist. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an.
498
Anhang B: WMI Klassenreferenz
DeviceID DisplayType ErrorCleared
ErrorDescription
InstallDate
IsLocked LastErrorCode MonitorManufacturer MonitorType Name
PixelsPerXLogicalInch PixelsPerYLogicalInch PNPDeviceID PowerManagementCapabilities
Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den Desktopmonitor eindeutig kennzeichnet. Beispiel: DesktopMonitor1 In dieser Eigenschaft kann der Typ des Desktopmonitors, z.B. Multiscan oder Monochrom (Wert 2 oder 3), angegeben werden. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Gibt an, ob das Gerät gesperrt ist, um die Benutzereingabe oder -ausgabe zu verhindern. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »MonitorManufacturer« gibt den Hersteller des Monitors an. Beispiel: NEC Die Eigenschaft »MonitorType« gibt den Typ des Monitors an. Beispiel: NEC 5FGp Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »PixelsPerXLogicalInch« gibt die Auflösung entlang der X-Achse (horizontal) des Bildschirms an. Die Eigenschaft »PixelsPerYLogicalInch« gibt die Auflösung entlang der Y-Achse (vertikal) des Bildschirms an. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann.
B.54 Win32_DeviceBus PowerManagementSupported
499
Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht daß die Energieverwaltungsfunktionen aktiviert sind. Bildschirmkoordinaten für die logische Anzeigehöhe. Bildschirmkoordinaten für die logische Anzeigebreite. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
ScreenHeight ScreenWidth Status
StatusInfo
SystemCreationClassName
SystemName
B.54 Win32_DeviceBus Antecedent Dependent
Die Referenz »Antecedent« stellt die Eigenschaften des Systembus dar, der vom logischen Gerät verwendet wird. Die Referenz »Dependent« stellt die Eigenschaften des logischen Geräts dar, das den Systembus verwendet.
500
Anhang B: WMI Klassenreferenz
B.55 Win32_DeviceMemoryAddress Caption CreationClassName
CSCreationClassName CSName Description EndingAddress InstallDate
MemoryType Name
StartingAddress
Status
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Der Erstellungsklassenname des bereichsdefinierenden Computersystems. Der Name des bereichsdefinierenden Computersystems. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »EndingAddress« enthält die letzte Adresse der im Speicher abgebildeten E/A. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »MemoryType« gibt die Merkmale der Speicherressource in einem Win32-System an. Beispiel: Lesen/Schreiben. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »StartingAddress« enthält die erste Adresse der im Speicher abgebildeten E/A. Dieser Wert sollte für die Hardwareressourcenkennung verwendet werden, um den abgebildeten E/A-Ressourcenschlüssel zu erstellen. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.56 Win32_DeviceSettings Element Setting
Die Referenz »Element« stellt die Eigenschaften des logischen Geräts dar, für das die Einstellungen übernommen werden können. Die Referenz »Setting« stellt die Einstellungen dar, die für das logische Gerät übernommen werden können.
B.57 Win32_Directory
501
B.57 Win32_Directory result as Integer = TakeOwnerShip
result as Integer = ChangeSecurityPermissions (Option as Integer, SecurityDescriptor as CIM-Object)
result as Integer = Copy (FileName as String)
Die Methode »TakeOwnerShip« übernimt den Besitz der logischen Datei, die im Objektpfad angegeben ist. Wenn die logische Datei ein Verzeichnis ist, übernimt die Methode den Besitz aller Dateien und Unterverzeichnisse, die im Verzeichnis enthaltenen sind. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFSDateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »ChangeSecurityPermissions« ändert die Sicherheitsrechte für die im Objektpfad angegebene logische Datei. Wenn die logische Datei ein Verzeichnis ist, werden die Sicherheitsrechte aller im Verzeichnis enthaltener Dateien und Unterverzeichnisse geändert. Die Methode gibt den Wert 0 zurück, wenn die Rechte geändert wurden. Jeder andere Wert zeigt einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Copy« kopiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist, in das im Eingabeparameter festgelegte Verzeichnis. Der Wert 0 wird zurückgegeben, wenn die Datei kopiert wurde. Andere Werte zeigen einen Fehler an. Das Kopieren wird nicht unterstützt, wenn eine vorhandene Datei überschrieben werden muß. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
502
Anhang B: WMI Klassenreferenz
result as Integer = Rename(FileName as String)
result as Integer = Delete
result as Integer = Compress
result as Integer = Uncompress
Die Methode »Rename« benennt die logische Datei (oder das Verzeichnis) um, die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei umbenannt wurde. Andere Werte zeigen einen Fehler an. Die Umbenennung wird nicht unterstützt, wenn das Ziel ein anderes Laufwerk ist oder eine vorhandene Datei überschrieben werden muß. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Delete« löscht die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei gelöscht wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Compress« komprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei komprimiert wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Uncompress« dekomprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei dekomprimiert wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
B.57 Win32_Directory result as Integer = TakeOwnerShipEx (Recursive as Boolean, StartFileName as String)
result as Integer = ChangeSecurityPermissionsEx (Option as Integer, Recursive as Boolean, SecurityDescriptor as CIM-Object, StartFileName as String)
result as Integer = CopyEx (FileName as String, Recursive as Boolean, StartFileName as String)
503
Die Methode »TakeOwnerShipEx« übernimt den Besitz der logischen Datei, die im Objektpfad angegeben ist. Wenn die logische Datei ein Verzeichnis ist, übernimt die Methode den Besitz aller Dateien und Unterverzeichnisse, die im Verzeichnis enthaltenen sind. Der Wert 0 wird zurückgegeben, wenn der Vorgang erfolgreich beendet wurde. Andere Werte zeigen einen Fehler an. »TakeOwnerShipEx« ist eine erweiterte Version der Methode »TakeOwnerShip«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »ChangeSecurityPermissionsEx« ändert die Sicherheitsrechte für die im Objektpfad angegebene logische Datei. Wenn die logische Datei ein Verzeichnis ist, werden die Sicherheitsrechte aller im Verzeichnis enthaltener Dateien und Unterverzeichnisse geändert. Die Methode gibt den Wert 0 zurück, wenn die Rechte geändert wurden. Jeder andere Wert zeigt einen Fehler an. »ChangeSecurityPermissionsEx« ist eine erweiterte Version der Methode »ChangeSecurityPermissions«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFSDateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »CopyEx« kopiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist, in das im Parameter »FileName« festgelegte Verzeichnis. Der Wert 0 wird zurückgegeben, wenn die Datei kopiert wurde. Andere Werte zeigen einen Fehler an. Das Kopieren wird nicht unterstützt, wenn eine vorhandene Datei überschrieben werden muß. »CopyEx« ist eine erweiterte Version der Methode »Copy«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
504
Anhang B: WMI Klassenreferenz
result as Integer = DeleteEx (StartFileName as String)
result as Integer = CompressEx(Recursive as Boolean, StartFileName as String)
result as Integer = UncompressEx(Recursive as Boolean, StartFileName as String)
result as Boolean = GetEffectivePermission (Permissions as Integer) AccessMask
Die Methode »DeleteEx« löscht die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei gelöscht wurde. Andere Werte zeigen einen Fehler an. »DeleteEx« ist eine erweiterte Version der Methode »Delete«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »CompressEx« komprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei komprimiert wurde. Andere Werte zeigen einen Fehler an. »CompressEx« ist eine erweiterte Version der Methode »Compress«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »UncompressEx« dekomprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei dekomprimiert wurde. Andere Werte zeigen einen Fehler an. »UncompressEx« ist eine erweiterte Version der Methode »Uncompress«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »GetEffectivePermission« bestimmt, ob der Aufrufer über die vom Argument »Permission« angegebenen zusammengesetzten Berechtigungen für das Dateiobjekt und ggf. die Freigabe verfügt, auf der sich die Datei oder das Verzeichnis befindet. Die Eigenschaft »AccessMask« ist ein Bitarray, das die Zugriffsrechte für die Datei oder das Verzeichnis des Benutzers oder der Gruppe darstellt, für die die Instanz zurückgegeben wird. Diese Eigenschaft wird nur in Windows NT und Windows 2000 unterstützt. Auf Windows 98 und Windows NT/2000 FAT-Datenträgern wird FULL_ACCESS zurückgegeben, da keine Objektsicherheit festgelegt ist.
B.57 Win32_Directory Archive Caption Compressed CompressionMethod
CreationClassName CreationDate CSCreationClassName CSName Description Drive EightDotThreeFileName Encrypted EncryptionMethod
Extension FileName FileSize FileType FSCreationClassName FSName Hidden
505
Die Eigenschaft »Archive« ist ein boolescher Wert, der angibt, ob die Datei archiviert werden soll. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Compressed« ist ein boolescher Wert, der angibt, daß die Datei komprimiert ist. Die Eigenschaft »CompressionMethod« ist eine formfreie Zeichenfolge, die den Algorithmus oder das Programm zum Komprimieren der logischen Datei angibt. Wenn es nicht möglich ist, das Komprimierungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob die logische Datei komprimiert ist. »Komprimiert«, wenn die Datei komprimiert ist, aber das Komprimierungsschema unbekannt ist. »Nicht komprimiert«, wenn die logische Datei nicht komprimiert ist. Die Eigenschaft »CreationClassName« gibt den Klassennamen an. Die Eigenschaft »CreationDate« gibt das Erstellungsdatum der Datei an. Die Eigenschaft »CSCreationClassName« gibt die Klasse des Computersystems an. Die Eigenschaft »CSName« gibt den Namen des Computersystems an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »Drive« gibt den Laufwerkbuchstaben (einschließlich Doppelpunkt) der Datei an. Beispiel: c: Die Eigenschaft »EightDotThreeFileName« gibt den DOS-kompatiblen Namen der Datei an. Beispiel: c:\progra~1 Die Eigenschaft »Encrypted« ist ein boolescher Wert, der angibt, daß die Datei verschlüsselt ist. Die Eigenschaft »EncryptionMethod« ist eine formfreie Zeichenfolge, die den Algorithmus oder das Programm zum Verschlüsseln der logischen Datei angibt. Wenn es z.B. aus Sicherheitsgründen nicht möglich ist, das Verschlüsselungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob die logische Datei verschlüsselt ist. »Verschlüsselt«, wenn die Datei verschlüsselt ist, aber das Verschlüsselungsschema unbekannt ist. »Nicht verschlüsselt«, wenn die logische Datei nicht verschlüsselt ist. Die Eigenschaft »Extension« gibt die Erweiterung der Datei ohne Punkt an. Beispiel: txt, mof, mdb. Die Eigenschaft »FileName« gibt den Namen der Datei ohne Erweiterung an. Beispiel: autoexec Die Eigenschaft »FileSize« gibt die Datengröße in Bytes an. Die Eigenschaft »FileType« stellt den in der Eigenschaft »Extension« angegebenen Dateityp dar. Die Eigenschaft »FSCreationClassName« gibt die Klasse des Dateisystems an. Die Eigenschaft »FSName« gibt den Namen des Dateisystems an. Die Eigenschaft »Hidden« ist ein boolescher Wert, der angibt, ob die Datei versteckt ist.
506
Anhang B: WMI Klassenreferenz
InstallDate
InUseCount LastAccessed LastModified Name
Path Readable Status
System Writeable
Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InUseCount« gibt die Anzahl der geöffneten Instanzen einer Datei an. Die Eigenschaft »LastAccessed« gibt an, wann zuletzt auf die Datei zugegriffen wurde. Die Eigenschaft »LastModified« gibt an, wann die Datei zuletzt geändert wurde. Die Eigenschaft »Name« gibt den vererbten Namen an, der als Schlüssel einer logischen Datei innerhalb eines Dateisystems dient. Es müssen vollständige Pfadnamen angegeben werden. Beispiel: c:\winnt\system\win.ini Die Eigenschaft »Path« gibt den Pfad der Datei an, einschließlich umgekehrter Schrägstriche am Anfang und am Ende. Beispiel: \windows\system\ Die Eigenschaft »Readable« ist ein boolescher Wert, der angibt, ob die Datei gelesen werden kann. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »System« ist ein boolescher Wert, der angibt, ob die Datei eine Systemdatei ist. Die Eigenschaft »Writeable« ist ein boolescher Wert, der angibt, ob die Datei geschrieben werden kann.
B.58 Win32_DirectorySpecification result as Integer = Invoke
Caption CheckID
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde. Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren.
B.59 Win32_DiskDrive CheckMode
DefaultDir
Description Directory DirectoryPath
DirectoryType Name SoftwareElementID SoftwareElementState TargetOperatingSystem Version
507
Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Die Eigenschaft »DirectoryPath« gibt den Namen eines Verzeichnisses an. Der von einem Programmhersteller angegebene Wert ist ein standardmäßiger oder empfohlener Pfadname. Der Wert kann für eine bestimmte Umgebung geändert werden. Die Eigenschaft »DirectoryType« gibt den zu beschreibenden Verzeichnistyp an. Der Name zum Identifizieren der Softwarekomponente. Kennung für die Softwarekomponente. Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.59 Win32_DiskDrive result as Integer = SetPowerState(PowerState as Integer, Time as Date/Time)
»SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energiesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
508
Anhang B: WMI Klassenreferenz
result as Integer = Reset
Availability
BytesPerSector Capabilities
CapabilityDescriptions
Caption CompressionMethod
ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName DefaultBlockSize Description DeviceID ErrorCleared
Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »BytesPerSector« gibt die Anzahl der Bytes in jedem Sektor des physikalischen Laufwerks an. Beispiel: 512 Funktionen des Geräts für den Medienzugriff. Wenn das Gerät z.B. »Zufälliger Zugriff«, »Austauschbare Medien« und »Automatische Reinigung« unterstützt, werden die Werte 3, 7 und 9 in das Datenfeld geschrieben. Formfreie Zeichenfolgen mit genaueren Erklärungen zu den im Datenfeld »Capabilities« angezeigten Funktionen des Geräts für den Medienzugriff. Jeder Eintrag in diesem Array bezieht sich auf den Eintrag im Datenfeld »Capabilities« unter dem gleichen Index. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Eine formfreie Zeichenfolge, die den Algorithmus oder das Programm angibt, der bzw. das die Komprimierung unterstützt. Wenn es nicht möglich ist, das Komprimierungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob das Gerät die Komprimierung unterstützt. »Komprimiert«, wenn das Gerät die Komprimierung unterstützt, aber das Komprimierungsschema unbekannt ist. »Nicht komprimiert«, wenn das Gerät die Komprimierung nicht unterstützt. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Standardblockgröße für das Gerät in Bytes. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das Laufwerk von anderen Geräten im System unterscheidet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist.
B.59 Win32_DiskDrive ErrorDescription
ErrorMethodology Index
InstallDate
InterfaceType LastErrorCode Manufacturer MaxBlockSize MaxMediaSize MediaLoaded
MediaType MinBlockSize Model Name
NeedsCleaning
NumberOfMediaSupported
Partitions
PNPDeviceID
509
Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die formfreie Zeichenfolge »ErrorMethodology« beschreibt den Typ der Fehlererkennung und -korrektur, der von diesem Gerät unterstützt wird. Die Eigenschaft »Index« gibt die physikalische Laufwerksnummer des angegebenen Laufwerks an. Der Wert 0xFF gibt an, daß das angegebene Laufwerk keinem physikalischen Laufwerk zugeordnet ist. Beispiel: 1 Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InterfaceType« gibt den Schnittstellentyp des physikalischen Laufwerks an. Beispiel: SCSI »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des Laufwerks an. Beispiel: Seagate Maximale Größe in Bytes des Mediums, auf das zugegriffen wird. Maximale Größe in KB des vom Gerät unterstützten Mediums. Die Eigenschaft »MediaLoaded« gibt an, ob das Medium geladen ist. Für Festplatten ist diese Eigenschaft immer TRUE. Werte: TRUE oder FALSE. TRUE gibt an, daß das Medium geladen ist. Die Eigenschaft »MediaType« gibt den Medientyp an, der von diesem Gerät verwendet wird. Beispiel: Wechseldatenträger Minimale Größe in Bytes des Mediums, auf das zugegriffen wird. Die Eigenschaft »Model« gibt die Modellnummer des Laufwerks an. Beispiel: ST32171W Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Boolescher Wert, der angibt, daß das Laufwerk gereinigt werden muß. In der Eigenschaft »Capabilities« wird angegeben, ob eine automatische oder manuelle Reinigung möglich ist. Wenn das Gerät für den Medienzugriff mehrere individuelle Medien unterstützt, gibt diese Eigenschaft die maximale Medienanzahl an, die unterstützt oder eingelegt werden kann. Die Eigenschaft »Partitions« gibt die Anzahl der Partitionen auf dem physikalischen Laufwerk an, die vom Betriebssystem erkannt werden. Beispiel: 2 Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
510
Anhang B: WMI Klassenreferenz
PowerManagementCapabilities
PowerManagementSupported
SCSIBus SCSILogicalUnit SCSIPort SCSITargetId SectorsPerTrack Size
Status
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »SCSIBus« gibt die SCSI-Busnummer des Laufwerks an. Beispiel: 0 Die Eigenschaft »SCSILogicalUnit« gibt die SCSI LUN (Logical Unit Number) des Laufwerks an. Beispiel: 0 Die Eigenschaft »SCSIPort« gibt die SCSI-Anschlußnummer des Laufwerks an. Beispiel: 0 Die Eigenschaft »SCSITargetId« gibt die SCSI-Kennung des Laufwerks an. Beispiel: 0. Die Eigenschaft »SectorsPerTrack« gibt die Anzahl der Sektoren in jeder Spur des physikalischen Laufwerks an. Beispiel: 63 Die Eigenschaft »Size« gibt die Größe des Laufwerks an. Diese wird durch Multiplizieren aller Zylinder, der Spuren in den Zylindern, der Sektoren in den Spuren und den Bytes in den Sektoren berechnet. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.59 Win32_DiskDrive StatusInfo
SystemCreationClassName
SystemName
TotalCylinders
TotalHeads
TotalSectors
TotalTracks
TracksPerCylinder
511
Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »TotalCylinders« gibt die Gesamtanzahl der Zylinder auf dem physikalischen Laufwerk an. Hinweis: Der Wert für diese Eigenschaft wird über die erweiterte Funktion von BIOS Interrupt 13h ermittelt. Der Wert ist möglicherweise ungenau, wenn das Laufwerk ein Übersetzungsschema verwendet, um Datenträger mit hoher Kapazität zu unterstützen. Fordern Sie beim Hersteller genaue Laufwerkspezifikationen an. Beispiel: 657 Die Eigenschaft »TotalHeads« gibt die Gesamtanzahl der Köpfe auf dem Laufwerk an. Hinweis: Der Wert für diese Eigenschaft wird über die erweiterte Funktion von BIOS Interrupt 13h ermittelt. Der Wert ist möglicherweise ungenau, wenn das Laufwerk ein Übersetzungsschema verwendet, um Datenträger mit hoher Kapazität zu unterstützen. Fordern Sie beim Hersteller genaue Laufwerkspezifikationen an. Die Eigenschaft »TotalSectors« gibt die Gesamtanzahl der Sektoren auf dem physikalischen Laufwerk an. Hinweis: Der Wert für diese Eigenschaft wird über die erweiterte Funktion von BIOS Interrupt 13h ermittelt. Der Wert ist möglicherweise ungenau, wenn das Laufwerk ein Übersetzungsschema verwendet, um Datenträger mit hoher Kapazität zu unterstützen. Fordern Sie beim Hersteller genaue Laufwerkspezifikationen an. Beispiel: 2649024 Die Eigenschaft »TotalTracks« gibt die Gesamtanzahl der Spuren auf dem physikalischen Laufwerk an. Hinweis: Der Wert für diese Eigenschaft wird über die erweiterte Funktion von BIOS Interrupt 13h ermittelt. Der Wert ist möglicherweise ungenau, wenn das Laufwerk ein Übersetzungsschema verwendet, um Datenträger mit hoher Kapazität zu unterstützen. Fordern Sie beim Hersteller genaue Laufwerkspezifikationen an. Beispiel: 42048 Die Eigenschaft »TracksPerCylinder« gibt die Anzahl der Spuren in jedem Zylinder auf dem physikalischen Laufwerk an. Hinweis: Der Wert für diese Eigenschaft wird über die erweiterte Funktion von BIOS Interrupt 13h ermittelt. Der Wert ist möglicherweise ungenau, wenn das Laufwerk ein Übersetzungsschema verwendet, um Datenträger mit hoher Kapazität zu unterstützen. Fordern Sie beim Hersteller genaue Laufwerkspezifikationen an. Beispiel: 64
512
Anhang B: WMI Klassenreferenz
B.60 Win32_DiskDriveToDiskPartition Antecedent Dependent
Die Referenz »Antecedent« stellt das Win32_DiskDrive dar, das die Eigenschaften des Laufwerks enthält, auf dem sich die Partition befindet. Die Referenz »Dependent« stellt die Win32-Datenträgerpartition mit den Eigenschaften einer Datenträgerpartition auf dem Laufwerk dar.
B.61 Win32_DiskPartition result as Integer = SetPowerState (PowerState as Integer, Time as Date/Time)
result as Integer = Reset
Access
Availability
»SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energiesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Eigenschaft »Access« gibt an, ob das Medium lesbar (Wert=1), beschreibbar (Wert=2) oder beides (Wert=3) ist. »Unbekannt« (0) kann ebenfalls definiert werden. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet.
B.61 Win32_DiskPartition BlockSize
Bootable
BootPartition
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID DiskIndex ErrorCleared
ErrorDescription
ErrorMethodology
HiddenSectors Index InstallDate
LastErrorCode
513
Größe der Speichererweiterungsblöcke in Byte. Geben Sie 1 ein, wenn die Größe unbekannt oder ein Blockkonzept ungültig ist (z.B. für zusammengesetzte Erweiterungen, Speicher oder logische Datenträger). Größe der Speichererweiterungsblöcke in Byte. Geben Sie 1 ein, wenn die Größe unbekannt oder ein Blockkonzept ungültig ist (z.B. für zusammengesetzte Erweiterungen, Speicher oder logische Datenträger). Die Eigenschaft »BootPartition« legt die aktive Partition fest. Die aktive Partition wird vom Betriebssystem zum Starten von der Festplatte verwendet. Werte: TRUE oder FALSE. TRUE gibt an, daß die Partition aktiv ist. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das Laufwerk und die Partition eindeutig kennzeichnet. Die Eigenschaft »DiskIndex« gibt die Indexnummer des Datenträgers mit der Partition an. Beispiel: 0. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die formfreie Zeichenfolge »ErrorMethodology« beschreibt den Typ der Fehlererkennung und -korrektur, der von dieser Speichererweiterung unterstützt wird. Die Eigenschaft »HiddenSectors« gibt die Anzahl der versteckten Sektoren in der Partition an. Beispiel: 63 Die Eigenschaft »Index« gibt die Indexnummer der Partition an. Beispiel: 1 Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an.
514
Anhang B: WMI Klassenreferenz
Name
NumberOfBlocks
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
PrimaryPartition
Purpose RewritePartition
Size
Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gesamtanzahl der aufeinander folgenden Blöcke. Jeder Block entspricht in der Größe dem in der Eigenschaft »BlockSize« angegebenen Wert. Die Gesamtgröße der Speichererweiterung kann berechnet werden, indem der Wert der Eigenschaft »BlockSize« mit dem Wert dieser Eigenschaft multipliziert wird. Wenn der Wert in »BlockSize« 1 ist, gibt diese Eigenschaft die Gesamtgröße der Speichererweiterung an. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht daß die Energieverwaltungsfunktionen aktiviert sind. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht daß die Energieverwaltungsfunktionen aktiviert sind. Formfreie Zeichenfolge, die das Medium und/oder seine Verwendung beschreibt. Die Eigenschaft »RewritePartition« gibt an, ob die Partitionsinformationen geändert wurden. Wenn eine Partition mit IOCTL_DISK_SET_DRIVE_LAYOUT geändert wird, wird mit diesem Mitglied bestimmt, welche Partition geändert wurde und neu geschrieben werden muß. Werte: TRUE oder FALSE. TRUE gibt an, daß die Partition neu geschrieben werden muß. Die Eigenschaft »Size« gibt die Gesamtgröße der Partition in Byte an. Beispiel: 1059045376
B.62 Win32_DisplayConfiguration StartingOffset Status
StatusInfo
SystemCreationClassName
SystemName
Type
515
Die Eigenschaft »StartingOffset« gibt den Startoffset (in Byte) der Partition. Beispiel: 32256 Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »Type« gibt den Partitionstyp an.
B.62 Win32_DisplayConfiguration BitsPerPel Caption Description DeviceName DisplayFlags
DisplayFrequency
Die Eigenschaft »BitsPerPel« gibt die Anzahl der Bits zum Darstellen der Farben in dieser Konfiguration (Bits pro Pixel) an. Beispiel: 8. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »DeviceName« gibt den Namen des Bildschirms an. Die Eigenschaft »DisplayFlags« gibt an, ob es sich um einen Farbmonitor ohne Zeilensprung handelt. Diese Eigenschaft enthält zwei Informationsbits über den Bildschirm. Die Eigenschaft »DisplayFrequency« gibt die vertikale Aktualisierungsrate des Bildschirms an. Die Aktualisierungsrate legt fest, wie oft der Bildschirm pro Sekunde neu gezeichnet wird.
516
Anhang B: WMI Klassenreferenz
DitherType
DriverVersion ICMIntent
ICMMethod
LogPixels
PelsHeight PelsWidth SettingID SpecificationVersion
Die Eigenschaft »DitherType« gibt den Farbmischungstyp des Bildschirms an. Diese Eigenschaft kann vordefinierte Werte von 1 bis 5 oder treiberdefinierte Werte von 6 bis 256 verarbeiten. S/W-Farbmischung ist eine spezielle Methode zum Definieren der Grenzen zwischen Schwarz-, Weiß- und Grauskalierungen. Diese Methode kann nicht auf Bilder (z.B. gescannte Fotos) mit kontinuierlichen Farbverläufen angewendet werden. Die Eigenschaft »DriverVersion« gibt die Version des Bildschirmtreibers an. Die Eigenschaft »ICMIntent« gibt den Wert einer der drei möglichen ICMMethoden an, die standardmäßig verwendet werden sollten. Diese Eigenschaft wird hauptsächlich für Nicht-ICM-Anwendungen verwendet. Diese Eigenschaft kann vordefinierte Werte von 1 bis 3 und treiberdefinierte Werte von 4 bis 256 verarbeiten. Die Eigenschaft »ICMMethod« gibt die Verwendung von ICM an. Für NichtICM-Anwendungen gibt diese Eigenschaft an, ob ICM aktiviert oder deaktiviert ist. Die Eigenschaft »LogPixels« enthält die Pixelanzahl pro logischem Zoll. Diese Eigenschaft ist nur mit Geräten gültig, die mit Pixeln arbeiten (das schließt z.B. Drucker aus). Die Eigenschaft »PelsHeight« gibt die Höhe der anzeigbaren Oberfläche an. Die Eigenschaft »PelsWidth« gibt die Breite der anzeigbaren Oberfläche an. Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »SpecificationVersion« gibt die Versionsnummer der Initialisierungsdaten für den Win32-Bildschirm an.
B.63 Win32_DisplayControllerConfiguration BitsPerPixel Caption ColorPlanes
Description DeviceEntriesInAColorTable
Die Eigenschaft »BitsPerPixel« gibt die Anzahl der Bits zum Darstellen der Farben in dieser Konfiguration oder die Bits in jedem Pixel an. Beispiel: 8 Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Die Eigenschaft »ColorPlanes« gibt die aktuelle Anzahl der in der Bildschirmkonfiguration verwendeten Farbebenen an. Eine Farbebene ist eine Methode zum Darstellen der Pixelfarben. Anstatt jedem Pixel einen RGBWert zuzuweisen, wird die Grafik in die primären Farbkomponenten (Rot, Grün, Blau) aufgeteilt und in separaten Ebenen gespeichert. Diese Methode ermöglicht größer Farbtiefen auf 8- und 16-Bit Videosystemen. Die meisten Grafiksysteme verfügen über eine Bitbreite, die zum Speichern von Farbtiefeninformationen ausreicht; d.h. es ist nur eine Farbebene erforderlich. Beispiel: 1 Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »DeviceEntriesInAColorTable« gibt die Anzahl der Farbindizes in einer Farbtabelle eines Bildschirms an, wenn das Gerät eine Farbtiefe von höchstens 8 Bit pro Pixel hat. Für Geräte mit größeren Farbtiefen wird -1 zurückgegeben. Beispiel: 256
B.64 Win32_DriverVXD DeviceSpecificPens
517
Die Eigenschaft »DeviceSpecificPens« gibt die aktuelle Anzahl der gerätespezifischen Pens an. Der Wert 0xFFFFFFFF gibt an, daß das Gerät keine Pens unterstützt. Pens sind logische Eigenschaften, die Bildschirmen vom Bildschirmcontroller zugeordnet werden und zum Zeichnen von Linien, Polygonen und Text verwendet werden. Beispiel: 3 Die Eigenschaft »HorizontalResolution« gibt die aktuelle Pixelanzahl der Anzeige in horizontaler Richtung (X-Achse) an. Beispiel: 1024 Die Eigenschaft »Name« enthält den Namen des in dieser Konfiguration verwendeten Adapters. Die Eigenschaft »RefreshRate« gibt die Aktualisierungsrate des Videoadapters an. Die Werte 0 oder 1 geben eine Standardrate an. Der Wert -1 gibt eine optimale Rate an. Beispiel: 72 Die Eigenschaft »ReservedSystemPaletteEntries« gibt die aktuelle Anzahl der Farbindexeinträge an, die für das System reserviert sind. Dieser Wert ist nur für Einstellungen gültig, die eine indizierte Palette verwenden. Indizierte Paletten werden nicht für Farbtiefen über 8 Bits pro Pixel verwendet. Wenn die Farbtiefe 8 Bits pro Pixel überschreitet, ist dieser Wert Null. Beispiel: 20 Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »SystemPaletteEntries« gibt die aktuelle Anzahl der Farbindexeinträge an, die für das System reserviert sind. Dieser Wert ist nur für Einstellungen gültig, die eine indizierte Palette verwenden. Indizierte Paletten werden nicht für Farbtiefen über 8 Bits pro Pixel verwendet. Wenn die Farbtiefe 8 Bits pro Pixel überschreitet, ist dieser Wert Null. Beispiel: 20 Die Eigenschaft »VerticalResolution« gibt die aktuelle Pixelanzahl der Anzeige in vertikaler Richtung (Y-Achse) an. Beispiel: 768 Die Eigenschaft »VideoMode« enthält eine lesbare Beschreibung der aktuellen Bildschirmauflösung und der Farbeinstellung. Beispiel: 1024 X 768 mit 256 Farben.
HorizontalResolution Name RefreshRate
ReservedSystemPaletteEntries
SettingID SystemPaletteEntries
VerticalResolution VideoMode
B.64 Win32_DriverVXD BuildNumber Caption CodeSet Control
Die interne Kennung für die Kompilierung der Softwarekomponente. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Der von der Softwarekomponente verwendete Codesatz. Die Eigenschaft »Control« gibt die Offsetadresse für die Steuerungsprozeduren des Treibers an. Der virtuelle Gerätemanager ruft die Prozedur auf, um Steuerungsmeldungen an das virtuelle Gerätesystem zu senden. Die Systemsteuerungsmeldungen weisen das virtuelle Gerät zum Ausführen von Vorgängen an, z.B. zum Initialisieren oder zum Benachrichtigen von Geräteänderungen.
518
Anhang B: WMI Klassenreferenz
Description DeviceDescriptorBlock
IdentificationCode InstallDate LanguageEdition
Manufacturer Name OtherTargetOS
PM_API
SerialNumber ServiceTableSize SoftwareElementID
SoftwareElementState
Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceDescriptorBlock« gibt die Offsetadresse der DDBStruktur an. Die DDB (Device Descriptor Block) enthält Informationen, einschließlich der Interruptliste oder andere Daten für die Kommunikation mit diesem VXD, die das Betriebssystem verwendet, um Treiberprozeduren auszuführen. Der Wert dieser Eigenschaft gibt die Herstellerkennung der Softwarekomponente an, z.B. eine SKU (Stock Keeping Unit) oder eine Teilenummer. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Der Wert dieser Eigenschaft gibt die Sprachversion der Softwarekomponente an. Es sollten die in ISO 639 definierten Sprachcodes verwendet werden. Wenn es sich bei der Softwarekomponente um eine mehrsprachige oder internationale Version handelt, verwenden Sie die Multilingual-Zeichenfolge. Hersteller der Softwarekomponente Der Name zum Identifizieren der Softwarekomponente. Die Eigenschaft »OtherTargetOS« gibt den Hersteller und den Betriebssystemtyp einer Softwarekomponente an, wenn die Eigenschaft »TargetOperatingSystem« den Wert 1 (»Andere«) hat. Wenn die Eigenschaft »TargetOperatingSystem« den Wert »Andere« hat, darf der Wert der Eigenschaft »OtherTargetOS« nicht Null sein. Wenn die Eigenschaft »TargetOperatingSystem« einen anderen Wert hat, muß der Wert der Eigenschaft »OtherTargetOS« Null sein. »PM_API« gibt die Offsetadresse der API (Application Programming Interface) im geschützten Modus für die VXD an. Diese Funktionen ermöglichen Anwendungen den direkten Zugriff auf Funktionen der VXD. Die der Softwarekomponente zugewiesene serielle Nummer. Die Eigenschaft »ServiceTableSize« gibt die Anzahl der installierten Dienste und Gerätetreiberdienste des Betriebssystems an. Beispiel: 1024 Eine Kennung für die Softwarekomponente, die in Verbindung mit anderen Schlüsseln verwendet wird, um »CIM_SoftwareElement« eindeutig darzustellen. Der »SoftwareElementState« wird in diesem Modell festgelegt, um verschiedene Zustände eines Softwareelements während seiner Lebensdauer anzuzeigen. – Ein Softwareelement im einsetzbaren Status zeigt die erforderlichen Details zum Verteilen und die Bedingungen und Vorgänge an, die zum Erstellen eines Softwareelements im installierbaren Status (z.B. der nächsten Status) Vorraussetzung sind. – Ein Softwareelement im installierbaren Zustand zeigt die erforderlichen Details zum Installieren und die Bedingungen und Vorgänge an, die zum Erstellen eines Softwareelements im ausführbaren Status (z.B. der nächsten Status) Voraussetzung sind. – Ein Softwareelement im ausführbaren Status zeigt die erforderlichen Details zum Installieren und die Bedingungen und Vorgänge an, die zum Erstellen eines Softwareelements im ausführenden Status (z.B. der nächsten Status) Voraussetzung sind. – Ein Softwareelement im ausführenden Status zeigt die erforderlichen Details zum Überprüfen und Ausführen eines Startelements an.
B.65 Win32_DuplicateFileAction Status
TargetOperatingSystem
V86_API
Version
519
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »TargetOperatingSystem« ermöglicht das Festlegen der Betriebssystemumgebung. Die Version des Betriebssystems und die Architektur müssen angegeben werden, da der Wert dieser Eigenschaft die binäre Ausführung nicht sicherstellt. Diese Informationen ermöglichen die für eine Softwarekomponente erforderliche Betriebssystemebene eindeutig festzulegen. »V86_API« gibt die Offsetadresse der API (Application Programming Interface) für die Verwendung im virtuellen 8086-Modus an. Diese Funktionen ermöglichen Anwendungen den direkten Zugriff auf Funktionen der VXD. Die Eigenschaft »Version« gibt die Versionsnummer des VXD-Treibers an. Beispiel: 3,51
B.65 Win32_DuplicateFileAction result as Integer = Invoke
ActionID Caption DeleteAfterCopy Description Destination Direction
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Gibt an, ob die Quelldatei nach dem Kopiervorgang gelöscht wird. Eine Beschreibung des Objekts. Der vollqualifizierte Zieldateiname. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«.
520
Anhang B: WMI Klassenreferenz
FileKey
Name SoftwareElementID SoftwareElementState Source TargetOperatingSystem Version
Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. Der vollqualifizierte Quelldateiname. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
B.66 Win32_Environment Caption Description InstallDate Name
Status
SystemVariable
UserName
VariableValue
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« enthält den Namen einer Win32-Umgebungsvariablen. Eine Anwendung kann eine neue Umgebungsvariable erstellen, wenn der Name einer noch nicht vorhandenen Variablen angegeben wird. Beispiel: Path. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »SystemVariable« gibt an, ob die Variable eine Systemvariable ist. Eine Systemvariable wird vom Betriebssystem festgelegt und ist unabhängig von benutzerdefinierten Einstellungen. Werte: TRUE oder FALSE. TRUE gibt an, daß die Variable eine Systemvariable ist. Die Eigenschaft »UserName« gibt den Besitzer der Umgebungseinstellung an. Der Wert »« wird für Win32-Systemeinstellungen (im Gegensatz zu benutzerspezifischen Einstellungen) und der Wert »« für Standardeinstellungen verwendet. Beispiel: Jsmith. Die Eigenschaft »VariableValue« enthält die Platzhaltervariable einer Win32Umgebungsvariablen. Informationen wie das Dateisystemverzeichnis können sich zwischen Computern unterscheiden. Das Betriebssystem ersetzt diese durch Platzhalter. Beispiel: %SystemRoot%.
B.67 Win32_EnvironmentSpecification
521
B.67 Win32_EnvironmentSpecification result as Integer = Invoke
Caption CheckID CheckMode
Description Environment Name SoftwareElementID SoftwareElementState TargetOperatingSystem Value Version
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde. Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Der Name zum Identifizieren der Softwarekomponente. Kennung für die Softwarekomponente. Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.68 Win32_ExtensionInfoAction result as Integer = Invoke
ActionID Argument Caption
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist.
522
Anhang B: WMI Klassenreferenz
Command Description Direction
Extension
MIME Name ProgID ShellNew ShellNewValue SoftwareElementID SoftwareElementState TargetOperatingSystem Verb Version
Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Der dieser Erweiterung zugeordnete MIME-Typ. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
B.69 Win32_Fan result as Integer = SetPowerState (PowerState as Integer, Time as Date/Time)
result as Integer = Reset
»SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energiesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
B.69 Win32_Fan result as Integer = SetSpeed (DesiredSpeed as Integer)
ActiveCooling Availability
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DesiredSpeed
DeviceID ErrorCleared ErrorDescription
InstallDate
LastErrorCode Name
523
Fordert an, daß die Lüftergeschwindigkeit auf den im Eingabeparameter der Methode festgelegten Wert gesetzt wird. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Der boolesche Wert »ActiveCooling« gibt an, daß die Kühlgerät aktive Kühlung (im Gegensatz zu passiver Kühlung) unterstützt. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. »DesiredSpeed« gibt die angeforderte Lüftergeschwindigkeit in Drehungen pro Minute an, wenn eine variable Lüftergeschwindigkeit unterstützt wird (VariableSpeed = TRUE). Die aktuelle Geschwindigkeit wird über einen Sensor (CIM_Tachometer) bestimmt, der dem Lüfter in »CIM_AssociatedSensor« zugeordnet ist. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den Lüfter angibt. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden.
524
Anhang B: WMI Klassenreferenz
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
Status
StatusInfo
SystemCreationClassName
SystemName
VariableSpeed
Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Gibt an, ob der Lüfter unterschiedliche Geschwindigkeiten unterstützt.
B.70 Win32_FileSpecification
525
B.70 Win32_FileSpecification result as Integer = Invoke
Attributes
Caption
CheckID CheckMode
CheckSum CRC1 CRC2
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde. Integer containing bit flags representing file attributes (with the decimal value of each bit position in parentheses). See the remarks below for more information: Bit 0: Read Only (1) Bit 1: Hidden (2) Bit 2: System (4) Bit 8: Split (256) – the file is split between two or more compression cabinets Bit 9: Vital (512) – this file is vital for the proper operation of the component to which it belongs Bit 12: Permanent (4096) – the file will not be removed on uninstall Bit 13: Uncompressed (8192) – the file is uncompressed on the source media Bit 14: Patch (16384) (reserved for future use) Bit 15: PatchSourceIgnore (32768) – the file can be ignored during a patch upgrade if it is run-fromsource Integer containing bit flags representing file attributes (with the decimal value of each bit position in parentheses). See the remarks below for more information: Bit 0: Read Only (1) Bit 1: Hidden (2) Bit 2: System (4) Bit 8: Split (256) – the file is split between two or more compression cabinets Bit 9: Vital (512) – this file is vital for the proper operation of the component to which it belongs Bit 12: Permanent (4096) – the file will not be removed on uninstall Bit 13: Uncompressed (8192) – the file is uncompressed on the source media Bit 14: Patch (16384) (reserved for future use) Bit 15: PatchSourceIgnore (32768) – the file can be ignored during a patch upgrade if it is run-fromsource Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Die Eigenschaft »Checksum« ist die aus der 16-Bit-Summe der ersten 32 Bytes der Datei berechnete Prüfsumme. Die Eigenschaft »CRC1« ist der mit den mittleren 512 KB berechnete CRCWert. Die Eigenschaft »CRC2« ist der CRC-Wert für die mittleren 512 KB mit einem Offsetmodulo 3 zum Dateibeginn.
526
Anhang B: WMI Klassenreferenz
CreateTimeStamp Description FileID FileSize Language MD5Checksum
Name Sequence SoftwareElementID SoftwareElementState TargetOperatingSystem Version
Erstellungsdatum und -uhrzeit der Datei. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Liste der durch Kommas getrennten Sprachkennungen. Der MD5-Algorithmus berechnet eine 128-Bit-Prüfsumme für eine Datei oder ein Objekt. Da die Wahrscheinlichkeit, daß zwei unterschiedliche Dateien die gleiche MD5-Prüfsumme generieren, sehr gering ist, kann diese zum Erstellen einer eindeutigen Dateikennung verwendet werden. Wenn zwei Dateien die gleiche MD5-Prüfsumme besitzen, sind sie höchstwahrscheinlich identisch. Der MD5-Algorithmus generiert für die MOF-Spezifikation der MD5-Eigenschaft immer 32 Zeichen, z.B. generiert die Zeichenfolge abcdefghijklmnopqrstuvwxyz die Zeichenfolge c3fcd3d76192e4007dfb496cca 67e13b. Informationen über das Implementieren des MD5-Algorithmus finden Sie unter http://www. rsa.com/pub/rfc1321.txt. Der Name der Datei oder der Name der Datei mit einem Verzeichnispräfix. Sequence with respect to the media images; order must track cabinet order. Kennung für die Softwarekomponente. Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.71 Win32_FloppyController result as Integer = SetPowerState(PowerState as Integer, Time as Date/Time)
result as Integer = Reset
»SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energiesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
B.71 Win32_FloppyController Availability
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID ErrorCleared ErrorDescription
InstallDate
LastErrorCode Manufacturer MaxNumberControlled
Name
PNPDeviceID
527
Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den Diskettencontroller von anderen Geräten im System unterscheidet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des Diskettencontrollers an. Beispiel: Acme Maximale Anzahl der direkt adressierbaren Einheiten, die vom Controller unterstützt werden. Wenn der Wert unbekannt ist, geben Sie 0 ein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
528
Anhang B: WMI Klassenreferenz
PowerManagementCapabilities
PowerManagementSupported
ProtocolSupported Status
StatusInfo
SystemCreationClassName
SystemName
TimeOfLastReset
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Das vom Controller zum Zugriff auf gesteuerte Geräte verwendete Protokoll. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »TimeOfLastReset« gibt an, wann der Controller zuletzt zurückgesetzt (ausgeschalten oder erneut initialisiert) wurde.
B.72 Win32_FloppyDrive
529
B.72 Win32_FloppyDrive result as Integer = SetPowerState (PowerState as Integer, Time as Date/Time)
result as Integer = Reset
Availability
Capabilities
CapabilityDescriptions
Caption
»SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energiesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Funktionen des Geräts für den Medienzugriff. Wenn das Gerät z.B. »Zufälliger Zugriff«, »Austauschbare Medien« und »Automatische Reinigung« unterstützt, werden die Werte 3, 7 und 9 in das Datenfeld geschrieben. Formfreie Zeichenfolgen mit genaueren Erklärungen zu den im Datenfeld »Capabilities« angezeigten Funktionen des Geräts für den Medienzugriff. Jeder Eintrag in diesem Array bezieht sich auf den Eintrag im Datenfeld »Capabilities« unter dem gleichen Index. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an.
530
Anhang B: WMI Klassenreferenz
CompressionMethod
ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName DefaultBlockSize Description DeviceID ErrorCleared ErrorDescription
ErrorMethodology
InstallDate
LastErrorCode Manufacturer MaxBlockSize MaxMediaSize MinBlockSize Name
NeedsCleaning
NumberOfMediaSupported
PNPDeviceID
Eine formfreie Zeichenfolge, die den Algorithmus oder das Programm angibt, der bzw. das die Komprimierung unterstützt. Wenn es nicht möglich ist, das Komprimierungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob das Gerät die Komprimierung unterstützt. »Komprimiert«, wenn das Gerät die Komprimierung unterstützt, aber das Komprimierungsschema unbekannt ist. »Nicht komprimiert«, wenn das Gerät die Komprimierung nicht unterstützt. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Standardblockgröße für das Gerät in Byte. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das Diskettenlaufwerk von anderen Geräten im System unterscheidet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die formfreie Zeichenfolge »ErrorMethodology« beschreibt den Typ der Fehlererkennung und -korrektur, der von diesem Gerät unterstützt wird. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des Diskettenlaufwerks an. Beispiel: Acme Maximale Größe in Byte des Mediums, auf das zugegriffen wird. Maximale Größe in KB des vom Gerät unterstützten Mediums. Minimale Größe in Byte des Mediums, auf das zugegriffen wird. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Boolescher Wert, der angibt, daß das Laufwerk gereinigt werden muß. In der Eigenschaft »Capabilities« wird angegeben, ob eine automatische oder manuelle Reinigung möglich ist. Wenn das Gerät für den Medienzugriff mehrere individuelle Medien unterstützt, gibt diese Eigenschaft die maximale Medienanzahl an, die unterstützt oder eingelegt werden kann. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
B.72 Win32_FloppyDrive PowerManagementCapabilities
PowerManagementSupported
Status
StatusInfo
SystemCreationClassName
SystemName
531
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
532
Anhang B: WMI Klassenreferenz
B.73 Win32_FontInfoAction result as Integer = Invoke
ActionID Caption Description Direction
File
FontTitle
Name SoftwareElementID SoftwareElementState TargetOperatingSystem Version
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
B.74 Win32_Group Caption Description Domain InstallDate Name
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »Domain« gibt die Namen der Windows-Domäne an, zu der das Gruppenkonto gehört. Beispiel: NA-SALES Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« gibt den Namen des Win32-Gruppenkontos in der Domäne an, der vom Domänenmitglied der Klasse definiert wurde.
B.75 Win32_GroupUser SID
SIDType
Status
533
Die Eigenschaft »SID« enthält die SID (Security Identifier) für dieses Konto. Eine SID ist ein variabler Zeichenfolgenwert zum Identifizieren eines Vertrauensnehmers. Jedes Konto besitzt eine von einer Autorität (z.B. einer Windows-Domäne) ausgestellte eindeutige SID, die in einer Sicherheitsdatenbank gespeichert wird. Wenn sich ein Benutzer anmeldet, wird seine SID aus der Datenbank abgefragt und in das Zugriffstoken eingetragen. Anhand der SID im Zugriffstoken wird der Benutzer in allen nachfolgenden Interaktionen mit Windows-Sicherheit identifiziert. Wenn eine SID als eindeutige Kennung für einen Benutzer oder eine Gruppe verwendet wurde, kann sie nicht für einen anderen Benutzer bzw. eine andere Gruppe verwendet werden. Die Eigenschaft »SIDType« enthält Werte, die den SID-Typ angeben: SidTypeUser – Gibt eine Benutzer-SID an. SidTypeGroup – Gibt eine Gruppen-SID an. SidTypeDomain – Gibt eine Domänen-SID an. SidTypeAlias – Gibt eine Alias-SID an. SidTypeWellKnownGroup – Gibt eine SID für eine bekannte Gruppe an. SidTypeDeletedAccount – Gibt eine SID für ein gelöschtes Konto an. SidTypeInvalid – Gibt eine ungültige SID an. SidTypeUnknown – Gibt einen unbekannten SID-Typ an. SidTypeComputer – Gibt eine SID für einen Computer an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.75 Win32_GroupUser GroupComponent PartComponent
Die Referenz »GroupComponent« stellt eine Gruppe dar, von der das Konto ein Mitglied ist. Die Referenz »PartComponent« stellt einen Benutzer oder ein Systemkonto dar, der bzw. das Teil einer Gruppe oder eines Kontos ist.
B.76 Win32_HeatPipe »SetPowerState« definiert den gewünschten Energiestatus und den Zeitresult as Integer = SetPowerState(PowerState as In- punkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energieteger, Time as Date/Time) sparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
534
Anhang B: WMI Klassenreferenz
result as Integer = Reset
ActiveCooling Availability
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID ErrorCleared ErrorDescription
InstallDate
LastErrorCode Name
PNPDeviceID
Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Der boolesche Wert »ActiveCooling« gibt an, daß die Kühlgerät aktive Kühlung (im Gegensatz zu passiver Kühlung) unterstützt. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das Wärmerohr kennzeichnet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
B.76 Win32_HeatPipe PowerManagementCapabilities
PowerManagementSupported
Status
StatusInfo
SystemCreationClassName
SystemName
535
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
536
Anhang B: WMI Klassenreferenz
B.77 Win32_IDEController »SetPowerState« definiert den gewünschten Energiestatus und den Zeitresult as Integer = SetPowerState(PowerState as In- punkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Enerteger, Time as Date/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. ConfigManagerErrorCode Gibt den Fehlercode des Win32-Konfigurations-Managers an. ConfigManagerUserConfig Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. CreationClassName Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Description Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. DeviceID Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den SCSIController von anderen Geräten im System unterscheidet. ErrorCleared Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. ErrorDescription Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge.
B.77 Win32_IDEController InstallDate
LastErrorCode Manufacturer MaxNumberControlled Name
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
ProtocolSupported Status
537
Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des IDE-Controllers an. Maximale Anzahl der direkt adressierbaren Einheiten, die vom Controller unterstützt werden. Wenn der Wert unbekannt ist, geben Sie 0 ein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht daß die Energieverwaltungsfunktionen aktiviert sind. Das vom Controller zum Zugriff auf gesteuerte Geräte verwendete Protokoll. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
538
Anhang B: WMI Klassenreferenz
StatusInfo
SystemCreationClassName
SystemName
TimeOfLastReset
Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »TimeOfLastReset« gibt an, wann der Controller zuletzt zurückgesetzt (ausgeschalten oder erneut initialisiert) wurde.
B.78 Win32_IDEControllerDevice AccessState
Antecedent Dependent NegotiatedDataWidth
NegotiatedSpeed
NumberOfHardResets NumberOfSoftResets
Die Eigenschaft »AccessState« gibt an, ob der Controller das Gerät steuert oder darauf zugreift (Wert=1) oder nicht (Wert=2). Es kann auch der Wert »Unbekannt« (0) definiert werden. Diese Informationen sind erforderlich, wenn ein logisches Gerät von mehreren Controllern gesteuert werden kann. Die Referenz »Antecedent« stellt den dem Gerät zugeordneten IDEController dar. Die Referenz »Dependent« stellt das mit dem IDE-Controller verbundene logische CIM-Gerät dar. Wenn mehrere Bus- und/oder Verbindungsdatenbreiten möglich sind, definiert die Eigenschaft »NegotiatedDataWidth« die verwendete Datenbreite in Bits. Wenn die Datenbreite nicht ausgehandelt wurde oder diese Informationen nicht verfügbar sind, sollte der Wert der Eigenschaft 0 sein. Wenn mehrere Bus- und/oder Verbindungsgeschwindigkeiten möglich sind, definiert die Eigenschaft »NegotiatedSpeed« die verwendete Geschwindigkeit in Bits pro Sekunde. Wenn die Verbindungs- oder Busgeschwindigkeit nicht ausgehandelt wurde oder diese Informationen nicht verfügbar sind, sollte der Wert der Eigenschaft 0 sein. Anzahl der vom Controller ausgelösten Kaltstarts. Anzahl der vom Controller ausgelösten Warmstarts.
B.79 Win32_IRQResource Availability Caption
Verfügbarkeit der IRQ. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an.
B.79 Win32_IRQResource CreationClassName
CSCreationClassName CSName Description Hardware
InstallDate
IRQNumber Name
Shareable Status
TriggerLevel
TriggerType
Vector
539
»CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. »CSCreationClassName« enthält den Erstellungsklassennamen des bereichsdefinierenden Computersystems. »CSName« enthält den Namen des bereichsdefinierenden Computersystems. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »Hardware« gibt an, ob der Interrupt hardware- oder softwarebasiert ist. Ein Hardware-IRQ ist ein physikalisches Kabel vom Peripheriegerät zum PIC-Chip (Programmable Interrupt Controller) über den die CPU von zeitkritischen Ereignissen benachrichtigt werden kann. Einige IRQLeitungen sind für Standardgeräte, z.B. die Tastatur, Diskettenlaufwerke und die Systemuhr, reserviert. Ein Softwareinterrupt ermöglicht Anwendungen, den Prozessor zu benachrichtigen. Werte: TRUE oder FALSE. TRUE gibt an, daß der Interrupt hardwarebasiert ist. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Teil des Objektschlüsselwerts, IRQ-Nummer. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Boolescher Wert, der angibt, ob die IRQ freigegeben werden kann. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die IRQ-Ebene gibt an, ob der Interrupt von einem hohen (Wert=4) oder niedrigen (Wert=3) Hardwaresignal ausgelöst wird. Es können auch »Andere« (1) und »Unbekannt« (2) definiert werden. Der IRQ-Typ gibt an, ob Interrupts über Kanten (Wert=4) oder Schwellen (Wert=3) ausgelöst werden. Es können auch »Andere« (1) und »Unbekannt« (2) definiert werden. Die Eigenschaft »Vector« gibt den Vektor der Win32 IRQ-Ressource an. Ein Vektor enthält die Speicheradresse der Funktion, die ausgeführt wird, wenn die Interruptanforderung von der CPU bestätigt wurde.
540
Anhang B: WMI Klassenreferenz
B.80 Win32_ImplementedCategory Category Component
Die Referenz »Category« stellt die von der COM-Klasse verwendete Komponentenkategorie dar. Die Referenz »Category« stellt die COM-Klasse dar, die die zugeordnete Kategorie verwendet.
B.81 Win32_InfraredDevice result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. ConfigManagerErrorCode Gibt den Fehlercode des Win32-Konfigurations-Managers an. ConfigManagerUserConfig Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. CreationClassName Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Description Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an.
B.81 Win32_InfraredDevice DeviceID ErrorCleared ErrorDescription
InstallDate
LastErrorCode Manufacturer MaxNumberControlled Name
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
ProtocolSupported
541
Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das Infrarotgerät von anderen Geräten im System unterscheidet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des Infrarotgeräts an. Beispiel: Acme Maximale Anzahl der direkt adressierbaren Einheiten, die vom Controller unterstützt werden. Wenn der Wert unbekannt ist, geben Sie 0 ein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Das vom Controller zum Zugriff auf gesteuerte Geräte verwendete Protokoll.
542
Anhang B: WMI Klassenreferenz
Status
StatusInfo
SystemCreationClassName
SystemName
TimeOfLastReset
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »TimeOfLastReset« gibt an, wann der Controller zuletzt zurückgesetzt (ausgeschalten oder erneut initialisiert) wurde.
B.82 Win32_IniFileSpecification result as Integer = Invoke
Action Caption CheckID
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde.
Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren.
B.83 Win32_InstalledSoftwareElement CheckMode
CheckSum CRC1 CRC2 CreateTimeStamp Description FileSize IniFile key MD5Checksum
Name Section SoftwareElementID SoftwareElementState TargetOperatingSystem Value Version
543
Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Die Eigenschaft »Checksum« ist die aus der 16-Bit-Summe der ersten 32 Bytes der Datei berechnete Prüfsumme. Die Eigenschaft »CRC1« ist der mit den mittleren 512 KB berechnete CRCWert. Die Eigenschaft »CRC2« ist der CRC-Wert für die mittleren 512 KB mit einem Offsetmodulo 3 zum Dateibeginn. Erstellungsdatum und -uhrzeit der Datei. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Der MD5-Algorithmus berechnet eine 128-Bit Prüfsumme für eine Datei oder ein Objekt. Da die Wahrscheinlichkeit, daß zwei unterschiedliche Dateien die gleiche MD5-Prüfsumme generieren sehr gering ist, kann diese zum Erstellen einer eindeutigen Dateikennung verwendet werden. Wenn zwei Dateien die gleiche MD5-Prüfsumme besitzen, sind sie höchstwahrscheinlich identisch. Der MD5-Algorithmus generiert für die MOF-Spezifikation der MD5-Eigenschaft immer 32 Zeichen, z.B. generiert die Zeichenfolge abcdefghijklmnopqrstuvwxyz die Zeichenfolge c3fcd3d76192e4007dfb496cca 67e13b. Informationen über das Implementieren des MD5-Algorithmus finden Sie unter http://www. rsa.com/pub/rfc1321.txt. Der Name der Datei oder der Name der Datei mit einem Verzeichnispräfix. Der Name der Datei oder der Name der Datei mit einem Verzeichnispräfix. Kennung für die Softwarekomponente. Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.83 Win32_InstalledSoftwareElement Software System
Verweist auf die installierte Softwarekomponente. Verweist auf das Computersystem, auf dem eine bestimmte Softwarekomponente installiert ist.
544
Anhang B: WMI Klassenreferenz
B.84 Win32_Keyboard result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. ConfigManagerErrorCode Gibt den Fehlercode des Win32-Konfigurations-Managers an. ConfigManagerUserConfig Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. CreationClassName Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Description Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. DeviceID »DeviceID« enthält eine Adresse oder andere Informationen, um das logische Gerät eindeutig zu benennen. ErrorCleared Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. ErrorDescription Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge.
B.84 Win32_Keyboard InstallDate
IsLocked LastErrorCode Layout Name
NumberOfFunctionKeys
Password
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
Status
545
Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Gibt an, ob das Gerät gesperrt ist, um die Benutzereingabe oder -ausgabe zu verhindern. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Eine formfreie Zeichenfolge, die das Tastaturlayout beschreibt. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Eine ganze Zahl, die angibt, ob ein Tastaturkennwort aktiviert ist (Wert=4), um die lokale Eingabe zu verhindert. Andere Werte: »Deaktiviert« (3), »Nicht implementiert« (5), »Andere« (1) und »Unbekannt« (2). Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
546
Anhang B: WMI Klassenreferenz
StatusInfo
SystemCreationClassName
SystemName
Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
B.85 Win32_LaunchCondition result as Integer = Invoke
Caption CheckID CheckMode
Condition
Description Name SoftwareElementID
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde. Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Eine Beschreibung der Objekte. Der Name zum Identifizieren der Softwarekomponente. Kennung für die Softwarekomponente.
B.86 Win32_LoadOrderGroup SoftwareElementState TargetOperatingSystem Version
547
Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.86 Win32_LoadOrderGroup Caption Description DriverEnabled
GroupOrder InstallDate
Name Status
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DriverEnabled« gibt an, ob Treiber mit Systemdiensten in der Ladegruppe enthalten sein können. Werte: TRUE oder FALSE. TRUE gibt an, daß Treiber in der Ladegruppe enthalten sein können. Die Eigenschaft »GroupOrder« gibt die Sequenz an, in der diese Dienstgruppe in das Betriebssystem geladen wird. Beispiel: 2 Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« gibt den Namen der Ladegruppe an. Beispiel: Primärer Datenträger Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.87 Win32_LoadOrderGroupServiceDependencies Antecedent Dependent
Die Referenz »Antecedent« stellt die Win32-Ladegruppe dar, die die Eigenschaften der Ladegruppe enthält, die vor dem abhängigen Basisdienst dieser Klasse gestartet werden muß. Die Referenz »Dependent« stellt den Win32-Basisdienst dar, der die Eigenschaften des Basisdienstes enthält, der von der Ladegruppe abhängig ist.
548
Anhang B: WMI Klassenreferenz
B.88 Win32_LoadOrderGroupServiceMembers GroupComponent PartComponent
Die Referenz »GroupComponent« stellt die Win32-Ladegruppe dar, die die Eigenschaften der Ladegruppe enthält, die dem Basisdienst zugeordnet ist. Die Referenz »PartComponent« stellt den Win32-Basisdienst dar, der den Basisdienst enthält, der ein Mitglied einer Ladegruppe ist.
B.89 Win32_LogicalDisk »SetPowerState« definiert den gewünschten Energiestatus und den Zeitresult as Integer = SetPowerState(PowerState as In- punkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Enerteger, Time as Date/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Access Die Eigenschaft »Access« gibt an, ob das Medium lesbar (Wert=1), beschreibbar (Wert=2) oder beides (Wert=3) ist. »Unbekannt« (0) kann ebenfalls definiert werden. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. BlockSize Größe der Speichererweiterungsblöcke in Byte. Geben Sie 1 ein, wenn die Größe unbekannt oder ein Blockkonzept ungültig ist (z.B. für zusammengesetzte Erweiterungen, Speicher oder logische Datenträger).
B.89 Win32_LogicalDisk Caption Compressed
ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID DriveType
ErrorCleared ErrorDescription
ErrorMethodology
FileSystem FreeSpace InstallDate
LastErrorCode MaximumComponentLength
MediaType
549
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Compressed« gibt an, ob der logische Datenträger als einzelne komprimierte Einheit vorhanden ist; z.B. als ein DoubleSpaceDatenträger. Wenn die dateibasierte Komprimierung (z.B. NTFS) unterstützt wird, ist diese Eigenschaft FALSE. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den logischen Datenträger von anderen Geräten im System unterscheidet. Die Eigenschaft »DriveType« enthält einen numerischen Wert entsprechend dem Laufwerk, das dieser logische Datenträger darstellt. Zusätzliche Werte finden Sie in der SDK-Dokumentation. Beispiel: Ein CDROM-Laufwerk würde 5 zurückgeben. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die formfreie Zeichenfolge »ErrorMethodology« beschreibt den Typ der Fehlererkennung und -korrektur, der von dieser Speichererweiterung unterstützt wird. Die Eigenschaft »FileSystem« gibt das Dateisystem auf dem logischen Datenträger an. Beispiel: NTFS Die Eigenschaft »FileSystem« gibt das Dateisystem auf dem logischen Datenträger an. Beispiel: NTFS Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »MaximumComponentLength« gibt die maximale Länge einer Dateinamenkomponente an, die vom Win32-Laufwerk unterstützt wird. Eine Dateinamenkomponente ist der Teil des Dateinamens zwischen den umgekehrten Schrägstrichen. Der Wert kann verwendet werden, um anzugeben, ob lange Dateinamen von einem Dateisystem unterstützt werden. Für ein FAT-Dateisystem, das lange Namen unterstützt, wird z.B. der Wert 255 gespeichert, statt 8.3. Lange Namen können auch von NTFS-Dateisystemen unterstützt werden. Beispiel: 255 Die Eigenschaft »MediaType« gibt den Medientyp an, der sich im logischen Laufwerk befindet. Dieser Wert wird in der Aufzählung MEDIA_TYPE in winioctl.h angegeben. Hinweis: Der Wert ist für austauschbare Laufwerke möglicherweise nicht genau, wenn sich kein Medium im Laufwerk befindet.
550
Anhang B: WMI Klassenreferenz
Name
NumberOfBlocks
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
ProviderName Purpose Size Status
Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gesamtanzahl der aufeinander folgenden Blöcke. Jeder Block entspricht in der Größe dem in der Eigenschaft »BlockSize« angegebenen Wert. Die Gesamtgröße der Speichererweiterung kann berechnet werden, indem der Wert der Eigenschaft »BlockSize« mit dem Wert dieser Eigenschaft multipliziert wird. Wenn der Wert in »BlockSize« 1 ist, gibt diese Eigenschaft die Gesamtgröße der Speichererweiterung an. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »ProviderName« gibt den Netzwerkpfad zum logischen Gerät an. Formfreie Zeichenfolge, die das Medium und/oder seine Verwendung beschreibt. Formfreie Zeichenfolge, die das Medium und/oder seine Verwendung beschreibt. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.90 Win32_LogicalDiskRootDirectory StatusInfo
SupportsFileBasedCompression
SystemCreationClassName
SystemName
VolumeName VolumeSerialNumber
551
Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »SupportsFileBasedCompression« gibt an, ob die dateibasierte Komprimierung, z.B. NTFS, von der logischen Datenträgerpartition unterstützt wird. Diese Eigenschaft ist FALSE, wenn die Eigenschaft »Compressed« TRUE ist. Werte: TRUE oder FALSE. TRUE gibt an, daß der logische Datenträger die Komprimierung unterstützt. Die Eigenschaft »SupportsFileBasedCompression« gibt an, ob die dateibasierte Komprimierung, z.B. NTFS, von der logischen Datenträgerpartition unterstützt wird. Diese Eigenschaft ist FALSE, wenn die Eigenschaft »Compressed« TRUE ist. Werte: TRUE oder FALSE. TRUE gibt an, daß der logische Datenträger die Komprimierung unterstützt. Die Eigenschaft »SupportsFileBasedCompression« gibt an, ob die dateibasierte Komprimierung, z.B. NTFS, von der logischen Datenträgerpartition unterstützt wird. Diese Eigenschaft ist FALSE, wenn die Eigenschaft »Compressed« TRUE ist. Werte: TRUE oder FALSE. TRUE gibt an, daß der logische Datenträger die Komprimierung unterstützt. Die Eigenschaft »VolumeName« gibt den Datenträgernamen des logischen Datenträgers an. Einschränkungen: Maximal 32 Zeichen. Die Eigenschaft »VolumeSerialNumber« gibt die serielle Nummer des logischen Datenträgers an. Einschränkungen: Maximal 11 Zeichen Beispiel: A8C3-D032
B.90 Win32_LogicalDiskRootDirectory GroupComponent PartComponent
Die Referenz »GroupComponent« stellt die Eigenschaften des logischen Datenträgers in der Zuordnung »Win32_LogicalDiskRootDirectory« dar. Die Referenz »PartComponent« stellt die Eigenschaften der Verzeichnisstruktur in der Zuordnung »Win32_LogicalDiskRootDirectory« dar.
B.91 Win32_LogicalDiskToPartition Antecedent
Dependent
Die Referenz »Antecedent« stellt die Win32-Datenträgerpartition mit den Eigenschaften einer Datenträgerpartition dar, auf der sich der logische Datenträger befindet. Die Referenz »Dependent« stellt den logischen Win32-Datenträger dar, der die Eigenschaften eines logischen Datenträgers auf einer physikalischen Datenträgerpartition enthält.
552
Anhang B: WMI Klassenreferenz
EndingAddress
»EndingAddress« gibt die Endadresse der höheren Speicherebene in der niedrigeren Speicherebene an. Diese Eigenschaft kann zum Zuordnen von nicht zusammenhängenden Erweiterungen in einer höheren Gruppierung verwendet werden. »StartingAddress« gibt die Startadresse der höheren Speicherebene in der niedrigeren Speicherebene an.
StartingAddress
B.92 Win32_LogicalFileAccess AccessMask GuidInheritedObjectType GuidObjectType Inheritance SecuritySetting Trustee Type
Bitflags, die angeben, welche Berechtigungen betroffen sind. Die GUID des Objekttyps, von dem dieses Objekt erbt. Die GUID des Objekttyps, dem die Sicherheitseinstellungen zugewiesen sind. Bitflags, die die Vererbungsmethode der Zugriffsrechte angeben. Die Sicherheitseinstellungen des Datei-/Verzeichnisobjekts können nicht aufgelistet werden. Ein Eintrag in der Objekt-DACL. Der für den Vertrauensnehmer angegebene Zugriffstyp.
B.93 Win32_LogicalFileAuditing AuditedAccessMask GuidInheritedObjectType GuidObjectType Inheritance SecuritySetting Trustee Type
Bitflags, die angeben, welche Vorgänge überwacht werden. Die GUID des Objekttyps von dem dieses Objekt erbt. Die GUID des Objekttyps, dem die Sicherheitseinstellungen zugewiesen sind. Bitflags, die die Vererbungsmethode der Überwachungsrichtlinien angeben. Die Sicherheitseinstellungen des Datei-/Verzeichnisobjekts können nicht aufgelistet werden. Ein Eintrag in der Objekt-SACL. Der für den Vertrauensnehmer angegebene Zugriffstyp.
B.94 Win32_LogicalFileGroup Group SecuritySetting
Die Gruppe des Datei-/Verzeichnisobjekts. Die Sicherheitseinstellungen des Datei-/Verzeichnisobjekts können nicht aufgelistet werden.
B.95 Win32_LogicalFileOwner
553
B.95 Win32_LogicalFileOwner Owner SecuritySetting
Der Besitzer des Datei-/Verzeichnisobjekts. Die Sicherheitseinstellungen des Datei-/Verzeichnisobjekts können nicht aufgelistet werden.
B.96 Win32_LogicalFileSecuritySetting result as Integer = GetSecurityDescriptor result as Integer = SetSecurityDescriptor (Descriptor as CIM-Object) Caption ControlFlags Description OwnerPermissions Path SettingID
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Der vollständige Pfadname der Datei oder des Verzeichnisses. Die Kennung für das Objekt »CIM_Setting«.
B.97 Win32_LogicalMemoryConfiguration AvailableVirtualMemory
Caption Description Name SettingID TotalPageFileSpace
TotalPhysicalMemory
TotalVirtualMemory
Die Eigenschaft »AvailableVirtualMemory« gibt den für einen aufrufenden Prozeß verfügbaren (nicht reservierten) Speicher an. Diese Eigenschaft wurde durch die Eigenschaft »FreeVirutualMemory » in der Klasse »CIM_ OperatingSystem« ersetzt. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »Name« gibt an, daß diese Klasse eine logische Speicherkonfiguration darstellt. Beispiel: LogicalMemoryConfiguration Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »TotalPageFileSpace« gibt die Gesamtgröße des Speichers in der Auslagerungsdatei an. Diese Eigenschaft wurde durch die Eigenschaft »SizeStoredInPagingFiles« in der Klasse »CIM_OperatingSystem« ersetzt. Die Eigenschaft »TotalPhysicalMemory« gibt die Gesamtgröße des physikalischen Speichers an, der für das Betriebssystem verfügbar ist. Diese Eigenschaft wurde durch die Eigenschaft »TotalVisibleMemorySize« in der Klasse »CIM_OperatingSystem« ersetzt. Die Eigenschaft »TotalVirtualMemory« gibt die Gesamtgröße des Speichers an, der für einen aufrufenden Prozeß verfügbar ist. Diese Eigenschaft wurde durch die Eigenschaft »TotalVirtualMemorySize« in der Klasse »CIM_OperatingSystem« ersetzt.
554
Anhang B: WMI Klassenreferenz
B.98 Win32_LogicalProgramGroup Caption Description GroupName
InstallDate
Name
Status
UserName
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »GroupName« gibt den Namen der Win32Programmgruppe an. Programmgruppen sind als Dateiordner in Win32 implementiert. Beispiel: Zubehör\Systemprogramme Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« gibt den Benutzernamen, gefolgt vom Gruppennamen an. Programmgruppen sind als Dateiordner in Win32 implementiert. Beispiel: All Users:Zubehör\Systemprogramme Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »UserName« gibt die Benutzer an, die auf die Win32Programmgruppe zugreifen können. Programmgruppen sind als Dateiordner in Win32 implementiert. Beispiel: Alle Benutzer
B.99 Win32_LogicalProgramGroupDirectory Antecedent Dependent
Die Referenz »Antecedent« stellt die dem Dateiverzeichnis zugeordnete logische Win32-Programmgruppe dar. Die Referenz »Dependent« stellt das Win32-Verzeichnis dar, das das Dateiverzeichnis für die logische Programmgruppe enthält.
B.100 Win32_LogicalProgramGroupItem Caption Description InstallDate
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein.
B.101 Win32_LogicalProgramGroupItemDataFile Name
Status
555
Die geerbte Eigenschaft »Name« dient als Schlüssel einer Win32_LogicalProgramGroupItemInstanz. Programmgruppen werden als Dateiordner in Win32 implementiert. Es müssen vollständige Pfadnamen angegeben werden. Beispiel: f:\WINNT\Profiles\a-kevhu.000\ Startmenü\Programme\Zubehör\WordPad.Lnk Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.101 Win32_LogicalProgramGroupItemDataFile Antecedent Dependent
Die Referenz »Antecedent« gibt »Win32_LogicalProgramGroupItem« an, das Programmgruppierungen im Startmenü darstellt. Die Referenz »Dependent« stellt die der Programmgruppe zugeordnete Klasse »CIM_DataFile« dar.
B.102 Win32_LogicalShareAccess AccessMask GuidInheritedObjectType GuidObjectType Inheritance SecuritySetting Trustee Type
Bitflags, die angeben, welche Berechtigungen betroffen sind. Die GUID des Objekttyps, von dem dieses Objekt erbt. Die GUID des Objekttyps, dem die Sicherheitseinstellungen zugewiesen sind. Bitflags, die die Vererbungsmethode der Zugriffsrechte angeben. Die Sicherheitseinstellungen des freigegebenen Objekts. Ein Eintrag in der Objekt-DACL. Der für den Vertrauensnehmer angegebene Zugriffstyp.
B.103 Win32_LogicalShareAuditing AuditedAccessMask GuidInheritedObjectType GuidObjectType Inheritance SecuritySetting Trustee Type
Bitflags, die angeben, welche Vorgänge überwacht werden. Die GUID des Objekttyps, von dem dieses Objekt erbt. Die GUID des Objekttyps, dem die Sicherheitseinstellungen zugewiesen sind. Bitflags, die die Vererbungsmethode der Überwachungsrichtlinien angeben. Die Sicherheitseinstellungen des freigegebenen Objekts. Ein Eintrag in der Objekt-SACL. Der für den Vertrauensnehmer angegebene Zugriffstyp.
556
Anhang B: WMI Klassenreferenz
B.104 Win32_LogicalShareSecuritySetting result as Integer = GetSecurityDescriptor(obj) result as Integer = SetSecurityDescriptor (Descriptor as CIM-Object) Caption ControlFlags Description Name SettingID
Liefert ein Security-Descriptor-Objekt zurück, das die Sicherheitseinstellungen dieses Objekts definiert. War die Aktion erfolgreich, dann liefert result den Wert 0 zurück Aktiviert ein neues Security-Descriptor Objekt, das geänderte Sicherheitseinstellungen beinhalten kann. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Freigabename Die Kennung für das Objekt »CIM_Setting«.
B.105 Win32_MIMEInfoAction result as Integer = Invoke
ActionID Caption CLSID ContentType Description Direction
Extension
Name SoftwareElementID SoftwareElementState
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an.
B.106 Win32_MSIResource TargetOperatingSystem Version
557
»TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
B.106 Win32_MSIResource Caption Description SettingID
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«.
B.107 Win32_MemoryArray result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Access Die Eigenschaft »Access« gibt an, ob das Medium lesbar (Wert=1), beschreibbar (Wert=2) oder beides (Wert=3) ist. »Unbekannt« (0) kann ebenfalls definiert werden. AdditionalErrorData Die Eigenschaft »AdditionalErrorData« enthält zusätzliche Fehlerinformationen. Ein Beispiel ist das ECC-Syndrom oder die Rückgabe der Prüfbits, wenn eine CRC-basierte Fehlermethode verwendet wird. Wenn ein Einzelbit-Fehler gefunden wird und der CRC-Algorithmus bekannt ist, ist es möglich, das fehlerhafte Bit zu bestimmen. Dieser Datentyp (ECCSyndrom, Prüfbit, Paritätsbit oder andere Herstellerinformationen) ist in diesem Feld enthalten. Diese Eigenschaft wird nur verwendet, wenn die Eigenschaft »ErrorInfo« nicht 3 ist.
558
Anhang B: WMI Klassenreferenz
Availability
BlockSize
Caption ConfigManagerErrorCode ConfigManagerUserConfig CorrectableError
CreationClassName
Description DeviceID EndingAddress
ErrorAccess
ErrorAddress
ErrorCleared ErrorData
Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Größe der Speichererweiterungsblöcke in Bytes. Geben Sie 1 ein, wenn die Größe unbekannt oder ein Blockkonzept ungültig ist (z.B. für zusammengesetzte Erweiterungen, Speicher oder logische Datenträger). Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »CorrectableError« gibt an, ob der letzte Fehler korrigierbar war. Diese Eigenschaft wird nicht verwendet, wenn »ErrorInfo« 3 ist Werte: True oder False. True gibt an, daß der Fehler korrigierbar ist. Die Eigenschaft »CorrectableError« gibt an, ob der letzte Fehler korrigierbar war. Diese Eigenschaft wird nicht verwendet, wenn »ErrorInfo« 3 ist Werte: True oder False. True gibt an, daß der Fehler korrigierbar ist. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das Speicherarray eindeutig kennzeichnet. Beispiel: Speicherarray 1 Die Eigenschaft »EndingAddress« gibt die Endadresse an, auf die von einer Anwendung oder dem Betriebssystem verwiesen wird. Diese Speicheradresse wird von einem Speichercontroller für das Speicherobjekt zugeordnet. Die Eigenschaft »ErrorAccess« gibt den Speichervorgang an, der den letzten Fehler verursacht hat. Diese Eigenschaft ist nur gültig, wenn »ErrorInfo« nicht 3 ist. Die Eigenschaft »ErrorAddress« gibt die Adresse des letzten Speicherfehlers an. Diese Eigenschaft wird nur verwendet, wenn »ErrorInfo« nicht 3 ist. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die Eigenschaft »ErrorData« enthält die Daten des letzten Speicherzugriffs mit einem Fehler. Die Daten belegen das erste N-Oktett des Datenfelds, das für die in der Eigenschaft »ErrorTransferSize« angegebenen Bits erforderlich ist. Wenn der Wert 0 ist, wird diese Eigenschaft nicht verwendet.
B.107 Win32_MemoryArray ErrorDataOrder
ErrorDescription
ErrorGranularity ErrorInfo
ErrorMethodology ErrorResolution ErrorTime ErrorTransferSize
InstallDate
LastErrorCode Name
NumberOfBlocks
OtherErrorDescription PNPDeviceID
559
Die Eigenschaft »ErrorDataOrder« gibt die Reihenfolge der in der Eigenschaft »ErrorData« gespeicherten Daten an. Diese Eigenschaft wird nur verwendet, wenn »ErrorTransferSize« 0 ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »ErrorGranularity« gibt die Ebene für die Fehlerbehebung an. Beispiel: Geräteebene. Die Eigenschaft »ErrorInfo« beschreibt den Typ des zuletzt aufgetretenen Fehlers. Die Werte 12 bis 14 werden in dieser Eigenschaft nicht verwendet. Diese Werte geben in der Eigenschaft »CorrectableError« an, ob ein Fehler korrigierbar ist. Die Eigenschaft »ErrorMethodology« gibt den Typ der von der Speicherhardware verwendeten Fehlerüberprüfung an. Die Eigenschaft »ErrorResolution« gibt die Datenmenge des letzten Fehlers an. Diese Eigenschaft wird nicht verwendet, wenn »ErrorInfo« 3 ist. Die Eigenschaft »ErrorTime« gibt den Zeitpunkt des letzten Speicherfehlers an. Diese Eigenschaft ist nur gültig, wenn »ErrorInfo« nicht 3 ist. Die Eigenschaft »ErrorTransferSize« gibt die Größe der übertragenen Daten an, die den letzten Fehler enthalten. Diese Eigenschaft ist 0, wenn kein Fehler aufgetreten ist. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gesamtanzahl der aufeinander folgenden Blöcke. Jeder Block entspricht in der Größe dem in der Eigenschaft »BlockSize« angegebenen Wert. Die Gesamtgröße der Speichererweiterung kann berechnet werden, indem der Wert der Eigenschaft »BlockSize« mit dem Wert dieser Eigenschaft multipliziert wird. Wenn der Wert in »BlockSize« 1 ist, gibt diese Eigenschaft die Gesamtgröße der Speichererweiterung an. Die Eigenschaft »OtherErrorDescription« enthält weitere Informationen, wenn die Eigenschaft »ErrorInfo« 1 ist. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
560
Anhang B: WMI Klassenreferenz
PowerManagementCapabilities
PowerManagementSupported
Purpose StartingAddress
Status
StatusInfo
SystemCreationClassName
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Formfreie Zeichenfolge, die das Medium und/oder seine Verwendung beschreibt. Die Eigenschaft »StartingAddress« gibt die Startadresse an, auf die von einer Anwendung oder dem Betriebssystem verwiesen wird. Diese Speicheradresse wird von einem Speichercontroller für das Speicherobjekt zugeordnet. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
B.108 Win32_MemoryArrayLocation SystemLevelAddress
SystemName
561
Die Eigenschaft »SystemLevelAddress« gibt an, ob es sich bei den Adreßinformationen in der Eigenschaft »ErrorAddress« um eine Systemadresse (TRUE) oder eine physikalische Adresse (FALSE) handelt. Diese Eigenschaft wird nur verwendet, wenn der Wert für die Eigenschaft »ErrorInfo« 3 ist. Werte: TRUE oder FALSE. TRUE gibt an, daß »ErrorAddress« eine Systemadresse enthält. Die Eigenschaft »SystemLevelAddress« gibt an, ob es sich bei den Adressinformationen in der Eigenschaft »ErrorAddress« um eine Systemadresse (TRUE) oder eine physikalische Adresse (FALSE) handelt. Diese Eigenschaft wird nur verwendet, wenn der Wert für die Eigenschaft »ErrorInfo« 3 ist. Werte: TRUE oder FALSE. TRUE gibt an, daß »ErrorAddress« eine Systemadresse enthält.
B.108 Win32_MemoryArrayLocation Antecedent Dependent
Die Referenz »Antecedent« gibt das physikalische Speicherarray an, das das logische Speicherarray implementiert. Die Referenz »Dependent« gibt das vom physikalischen Speicherarray implementierte logische Speicherarray an.
B.109 Win32_MemoryDevice »SetPowerState« definiert den gewünschten Energiestatus und den Zeitresult as Integer = SetPowerState(PowerState as In- punkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Enerteger, Time as Date/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
562
Anhang B: WMI Klassenreferenz
Access
AdditionalErrorData
Availability
BlockSize
Caption ConfigManagerErrorCode ConfigManagerUserConfig CorrectableError
CreationClassName
Description DeviceID EndingAddress
ErrorAccess
Die Eigenschaft »Access« gibt an, ob das Medium lesbar (Wert=1), beschreibbar (Wert=2) oder beides (Wert=3) ist. »Unbekannt« (0) kann ebenfalls definiert werden. Die Eigenschaft »AdditionalErrorData« enthält zusätzliche Fehlerinformationen. Ein Beispiel ist das ECC-Syndrom oder die Rückgabe der Prüfbits, wenn eine CRC-basierte Fehlermethode verwendet wird. Wenn ein Einzelbit-Fehler gefunden wird und der CRC-Algorithmus bekannt ist, ist es möglich, das fehlerhafte Bit zu bestimmen. Dieser Datentyp (ECCSyndrom, Prüfbit, Paritätsbit oder andere Herstellerinformationen) ist in diesem Feld enthalten. Diese Eigenschaft wird nur verwendet, wenn die Eigenschaft »ErrorInfo« nicht 3 ist. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Größe der Speichererweiterungsblöcke in Byte. Geben Sie 1 ein, wenn die Größe unbekannt oder ein Blockkonzept ungültig ist (z.B. für zusammengesetzte Erweiterungen, Speicher oder logische Datenträger). Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »CorrectableError« gibt an, ob der letzte Fehler korrigierbar war. Diese Eigenschaft wird nicht verwendet, wenn »ErrorInfo« 3 ist. Werte: True oder False. True gibt an, daß der Fehler korrigierbar ist. Die Eigenschaft »CorrectableError« gibt an, ob der letzte Fehler korrigierbar war. Diese Eigenschaft wird nicht verwendet, wenn »ErrorInfo« 3 ist. Werte: True oder False. True gibt an, daß der Fehler korrigierbar ist. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das Speichergerät eindeutig kennzeichnet. Beispiel: Speichergerät 1 Die Eigenschaft »EndingAddress« gibt die Endadresse an, auf die von einer Anwendung oder dem Betriebssystem verwiesen wird. Diese Speicheradresse wird von einem Speichercontroller für das Speicherobjekt zugeordnet. Die Eigenschaft »ErrorAccess« gibt den Speichervorgang an, der den letzten Fehler verursacht hat. Diese Eigenschaft ist nur gültig, wenn »ErrorInfo« nicht 3 ist.
B.109 Win32_MemoryDevice ErrorAddress ErrorCleared ErrorData
ErrorDataOrder
ErrorDescription
ErrorGranularity ErrorInfo
ErrorMethodology ErrorResolution ErrorTime ErrorTransferSize
InstallDate
LastErrorCode Name
NumberOfBlocks
OtherErrorDescription PNPDeviceID
563
Die Eigenschaft »ErrorAddress« gibt die Adresse des letzten Speicherfehlers an. Diese Eigenschaft wird nur verwendet, wenn »ErrorInfo« nicht 3 ist. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die Eigenschaft »ErrorData« enthält die Daten des letzten Speicherzugriffs mit einem Fehler. Die Daten belegen das erste N-Oktett des Datenfelds, das für die in der Eigenschaft »ErrorTransferSize« angegebenen Bits erforderlich ist. Wenn der Wert 0 ist, wird diese Eigenschaft nicht verwendet. Die Eigenschaft »ErrorDataOrder« gibt die Reihenfolge der in der Eigenschaft »ErrorData« gespeicherten Daten an. Diese Eigenschaft wird nur verwendet, wenn »ErrorTransferSize« 0 ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »ErrorGranularity« gibt die Ebene für die Fehlerbehebung an. Beispiel: Geräteebene. Die Eigenschaft »ErrorInfo« beschreibt den Typ des zuletzt aufgetretenen Fehlers. Die Werte 12 bis 14 werden in dieser Eigenschaft nicht verwendet. Diese Werte geben in der Eigenschaft »CorrectableError« an, ob ein Fehler korrigierbar ist. Die Eigenschaft »ErrorMethodology« gibt den Typ der von der Speicherhardware verwendeten Fehlerüberprüfung an. Die Eigenschaft »ErrorResolution« gibt die Datenmenge des letzten Fehlers an. Diese Eigenschaft wird nicht verwendet, wenn »ErrorInfo« 3 ist. Die Eigenschaft »ErrorTime« gibt den Zeitpunkt des letzten Speicherfehlers an. Diese Eigenschaft ist nur gültig, wenn »ErrorInfo« nicht 3 ist. Die Eigenschaft »ErrorTransferSize« gibt die Größe der übertragenen Daten an, die den letzten Fehler enthalten. Diese Eigenschaft ist 0, wenn kein Fehler aufgetreten ist. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gesamtanzahl der aufeinander folgenden Blöcke. Jeder Block entspricht in der Größe dem in der Eigenschaft »BlockSize« angegebenen Wert. Die Gesamtgröße der Speichererweiterung kann berechnet werden, indem der Wert der Eigenschaft »BlockSize« mit dem Wert dieser Eigenschaft multipliziert wird. Wenn der Wert in »BlockSize« 1 ist, gibt diese Eigenschaft die Gesamtgröße der Speichererweiterung an. Die Eigenschaft »OtherErrorDescription« enthält weitere Informationen, wenn die Eigenschaft »ErrorInfo« 1 ist. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
564
Anhang B: WMI Klassenreferenz
PowerManagementCapabilities
PowerManagementSupported
Purpose StartingAddress
Status
StatusInfo
SystemCreationClassName
SystemLevelAddress
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Formfreie Zeichenfolge, die das Medium und/oder seine Verwendung beschreibt. Die Eigenschaft »StartingAddress« gibt die Startadresse an, auf die von einer Anwendung oder dem Betriebssystem verwiesen wird. Diese Speicheradresse wird von einem Speichercontroller für das Speicherobjekt zugeordnet. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »SystemLevelAddress« gibt an, ob es sich bei den Adreßinformationen in der Eigenschaft »ErrorAddress« um eine Systemadresse (TRUE) oder eine physikalische Adresse (FALSE) handelt. Diese Eigenschaft wird nur verwendet, wenn der Wert für die Eigenschaft »ErrorInfo« 3 ist. Werte: TRUE oder FALSE. TRUE gibt an, daß »ErrorAddress« eine Systemadresse enthält.
B.110 Win32_MemoryDeviceArray SystemName
565
Die Eigenschaft »SystemLevelAddress« gibt an, ob es sich bei den Adreßinformationen in der Eigenschaft »ErrorAddress« um eine Systemadresse (TRUE) oder eine physikalische Adresse (FALSE) handelt. Diese Eigenschaft wird nur verwendet, wenn der Wert für die Eigenschaft »ErrorInfo« 3 ist. Werte: TRUE oder FALSE. TRUE gibt an, daß »ErrorAddress« eine Systemadresse enthält.
B.110 Win32_MemoryDeviceArray GroupComponent PartComponent
Die Referenz »GroupComponent« stellt das Speicherarray in der Zuordnung »Win32_MemoryDeviceArray« dar. Die Referenz »PartComponent« stellt ein Speichergerät in der Zuordnung »Win32_MemoryDeviceArray« dar.
B.111 Win32_MemoryDeviceLocation Antecedent Dependent
Die Referenz »Antecedent« stellt den physikalischen Speicher dar, der die Speicherkomponente enthält. Die Referenz »Dependent« stellt die im physikalischen Speicher vorhandene Speicherkomponente dar.
B.112 Win32_MotherboardDevice »SetPowerState« definiert den gewünschten Energiestatus und den Zeitresult as Integer = SetPowerState(PowerState as In- punkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Enerteger, Time as Date/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
566
Anhang B: WMI Klassenreferenz
Availability
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID ErrorCleared ErrorDescription
InstallDate
LastErrorCode Name
PNPDeviceID PowerManagementCapabilities
Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das Motherboard eindeutig kennzeichnet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann.
B.113 Win32_MoveFileAction PowerManagementSupported
PrimaryBusType RevisionNumber SecondaryBusType Status
StatusInfo
SystemCreationClassName
SystemName
567
Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »PrimaryBusType« gibt den primären Bustyp des Motherboards an. Beispiel: PCI Die Eigenschaft »RevisionNumber« gibt die Revisionsnummer des Motherboards an. Beispiel: 00 Die Eigenschaft »SecondaryBusType« gibt den sekundären Bustyp des Motherboards an. Beispiel: ISA Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
B.113 Win32_MoveFileAction result as Integer = Invoke
ActionID
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist.
568
Anhang B: WMI Klassenreferenz
Caption Description DestFolder DestName Direction
FileKey
Name Options SoftwareElementID SoftwareElementState SourceFolder SourceName TargetOperatingSystem Version
Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts. Eine Beschreibung des Objekts. Eine Beschreibung des Objekts. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
B.114 Win32_NTEventlogFile result as Integer = TakeOwnerShip
Die Methode »TakeOwnerShip« übernimt den Besitz der logischen Datei, die im Objektpfad angegeben ist. Wenn die logische Datei ein Verzeichnis ist, übernimt die Methode den Besitz aller Dateien und Unterverzeichnisse, die im Verzeichnis enthalten sind. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFSDateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
B.114 Win32_NTEventlogFile result as Integer = ChangeSecurityPermissions (Option as Integer, SecurityDescriptor as CIM-Object)
result as Integer = Copy(FileName as String)
result as Integer = Rename(FileName as String)
569
Die Methode »ChangeSecurityPermissions« ändert die Sicherheitsrechte für die im Objektpfad angegebene logische Datei. Wenn die logische Datei ein Verzeichnis ist, werden die Sicherheitsrechte aller im Verzeichnis enthaltener Dateien und Unterverzeichnisse geändert. Die Methode gibt den Wert 0 zurück, wenn die Rechte geändert wurden. Jeder andere Wert zeigt einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Copy« kopiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist, in das im Eingabeparameter festgelegte Verzeichnis. Der Wert 0 wird zurückgegeben, wenn die Datei kopiert wurde. Andere Werte zeigen einen Fehler an. Das Kopieren wird nicht unterstützt, wenn eine vorhandene Datei überschrieben werden muß. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Rename« benennt die logische Datei (oder das Verzeichnis) um, die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei umbenannt wurde. Andere Werte zeigen einen Fehler an. Die Umbenennung wird nicht unterstützt, wenn das Ziel ein anderes Laufwerk ist oder eine vorhandene Datei überschrieben werden muß. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
570
Anhang B: WMI Klassenreferenz
result as Integer = Delete
result as Integer = Compress
result as Integer = Uncompress
result as Integer = TakeOwnerShipEx (Recursive as Boolean, StartFileName as String)
Die Methode »Delete« löscht die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei gelöscht wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Compress« komprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei komprimiert wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Uncompress« dekomprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei dekomprimiert wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »TakeOwnerShipEx« übernimt den Besitz der logischen Datei, die im Objektpfad angegeben ist. Wenn die logische Datei ein Verzeichnis ist, übernimt die Methode den Besitz aller Dateien und Unterverzeichnisse, die im Verzeichnis enthaltenen sind. Der Wert 0 wird zurückgegeben, wenn der Vorgang erfolgreich beendet wurde. Andere Werte zeigen einen Fehler an. »TakeOwnerShipEx« ist eine erweiterte Version der Methode »TakeOwnerShip«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
B.114 Win32_NTEventlogFile
571
Die Methode »ChangeSecurityPermissionsEx« ändert die Sicherheitsrechte für die im Objektpfad angegebene logische Datei. Wenn die logische Datei ein Verzeichnis ist, werden die Sicherheitsrechte aller im Verzeichnis enthaltener Dateien und Unterverzeichnisse geändert. Die Methode gibt den Wert 0 zurück, wenn die Rechte geändert wurden. Jeder andere Wert zeigt einen Fehler an. »ChangeSecurityPermissionsEx« ist eine erweiterte Version der Methode »ChangeSecurityPermissions«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFSDateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »CopyEx« kopiert die logische Datei (oder das Verzeichnis), die result as Integer = CopyEx(FileName as String, Re- im Objektpfad angegeben ist, in das im Parameter »FileName« festgelegte Verzeichnis. Der Wert 0 wird zurückgegeben, wenn die Datei kopiert wurde. cursive as Boolean, StartFiAndere Werte zeigen einen Fehler an. Das Kopieren wird nicht unterstützt, leName as String) wenn eine vorhandene Datei überschrieben werden muß. »CopyEx« ist eine erweiterte Version der Methode »Copy«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »DeleteEx« löscht die logische Datei (oder das Verzeichnis), die result as Integer = im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die DaDeleteEx(StartFileName as tei gelöscht wurde. Andere Werte zeigen einen Fehler an. »DeleteEx« ist eine String) erweiterte Version der Methode »Delete«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. result as Integer = ChangeSecurityPermissionsEx(Option as Integer, Recursive as Boolean, SecurityDescriptor as CIM-Object, StartFileName as String)
572
Anhang B: WMI Klassenreferenz
result as Integer = CompressEx(Recursive as Boolean, StartFileName as String)
result as Integer = UncompressEx(Recursive as Boolean, StartFileName as String)
result as Boolean = GetEffectivePermission (Permissions as Integer) result as Integer = ClearEventlog (ArchiveFileName as String) result as Integer = BackupEventlog (ArchiveFileName as String) AccessMask
Archive Caption
Die Methode »CompressEx« komprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei komprimiert wurde. Andere Werte zeigen einen Fehler an. »CompressEx« ist eine erweiterte Version der Methode »Compress«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »UncompressEx« dekomprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei dekomprimiert wurde. Andere Werte zeigen einen Fehler an. »UncompressEx« ist eine erweiterte Version der Methode »Uncompress«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »GetEffectivePermission« bestimmt, ob der Aufrufer über die vom Argument »Permission« angegebenen zusammengesetzten Berechtigungen für das Dateiobjekt und ggf. die Freigabe verfügt, auf der sich die Datei oder das Verzeichnis befindet.
Die Eigenschaft »AccessMask« ist ein Bitarray, das die Zugriffsrechte für die Datei oder das Verzeichnis des Benutzers oder der Gruppe darstellt, für die die Instanz zurückgegeben wird. Diese Eigenschaft wird nur in Windows NT und Windows 2000 unterstützt. Auf Windows 98 und Windows NT/2000 FAT-Datenträgern wird FULL_ACCESS zurückgegeben, da keine Objektsicherheit festgelegt ist. Die Eigenschaft »Archive« ist ein boolescher Wert, der angibt, ob die Datei archiviert werden soll. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an.
B.114 Win32_NTEventlogFile Compressed CompressionMethod
CreationClassName CreationDate CSCreationClassName CSName Description Drive EightDotThreeFileName Encrypted EncryptionMethod
Extension FileName FileSize FileType FSCreationClassName FSName Hidden InstallDate
573
Die Eigenschaft »Compressed« ist ein boolescher Wert, der angibt, daß die Datei komprimiert ist. Die Eigenschaft »CompressionMethod« ist eine formfreie Zeichenfolge, die den Algorithmus oder das Programm zum Komprimieren der logischen Datei angibt. Wenn es nicht möglich ist, das Komprimierungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob die logische Datei komprimiert ist. »Komprimiert«, wenn die Datei komprimiert ist, aber das Komprimierungsschema unbekannt ist. »Nicht komprimiert«, wenn die logische Datei nicht komprimiert ist. Die Eigenschaft »CreationClassName« gibt den Klassennamen an. Die Eigenschaft »CreationDate« gibt das Erstellungsdatum der Datei an. Die Eigenschaft »CSCreationClassName« gibt die Klasse des Computersystems an. Die Eigenschaft »CSName« gibt den Namen des Computersystems an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »Drive« gibt den Laufwerkbuchstaben (einschließlich Doppelpunkt) der Datei an. Beispiel: c: Die Eigenschaft »EightDotThreeFileName« gibt den DOS-kompatiblen Namen der Datei an. Beispiel: c:\progra~1 Die Eigenschaft »Encrypted« ist ein boolescher Wert, der angibt, daß die Datei verschlüsselt ist. Die Eigenschaft »EncryptionMethod« ist eine formfreie Zeichenfolge, die den Algorithmus oder das Programm zum Verschlüsseln der logischen Datei angibt. Wenn es z.B. aus Sicherheitsgründen nicht möglich ist, das Verschlüsselungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob die logische Datei verschlüsselt ist. »Verschlüsselt«, wenn die Datei verschlüsselt ist, aber das Verschlüsselungsschema unbekannt ist. »Nicht verschlüsselt«, wenn die logische Datei nicht verschlüsselt ist. Die Eigenschaft »Extension« gibt die Erweiterung der Datei ohne Punkt an. Beispiel: txt, mof, mdb. Die Eigenschaft »FileName« gibt den Namen der Datei ohne Erweiterung an. Beispiel: autoexec Die Eigenschaft »FileSize« gibt die Datengröße in Byte an. Die Eigenschaft »FileType« stellt den in der Eigenschaft »Extension« angegebenen Dateityp dar. Die Eigenschaft »FSCreationClassName« gibt die Klasse des Dateisystems an. Die Eigenschaft »FSName« gibt den Namen des Dateisystems an. Die Eigenschaft »Hidden« ist ein boolescher Wert, der angibt, ob die Datei versteckt ist. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein.
574
Anhang B: WMI Klassenreferenz
InUseCount LastAccessed LastModified LogfileName Manufacturer MaxFileSize Name
NumberOfRecords
OverwriteOutDated
OverWritePolicy
Path Readable Sources Status
System Version Writeable
Die Eigenschaft »InUseCount« gibt die Anzahl der geöffneten Instanzen einer Datei an. Die Eigenschaft »LastAccessed« gibt an, wann zuletzt auf die Datei zugegriffen wurde. Die Eigenschaft »LastModified« gibt an, wann die Datei zuletzt geändert wurde. Die Eigenschaft »LastModified« gibt an, wann die Datei zuletzt geändert wurde. Herstellerzeichenfolge aus der Versionsressource, falls vorhanden. Herstellerzeichenfolge aus der Versionsressource, falls vorhanden. Die Eigenschaft »Name« gibt den vererbten Namen an, der als Schlüssel einer logischen Datei innerhalb eines Dateisystems dient. Es müssen vollständige Pfadnamen angegeben werden. Beispiel: c:\winnt\system\win.ini Die Eigenschaft »Name« gibt den vererbten Namen an, der als Schlüssel einer logischen Datei innerhalb eines Dateisystems dient. Es müssen vollständige Pfadnamen angegeben werden. Beispiel: c:\winnt\system\win.ini Die Eigenschaft »Name« gibt den vererbten Namen an, der als Schlüssel einer logischen Datei innerhalb eines Dateisystems dient. Es müssen vollständige Pfadnamen angegeben werden. Beispiel: c:\winnt\system\win.ini Die Eigenschaft »Name« gibt den vererbten Namen an, der als Schlüssel einer logischen Datei innerhalb eines Dateisystems dient. Es müssen vollständige Pfadnamen angegeben werden. Beispiel: c:\winnt\system\win.ini Die Eigenschaft »Path« gibt den Pfad der Datei an, einschließlich umgekehrter Schrägstriche am Anfang und am Ende. Beispiel: \windows\system\ Die Eigenschaft »Readable« ist ein boolescher Wert, der angibt, ob die Datei gelesen werden kann. Die Eigenschaft »Readable« ist ein boolescher Wert, der angibt, ob die Datei gelesen werden kann. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »System« ist ein boolescher Wert, der angibt, ob die Datei eine Systemdatei ist. Versionszeichenfolge aus der Versionsressource, falls vorhanden. Die Eigenschaft »Writeable« ist ein boolescher Wert, der angibt, ob die Datei geschrieben werden kann.
B.115 Win32_NetworkAdapter
575
B.115 Win32_NetworkAdapter result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeit(PowerState as Integer, Time as punkt, zu dem das Gerät in diesen Status versetzt wird, indem für den PaDate/Time) rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Energiesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. AdapterType Die Eigenschaft »AdapterType« gibt das verwendete Netzwerkmedium an. Diese Eigenschaft ist möglicherweise nicht für alle in dieser Klasse aufgeführten Netzwerkadapter verfügbar. Nur Windows NT. AutoSense Boolescher Wert, der angibt, ob der Netzwerkadapter die Geschwindigkeit des Mediums automatisch bestimmen kann. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. ConfigManagerErrorCode Gibt den Fehlercode des Win32-Konfigurations-Managers an. ConfigManagerUserConfig Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. CreationClassName Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Description Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. DeviceID Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den Netzwerkadapter von anderen Geräten im System unterscheidet. ErrorCleared Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. ErrorDescription Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge.
576
Anhang B: WMI Klassenreferenz
Index InstallDate
Installed
LastErrorCode MACAddress
Manufacturer MaxNumberControlled
MaxSpeed Name
NetworkAddresses PermanentAddress
PNPDeviceID PowerManagementCapabilities
Die Eigenschaft »Index« gibt die Indexnummer des Netzwerkadapters an, die in der Systemregistrierung gespeichert ist. Beispiel: 0. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Installed« gibt an, ob der Netzwerkadapter installiert ist. Werte: TRUE oder FALSE. TRUE gibt an, daß der Netzwerkadapter installiert ist. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »MACAddress« gibt die MAC-Adresse des Netzwerkadapters an. Eine MAC-Adresse ist eine eindeutige 48-Bit-Nummer, die dem Netzwerkadapter vom Hersteller zugewiesen und für die TCP/IPKommunikation verwendet wird. Die Eigenschaft »Manufacturer« gibt den Hersteller des Netzwerkadapters an. Beispiel: 3COM. Die Eigenschaft »MaxNumberControlled« gibt die maximale Anzahl der direkt adressierbaren Anschlüsse an, die von diesem Netzwerkadapter unterstützt werden. Geben Sie 0 ein, wenn der Wert unbekannt ist. Die maximale Geschwindigkeit des Netzwerkadapters in Bits pro Sekunde. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Ein Array mit Zeichenfolgen, das die Netzwerkadressen für einen Adapter angibt. »PermanentAddress« definiert die in einem Adapter hartcodierte Netzwerkadresse. Diese Adresse kann über ein Firmware-Update oder die Softwarekonfiguration geändert werden. Das Feld sollte aktualisiert werden, nachdem die Änderung vorgenommen wurde. »PermanentAddress« sollte leer sein, wenn keine hartcodierte Adresse für den Netzwerkadapter vorhanden ist. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann.
B.116 Win32_NetworkAdapterConfiguration PowerManagementSupported
ProductName ServiceName
Speed
Status
StatusInfo
SystemCreationClassName
SystemName
TimeOfLastReset
577
Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »ProductName« gibt den Produktnamen des Netzwerkadapters an. Beispiel: Fast EtherLink XL Die Eigenschaft »ServiceName« gibt den Dienstnamen des Netzwerkadapters an. Dieser Name ist gewöhnlich kürzer als der vollständige Produktname. Beispiel: Elnkii. Eine Schätzung der aktuellen Bandbreite in Bits pro Sekunde. Für Endpunkte mit unterschiedlicher Bandbreite oder für Endpunkte ohne genaue Schätzung, sollte diese Eigenschaft die nominale Bandbreite enthalten. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »TimeOfLastReset« gibt an, wann der Netzwerkadapter zuletzt zurückgesetzt wurde.
B.116 Win32_NetworkAdapterConfiguration result as Integer = EnableDHCP
Die Methode »EnableDHCP« aktiviert DHCP (Dynamic Host Configuration Protocol) für den Dienst mit diesem Netzwerkadapter. DHCP ermöglicht die dynamische Zuordnung von IP-Adressen. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: WMI
578
Anhang B: WMI Klassenreferenz
result as Integer = RenewDHCPLease
Die Methode »RenewDHCPLease« erneuert die IP-Adresse auf bestimmten DHCP-Netzwerkadaptern. Die Lease für die über einen DHCP-Server zugeordnete IP-Adresse hat ein Ablaufdatum, das der Client erneuern muß, wenn die zugeordnete IP-Adresse weiter verwendet werden soll. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: WMI result as Integer = RenewDHCPLeaseAll Die Methode »RenewDHCPLeaseAll« erneuert die IP-Adressen auf allen DHCP-Netzwerkadaptern. Die Lease für die über einen DHCP-Server zugeordnete IP-Adresse hat ein Ablaufdatum, das der Client erneuern muß, wenn die zugeordnete IP-Adresse weiter verwendet werden soll. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: WMI result as Integer = ReleaseDHCPLease Die Methode »ReleaseDHCPLease« gibt die an einen bestimmten DHCP-Netzwerkadapter gebundene IP-Adresse frei. Warnung: Wenn DHCP auf dem lokalen System aktiviert ist, wird TCP/IP für diesen Netzwerkadapter deaktiviert. Alle TCP/IPVerbindungen gehen verloren, wenn kein alternativer Pfad zum Zielsystem angegeben wird. Befehl wird von folgender API-Funktion bereitgestellt: WMI result as Integer = ReleaseDHCPLeaseAll Die Methode »ReleaseDHCPLeaseAll« gibt die an alle DHCPNetzwerkadapter gebundenen IP-Adressen frei. Warnung: Wenn DHCP auf dem lokalen Computer aktiviert ist, werden alle DHCP TCP/IP-Verbindungen abgebrochen. Befehl wird von folgender API-Funktion bereitgestellt: WMI Die Methode »EnableStatic« aktiviert die statische TCP/IPresult as Integer = EnableStatic Adressierung für den Zieladapter. Deshalb ist DHCP für diesen (IPAddress as String, SubnetMask as Netzwerkadapter deaktiviert. Die Methode gibt den Wert 0 zuString) IPAddress=Der Parameter »IPAddress« rück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede listet alle statischen IP-Adressen für den andere Zahl zeigt einen Fehler an. aktuellen Netzwerkadapter auf. Beispiel: Befehl wird von folgender API-Funktion bereitgestellt: WMI 155.34.22.0 SubnetMask=Der Parameter »SubnetMask« enthält die Subnetzmasken, die die Werte im Parameter »IPAddress« ergänzen. Beispiel: 255.255.0.0
B.116 Win32_NetworkAdapterConfiguration result as Integer = SetGateways (DefaultIPGateway as String, GatewayCostMetric as Integer) DefaultIPGateway= »DefaultIPGateway« ist ein Eingabeparameter der Methode »SetGateways«. Er enthält eine Liste der IP-Adressen der Gateways, an die Netzwerkpakete umgeleitet werden. GatewayCostMetric=Der Parameter »GatewayCostMetric« weist einen Wert im Bereich von 1 bis 9999 zu, der verwendet wird. um die schnellsten und zuverlässigsten Routen zu berechnen. Die Werte dieses Parameters entsprechen den Werten im Parameter »DefaultIPGateway« Der Standardwert für ein Gateway ist 1. Nur Windows 2000. Optional=Wahr result as Integer = EnableDNS (DNSDomain as String, DNSDomainSuffixSearchOrder as String, DNSHostName as String, DNSServerSearchOrder as String) DNSDomain=Der Parameter »DNSDomain« gibt die DNS-Domäne an. Dem Organisationsnamen folgt ein Punkt und eine Erweiterung, die den Organisationstyp angibt. Beispiel: microsoft.com Optional=Wahr DNSDomainSuffixSearchOrder=Der Parameter »DNSDomainSuffixSearchOrder« gibt die DNS-Domänensuffixe an, die während der Namensauflösung an Hostnamen angehängt werden. Wenn ein vollqualifizierter Domänenname (FQDN) von einem Hostnamen aufgelöst wird, wird der lokale Domänenname angehängt. Wenn der Domänenname nicht angehängt werden kann, werden anhand der Domänensuffixliste zusätzliche FQDNs erstellt. Optional=Wahr DNSHostName=Der Parameter »DNSHostName« gibt den Namen des
579
Die Methode »SetGateways« gibt eine Liste der Gateways an, die verwendet werden, um Pakete an ein anderes als das mit dem Adapter verbundenen Subnetz, umzuleiten. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: WMI
Die Methode »EnableDNS« aktiviert die DNS (Domain Name System) für den Dienst auf dem TCP/IP-Netzwerkadapter. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters
580
Anhang B: WMI Klassenreferenz
DNS-Hosts an, der von dieser Methode aktiviert wird. Beispiel: corpdns Optional=Wahr DNSServerSearchOrder=Der Parameter »DNSServerSearchOrder« gibt die Liste der Server-IP-Adressen an, die für DNSServerabfragen verwendet werden. Optional=Wahr result as Integer = SetDNSDomain (DNSDomain as String) DNSDomain=Der Parameter »DNSDomain« gibt die DNS-Domäne an. Dem Organisationsnamen folgt ein Punkt und eine Erweiterung, die den Organisationstyp angibt. Beispiel: microsoft.com
Die Methode »SetDNSDomain« ermöglicht das Festlegen der DNS-Domäne. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Diese Methode ist abhängig von der Instanz und wird auf einzelne Adapter angewendet. In Windows 2000 wird die Einstellung für den Zieladapter übernommen. In NT4 ist diese Einstellung global. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »SetDNSServerSearchOrder« ermöglicht das Festleresult as Integer = SetDNSServerSegen der Serversuchreihenfolge als Elementearray. Die Methode archOrder gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abge(DNSServerSearchOrder as String) DNSServerSearchOrder=Der Parameter schlossen wurde. Jede andere Zahl zeigt einen Fehler an. Diese Methode ist abhängig von der Instanz und wird auf einzelne Ad»DNSServerSearchOrder« gibt die Liste der Server-IP-Adressen an, die für DNS- apter angewendet. In Windows 2000 wird die Einstellung für den Zieladapter übernommen. In NT4 ist diese Einstellung global. Serverabfragen verwendet werden. BeiBefehl wird von folgender API-Funktion bereitgestellt: spiel: 130.215.24.1 157.54.164.1 Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »SetDNSSuffixSearchOrder« ermöglicht das Festleresult as Integer = gen der Suffixsuchreihenfolge als Elementearray. Die Methode SetDNSSuffixSearchOrder gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abge(DNSDomainSuffixSearchOrder as schlossen wurde. Jede andere Zahl zeigt einen Fehler an. Diese String) DNSDomainSuffixSearchOrder=Der Pa- Methode ist unabhängig von der Instanz und wird auf alle Adapter angewendet. Nur Windows NT. rameter »DNSServerSearchOrder« gibt die Liste der Server-IP-Adressensuffixe an, Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ die für DNS-Serverabfragen verwendet Parameters werden. Beispiel: 130.215.24.1 157.54.164.1
B.116 Win32_NetworkAdapterConfiguration result as Integer = SetDynamicDNSRegistration (DomainDNSRegistrationEnabled as Boolean, FullDNSRegistrationEnabled as Boolean) DomainDNSRegistrationEnabled=Der Parameter »DomainDNSRegistrationEnabled« gibt an, ob die IP-Adressen für diese Verbindung in DNS unter dem Domänennamen registriert werden (zusätzlich zur Registrierung unter dem vollständigen DNS-Namen des Computers). Der Domänenname dieser Verbindung wird mit der Methode »SetDNSDomain()« festgelegt oder von DHCP zugeordnet. Der registrierte Name ist der Hostname des Computers mit dem angehängten Domänennamen. Dieser Parameter hat nur Bedeutung, wenn »FullDNSRegistrationEnabled« aktiviert ist. Standard: FALSE. Nur Windows 2000. Optional=Wahr FullDNSRegistrationEnabled=Der Parameter »FullDNSRegistrationEnabled« gibt an, ob die IP-Adressen für diese Verbindung unter dem vollständigen DNSNamen des Computers registriert sind. Der vollständige DNS-Name des Computers wird in der Registerkarte Netzwerkidentifikation in der Systemsteuerung angezeigt. Nur Windows 2000. result as Integer = SetIPConnectionMetric (IPConnectionMetric as Integer) IPConnectionMetric=Der Parameter »IPConnectionMetric« weist einen Wert zwischen 1 und 9999 zu. Der Parameter gibt die Kosten für die Verwendung der konfigurierten Routen für den IP-Adapter an und ist der gewichtete Wert für die Routen in der IP-Routingtabelle. Wenn mehrere Routen zu einem Ziel in der IPRoutingtabelle vorhanden sind, wird die Route mit der niedrigsten Metrik verwendet. Der Standardwert ist 1. Nur Windows 2000.
581
Die Methode »SetDynamicDNSRegistration« gibt die dynamische DNS-Registrierung der IP-Adressen für den IP-Adapter an. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Nur Windows 2000. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters
Die Methode »SetIPConnectionMetric« wird verwendet, um die Routingmetrik für den IP-Adapter festzulegen. Der Wert 0 wird zurückgegeben, wenn die Metrik festgelegt wurde. Andere Werte zeigen einen Fehler an. Nur Windows 2000. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters
582
Anhang B: WMI Klassenreferenz
result as Integer = SetWINSServer (WINSPrimaryServer as String, WINSSecondaryServer as String) WINSPrimaryServer=Der Parameter »WINSPrimaryServer« gibt die IP-Adresse des primären WINS-Servers an. WINSSecondaryServer=Der Parameter »WINSSecondaryServer« gibt die IPAdresse des sekundären WINS-Servers an. result as Integer = EnableWINS (DNSEnabledForWINSResolution as Boolean, WINSEnableLMHostsLookup as Boolean, WINSHostLookupFile as String, WINSScopeID as String) DNSEnabledForWINSResolution=Der Parameter »DNSEnabledForWINSResolution« gibt an, ob DNS (Domain Name System) für die Namensauflösung über WINS-Auflösung aktiviert ist. WINSEnableLMHostsLookup=Der Parameter »WINSEnableLMHostsLookup« gibt an, ob lokale Abfragedateien verwendet werden. Abfragedateien enthalten die Zuordnungen von IP-Adressen zu Hostnamen. WINSHostLookupFile=Der Parameter »WINSEnableLMHostsLookup« gibt die Abfragedateien mit den Zuordnungen von IP-Adressen zu Hostnamen an. Falls verfügbar, befinden sich die Dateien in %SystemRoot%\system32\drivers\usw. optional=Wahr WINSScopeID=Der Parameter »WINSScopeID« gibt die Bereichskennung an, die an den NetBIOS-Namen des Computers angehängt wird. Systeme mit der gleichen Bereichskennung können mit diesem Computer kommunizieren. optional=Wahr
Die Methode »SetWINSServer« legt den primären und sekundären WINS-Server auf dem TCP/IP-Netzwerkadapter fest. Diese Methode wird unabhängig vom Netzwerkadapter angewendet. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Device Input and Output Functions|DeviceIoControl Die Methode »EnableWINS« TCP/IP-spezifische WINSEinstellungen unabhängig vom Netzwerkadapter. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services
B.116 Win32_NetworkAdapterConfiguration result as Integer = SetTcpipNetbios (TcpipNetbiosOptions as Integer) TcpipNetbiosOptions=Der Parameter »TcpipNetbiosOptions« gibt eine Bitmap für die möglichen NetBIOS-Einstellungen über TCP/IP an. BitValues = Array: 0=EnableNetbiosViaDhcp 1=EnableNetbios 2=DisableNetbios result as Integer = EnableIPSec (IPSecPermitIPProtocols as String, IPSecPermitTCPPorts as String, IPSecPermitUDPPorts as String) IPSecPermitIPProtocols=Der Parameter »IPSecPermitIPProtocols« gibt die Protokolle an, die über IP ausgeführt werden können. Der Wert Null gibt an, daß alle Protokolle über Zugriffsrechte verfügen. Eine leere Zeichenfolge gibt an, daß kein Protokoll über Zugriffsrechte verfügt. IPSecPermitTCPPorts=Der Parameter »IPSecPermitTCPPorts« zeigt die Liste der Anschlüsse an, die Zugriffsrechte für TCP erhalten sollten. Der Wert Null gibt an, daß alle Anschlüsse über Zugriffsrechte verfügen. Eine leere Zeichenfolge gibt an, daß kein Anschluß Zugriffsrechte erhalten sollte. IPSecPermitUDPPorts=Der Parameter »IPSecPermitUDPPorts« zeigt die Liste der Anschlüsse an, die Zugriffsrechte für UDP erhalten sollten. Der Wert Null gibt an, daß alle Anschlüsse über Zugriffsrechte verfügen. Eine leere Zeichenfolge gibt an, daß kein Anschluß Zugriffsrechte erhalten sollte. result as Integer = DisableIPSec
583
Die Methode »SetTcpipNetbios« legt den Standardvorgang von NetBIOS über TCP/IP fest. Nur Windows 2000. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services
Die Methode »EnableIPSec« wird verwendet, um die IPSicherheit auf dem TCP/IP-Netzwerkadapter zu aktivieren. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Anschlüsse sind nur sicher, wenn die Eigenschaft »IPFilterSecurityEnabled« TRUE ist. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services|Tcpip\Para meters\Interfaces
Die Methode »DisableIPSec« deaktiviert die IP-Sicherheit auf dem TCP/IP-aktivierten Netzwerkadapter. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services|Tcpip\ Parameters\Interfaces
584
Anhang B: WMI Klassenreferenz
Die Methode »SetIPXVirtualNetworkNumber« legt die virtuelle IPX-Netzwerknummer (Internetworking Packet Exchange) auf dem Zielcomputer fest. Windows 2000 und Windows NT 3.51 oder höher verwenden eine interne Netzwerknummer für internes Routing. Die interne Netzwerknummer (oder die virtuelle Netzwerknummer) kennzeichnet den Computer im Netzwerk. Die Methode gibt den Wert 0 zurück, wenn sie erfolgreich ausgeführt wurde, oder einen anderen Wert, um einen Fehler anzuzeigen. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\nwlnkipx\ Parameters Die Methode »SetIPXFrameTypeNetworkPairs« legt IPXresult as Integer = SetIPXFrameTypeNetworkPairs(IPXFrameType as Integer, Netzwerknummern/Rahmenpaare für den Netzwerkadapter fest. Windows 2000 und Windows NT 3.51, und höher, verwenden eiIPXNetworkNumber as String) IPXFrameType=Der Parameter »IPXFra- ne IPX-Netzwerknummer (externe Netzwerknummer) für Routingzwecke, die jeder konfigurierten Kombination aus Rahmentyp meType« gibt ein Array mit Frametypkennungen an. Die Werte entsprechen und Netzwerkadapter zugewiesen wird. Diese Nummer muß für jedes Netzwerksegment eindeutig sein. Wenn der Rahmentyp auf den Elementen im Parameter »IPXNetAUTOMATISCH gesetzt ist, muß die Netzwerknummer 0 sein. workNumber«. Die Methode gibt den Wert 0 zurück, wenn sie erfolgreich ausValues = Array: geführt wurde. Jede andere Zahl zeigt einen Fehler an. 0=Ethernet II Befehl wird von folgender API-Funktion bereitgestellt: 1=Ethernet 802.3 Win32Registry|SYSTEM\CurrentControlSet\Services\nwlnkipx\ 2=Ethernet 802.2 Parameters\Adapters 3=Ethernet SNAP 4=AUTO IPXNetworkNumber=Der Parameter »IPXNetworkNumber« gibt die Zeichen an, die einen Adapter im Computersystem eindeutig kennzeichnen. Die NetWare Link (NWLink) IPX/SPX-kompatible Übertragung in Windows 2000 und Windows NT 3.51, oder höher, verwendet zwei unterschiedliche Netzwerknummerntypen. Diese externe Netzwerknummer muß für jedes Netzwerksegment eindeutig sein. Für die Werte in dieser Liste ist ein entsprechender Wert im Parameter »IPXFrameType« erforderlich, um den Paketrahmentyp des Netzwerks zu identifizieren. result as Integer = SetIPXVirtualNetworkNumber (IPXVirtualNetNumber as String) IPXVirtualNetNumber=Der Parameter »IPXVirtualNetNumber« gibt die virtuelle Netzwerknummer für das System an.
B.116 Win32_NetworkAdapterConfiguration
585
Die Methode »SetDatabasePath«, die den Pfad zu den StandardInternetdatenbankdateien (HOSTS, LMHOSTS, NETWORKS, PROTOCOLS) angibt, wird von der Windows SocketsSchnittstelle verwendet. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Standard: %SystemRoot%\system32\drivers\usw. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »SetIPUseZeroBroadcast« legt die Verwendung von IP-Zeros-Broadcasts fest. Wenn dieser Parameter TRUE ist, verwendet IP Zeros-Broadcasts (0.0.0.0) anstatt Ones-Broadcasts (255.255.255.255). Die meisten Systeme verwenden OnesBroadcasts, aber die von BSD-Implementation abgeleiteten verwenden Zeros-Broadcasts. Systeme, die andere Broadcasts verwenden, können nicht im gleichen Netzwerk ausgeführt werden. Standard: FALSE. Die Methode gibt den Wert 0 zurück, wenn sie erfolgreich ausgeführt wurde. Jeder andere Wert zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »SetArpAlwaysSourceRoute« wird verwendet, um result as Integer = die Übertragung von ARP-Anforderungen von TCP/IP festzuleSetArpAlwaysSourceRoute gen. Die Methode gibt den Wert 0 zurück, wenn der Vorgang (ArpAlwaysSourceRoute as Boolean) ArpAlwaysSourceRoute=Der Parameter einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. »ArpAlwaysSourceRoute« gibt an, ob TCP/IP ARP-Abfragen überträgt. Wenn Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ dieser Parameter auf TRUE gesetzt ist, überträgt TCP/IP ARP-Abfragen mit akti- Parameters viertem Quellrouting in Token RingNetzwerken. Standardmäßig sendet der Stapel ARP-Abfragen ohne Quellrouting zuerst und wiederholt den Vorgang mit aktiviertem Quellrouting, wenn keine Antwort empfangen wird. result as Integer = SetArpUseEtherSNAP Die Methode »SetArpUseEtherSNAP« aktiviert die 802.3 SNAPVerschlüsselung für Ethernetpakete. Standardmäßig überträgt der (ArpUseEtherSNAP as Boolean) ArpUseEtherSNAP=Der Parameter »Ar- Stack Pakete im DIX-Ethernetformat (Digital, Intel, Xerox). Es werden immer beide Formate empfangen. Die Methode gibt den pUseEtherSNAP« aktiviert (TRUE) Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen TCP/IP, um Ethernetpakete mit 802.3 wurde. Jede andere Zahl zeigt einen Fehler an. SNAP-Verschlüsselung zu übertragen. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters result as Integer = SetDatabasePath (DatabasePath as String) DatabasePath=Der Parameter »DatabasePath«, der einen gültigen Pfad zu den Standard-Internetdatenbankdateien (HOSTS, LMHOSTS, NETWORKS, PROTOCOLS) für Windows 2000 und Windows NT 3.51 oder höher angibt, wird von der Windows SocketsSchnittstelle verwendet result as Integer = SetIPUseZeroBroadcast (IPUseZeroBroadcast as Boolean) IPUseZeroBroadcast=Der Parameter »IPUseZeroBroadcast« gibt an, ob IPZero-Broadcast verwendet wird. True gibt an, daß IP-Zero-Broadcast verwendet wird.
586
Anhang B: WMI Klassenreferenz
result as Integer = SetDefaultTOS (DefaultTOS as Integer) DefaultTOS=Der Parameter »DefaultTOS« gibt den TOS-Wert (Type Of Service) im Header ausgehender IP-Pakete an. Die Werte werden in RFC 791 definiert. result as Integer = SetDefaultTTL (DefaultTTL as Integer) DefaultTTL=Der Parameter »DefaultTTL« gibt den TTL-Wert im Header von ausgehenden IP-Paketen an.
result as Integer = SetDeadGWDetect (DeadGWDetectEnabled as Boolean) DeadGWDetectEnabled=Der Parameter »DeadGWDetectEnabled« gibt einen Wert an, um die Identifizierung von deaktivierten Gateways zu aktivieren. TRUE gibt an, daß die Methode die Identifizierung von deaktivierten Gateways aktiviert.
result as Integer = SetPMTUBHDetect (PMTUBHDetectEnabled as Boolean) PMTUBHDetectEnabled=Der Parameter »PMTUBHDetectEnabled« gibt an, ob die Erkennung von Black Hole-Routern aktiviert ist. TRUE gibt an, daß TCP Black Hole-Router erkennt und Pakete in andere Netzwerkpfade umleitet.
Die Methode »SetDefaultTOS« wird verwendet, um den Standard-TOS-Wert im Header von ausgehenden IP-Paketen festzulegen. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede andere Zahl zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »SetDefaultTTL« wird verwendet, um den Standard-TTL-Wert im Header von ausgehenden IP-Paketen festzulegen. Der TTL-Wert gibt die Anzahl der Router für ein IP-Paket an. Jeder Router verringert den TTL-Wert eines Pakets um Eins und verwirft das Paket mit dem TTL-Wert 0. Standard: 32. Gültiger Bereich: 1 – 255 Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »SetDeadGWDetect« aktiviert die Identifizierung von deaktivierten Gateways. Wenn der Wert dieses Parameters TRUE ist, werden deaktivierte Gateways von TCP identifiziert. TCP ändert IP zu einem Reservegateway, wenn ein Segment mehrmals übertragen wird, ohne eine Rückmeldung zu erhalten. Die Methode gibt den Wert 0 zurück, wenn sie erfolgreich ausgeführt wurde. Jeder andere Wert zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »SetPMTUBHDetect« aktiviert die Erkennung von Black Hole-Routern. Wenn der Wert dieses Parameters TRUE ist, versucht TCP Black Hole-Router während dem Identifizieren des MTU-Pfades zu erkennen. Ein Black Hole-Router gibt keine ICMP-Meldungen bei nicht erreichbaren Zielen zurück, wenn ein IP-Datagramm fragmentiert werden muß und das Bit »Keine Fragmentierung« gesetzt ist. TCP ist vom Empfang dieser Meldungen abhängig, um einen MTU-Pfad zu identifizieren. Wenn diese Funktion aktiviert ist, sendet TCP Segmente ohne das Bit »Keine Fragmentierung«, wenn mehrere Segmentübertragungen nicht bestätigt werden. Wenn das Segment bestätigt wird, wird die maximale Segmentgröße erhöht und das Bit »Keine Fragmentierung« wird für künftige Pakete gesetzt. Wenn die Black HoleErkennung aktiviert ist, wird die maximale Anzahl der erneuten Segmentübertragungen erhöht. Die Methode gibt den Wert 0 zurück, wenn sie erfolgreich ausgeführt wurde. Jeder andere Wert zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters
B.116 Win32_NetworkAdapterConfiguration
587
Die Methode »SetPMTUDiscovery« aktiviert die Identifizierung der MTU (Maximum Transmission Unit). Wenn der Wert dieses Parameters True ist, versucht TCP die MTU (die größte Paketgröße) über den Pfad zum Remotehost zu identifizieren. Durch Identifizieren des MTU-Pfads und Beschränken der TCPSegmente auf diese Größe, kann die Fragmentierung von Routern vermieden werden, die Netzwerke mit unterschiedlicher MTU verbinden. Die Fragmentierung wirkt sich ungünstig auf den TCP-Durchsatz und die Netzwerkauslastung aus. Wenn der Wert dieses Parameter False ist, wird eine MTU von 576 Bytes für alle Verbindungen außerhalb des Subnetzes verwendet. Standard: TRUE. Die Methode gibt den Wert 0 zurück, wenn sie erfolgreich ausgeführt wurde. Jeder andere Wert zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »SetForwardBufferMemory« gibt die Größe des result as Integer = Speichers an, der von IP zum Speichern von Paketdaten in der SetForwardBufferMemory Routerpaketwarteschlange zugeordnet wird. Wenn dieser Puffer (ForwardBufferMemory as Integer) ForwardBufferMemory=Der Parameter voll ist, beginnt der Router Pakete in der Warteschlange zu ver»ForwardBufferMemory« gibt die Größer werfen. Der Wert dieses Parameters muß ein Vielfaches von 256 sein, da Datenpuffer von Paketwarteschlangen 256 Bytes groß der Routerpaketwarteschlange an, die zum Speichern von Paketdaten verwendet sind. Für größere Pakete sind mehrere Puffer miteinander verkettet. Der IP-Header für ein Paket wird separat gespeichert. wird. Dieser Parameter wird ignoriert, und die Puffer werden nicht zuUnits=Bytes geordnet, wenn der IP-Router nicht aktiviert ist. Die Puffergröße kann der Netzwerk-MTU entsprechen oder kleiner als 0xFFFFFFFF sein. Standard: 74240 (fünfzig 1480 Byte Pakete, gerundet zu einem Vielfachen von 256). Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »SetIGMPLevel« legt fest, in wie weit das System IPresult as Integer = SetIGMPLevel Multicast unterstützt und das IGM-Protokoll verwendet (Internet (IGMPLevel as Integer) IGMPLevel=Der Parameter »IGMPLevel« Group Management) verwendet. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde. Jede legt fest, in wie weit das System IPandere Zahl zeigt einen Fehler an. Multicast unterstützt und das IGMBefehl wird von folgender API-Funktion bereitgestellt: Protokoll verwendet (Internet Group Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Management) verwendet. Auf Ebene 0 Parameters wird Multicast nicht unterstützt. Auf Ebene 1 werden nur IP-Multicastpakete gesendet. Auf Ebene 2 werden IPMulticastpakete gesendet und das ICGProtokoll wird zum Empfangen von Multicastpaketen verwendet. result as Integer = SetPMTUDiscovery (PMTUDiscoveryEnabled as Boolean) PMTUDiscoveryEnabled=Der Parameter »PMTUDiscoveryEnabled« aktiviert TCP, um die MTU (die größte Paketgröße) über den Pfad zum Remotehost zu identifizieren. True, gibt an, daß TCP versucht, die MTU zu identifizieren.
588
Anhang B: WMI Klassenreferenz
Values = Array: 0=Kein Multicast 1=IP-Multicast 2=IP/IGMP-Multicast result as Integer = SetKeepAliveInterval (KeepAliveInterval as Integer) KeepAliveInterval=Der Parameter »KeepAliveInterval« gibt den Wert für das Zeitintervall zwischen Keep AliveÜbertragungen an, bis eine Rückmeldung empfangen wird. Units=Milliseconds
result as Integer = SetKeepAliveTime (KeepAliveTime as Integer) KeepAliveTime=Der Parameter »KeepAliveTime« gibt das Zeitintervall an, nachdem TCP überprüft, ob eine Verbindung im Leerlauf noch verfügbar ist. Units=Milliseconds
result as Integer = SetMTU (MTU as Integer) MTU=Der Eingabeparameter »MTU« gibt die Standard-MTU (Maximum Transmission Unit) für eine Netzwerkschnittstelle an. Der Wertebereich umfaßt die minimale Paketgröße bis zur vom Netzwerk unterstützten MTU.
Die Methode »SetKeepAliveInterval« legt das Zeitintervall zwischen Keep Alive-Übertragungen fest, bis eine Rückmeldung empfangen wird. Wenn eine Rückmeldung empfangen wird, wird die Verzögerung bis zur nächsten Keep Alive-Übertragung erneut vom Wert in »KeepAliveTime« gesteuert. Die Verbindung wird abgebrochen, nachdem die von »TcpMaxDataRetransmissions« angegebene Anzahl der erneuten Übertragungen unbeantwortet bleiben. Die Methode gibt den Wert 0 zurück, wenn sie erfolgreich ausgeführt wurde. Jede andere Zahl zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »SetKeepAliveTime« legt fest, wie oft TCP durch Senden eines Keep Alive-Pakets überprüft, ob eine Verbindung im Leerlauf noch verfügbar ist. Wenn das Remotesystem erreicht werden kann und aktiv ist, wird die Keep Alive-Übertragung bestätigt. Keep Alive-Pakete werden nicht standardmäßig gesendet. Diese Funktion kann von einer Anwendung aktiviert werden. Die Methode gibt den Wert 0 zurück, wenn sie erfolgreich ausgeführt wurde. Jede andere Zahl zeigt einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »SetMTU« wird verwendet, um die Standard-MTU (Maximum Transmission Unit) für eine Netzwerkschnittstelle festzulegen. Die MTU ist die maximale Paketgröße (in Bytes), die über das Netzwerk übertragen wird. Ein IP-Datagramm kann mehrere Pakete umfassen. Werte, die größer als der Standardwert für das Netzwerk sind, verwenden die Standard-MTU. Werte kleiner als 68, verwenden eine MTU von 68. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde, oder einen anderen Wert, um einen Fehler anzuzeigen. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters
B.116 Win32_NetworkAdapterConfiguration result as Integer = SetNumForwardPackets (NumForwardPackets as Integer) NumForwardPackets=Der Parameter »NumForwardPackets« gibt die Anzahl der IP-Paketheader für die Routerpaketwarteschlange an. Dieser Wert sollte mindestens dem Wert in der Eigenschaft »ForwardBufferMemory« dividiert durch die maximale IP-Datengröße des mit dem Router verbundenen Netzwerks entsprechen. Der Wert sollte nicht größer als der Wert in »ForwardBufferMemory« dividiert durch 256 sein, da für jedes Paket mindestens 256 Bytes Pufferspeicher erforderlich ist. Die optimale Anzahl weitergeleiteter Paket hängt vom Typ des Netzwerkverkehrs ab und liegt zwischen diesen zwei Werten. Wenn der Router deaktiviert ist, wird dieser Parameter ignoriert und es werden keine Header zugeordnet. Gültiger Bereich: 1 – 0xFFFFFFFE. result as Integer = SetTcpMaxConnectRetransmissions (TcpMaxConnectRetransmissions as Integer) TcpMaxConnectRetransmissions=Der Parameter »TcpMaxConnectRetransmissions« gibt an, wie oft TCP versucht, eine Verbindungsanforderung erneut zu übertragen, bevor der Vorgang abgebrochen wird. Gültiger Bereich: 0 – 0xFFFFFFFF. result as Integer = SetTcpMaxDataRetransmissions (TcpMaxDataRetransmissions as Integer) TcpMaxDataRetransmissions=Der Parameter »TcpMaxDataRetransmissions« gibt an, wie oft TCP versucht, einzelne Datensegmente erneut zu übertragen, bevor die Verbindung abgebrochen wird. Gültiger Bereich: 0 – 0xFFFFFFFF.
589
Die Methode »SetNumForwardPackets« gibt die Anzahl der IPPaketheader für die Routerpaketwarteschlange an. Wenn alle Header verwendet werden, werden Pakete in der Warteschlange verworfen. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters
Die Methode »SetTcpMaxConnectRetransmissions« wird verwendet, um festzulegen, wie oft TCP versucht, eine Verbindungsanforderung erneut zu übertragen, bevor der Vorgang abgebrochen wird. Das ursprüngliche Zeitlimit für die erneute Übertragung von 3 Sekunden wird mit jedem Versuch verdoppelt. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters|TcpMaxConnectRetransmissions
Die Methode »SetTcpMaxDataRetransmissions« bestimmt, wie oft TCP versucht, einzelne Datensegmente erneut zu übertragen, bevor die Verbindung abgebrochen wird. Der Zeitüberschreitungswert wird mit jeder erneuten Übertragung verdoppelt. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters
590
Anhang B: WMI Klassenreferenz
result as Integer = SetTcpNumConnections (TcpNumConnections as Integer) TcpNumConnections=Der Parameter »TcpNumConnections« gibt die maximale Anzahl der gleichzeitig geöffneten Verbindungen an. Gültiger Bereich: 0 – 0xFFFFFE. result as Integer = SetTcpUseRFC1122UrgentPointer (TcpUseRFC1122UrgentPointer as Boolean) TcpUseRFC1122UrgentPointer=Der Parameter »TcpUseRFC1122UrgentPointer« gibt an, ob TCP für dringende Daten die RFC 1122-Spezifikation oder den Modus von BSD abgeleiteten Systemen verwendet. TRUE gibt an, daß dringende Daten im RFC 1122-Modus gesendet werden.
Die Methode »TcpNumConnections« legt die maximale Anzahl der gleichzeitig geöffneten Verbindungen fest. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters
Die Methode »SetTcpUseRFC1122UrgentPointer« gibt an, ob TCP für dringende Daten die RFC 1122-Spezifikation oder den Modus von Berkeley Software Design (BSD) abgeleiteten Systemen verwendet. Die zwei Methoden definieren den entsprechenden Zeiger im TCP-Header und die Länge der dringenden Daten unterschiedlich und können nicht zusammen verwendet werden. Der Standard für Windows 2000 und Windows NT Version 3.51 oder höher ist der BSD-Modus. Die Methode gibt den Wert 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde, oder einen anderen Wert, um einen Fehler anzuzeigen. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »SetTcpWindowSize« wird verwendet, um die maresult as Integer = SetTcpWindowSize ximale TCP-Empfangsfenstergrößen festzulegen. Das Empfangs(TcpWindowSize as Integer) fenster gibt die Anzahl der Bytes an, die ohne Bestätigung überTcpWindowSize=Der Parameter tragen werden können. Größere Empfangsfenster verbessern im »TcpWindowSize« gibt die maximale TCP-Empfangsfenstergröße an, die ver- allgemeinen die Leistung in Netzwerken mit hoher Verzögerung oder Bandbreite. Das Empfangsfenster sollte ein Vielfaches der fügbar ist. Gültiger Bereich: 0 – 65535. maximalen TCP-Segmentgröße sein. Die Methode gibt den Wert Units=Bytes 0 zurück, wenn der Vorgang einwandfrei abgeschlossen wurde, oder einen anderen Wert, um einen Fehler anzuzeigen. Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters Die Methode »EnableIPFilterSec« wird verwendet, um die IPresult as Integer = EnableIPFilterSec Sicherheit global für alle IP-Netzwerkadapter zu aktivieren. Wenn (IPFilterSecurityEnabled as Boolean) IPFilterSecurityEnabled=Der Parameter die Sicherheit aktiviert ist, können betriebsbereite Sicherheits»IPFilterSecurityEnabled« gibt an, ob die merkmale für einen Netzwerkadapter mit der Methode »EnableIPSec« gesteuert werden. Die Methode gibt den Wert 0 zurück, IP-Sicherheit global für alle IPNetzwerkadapter aktiviert ist. Wenn der wenn der Vorgang einwandfrei ausgeführt wurde, und den Wert 1, wenn ein Neustart erforderlich ist. Jeder andere Wert zeigt eiEingabeparameter »IPFilterSecurityEnnen Fehler an. abled« TRUE ist, ist die Sicherheit aktiviert. Der gesamte Anschluß- und Proto- Befehl wird von folgender API-Funktion bereitgestellt: Win32Registry|SYSTEM\CurrentControlSet\Services\Tcpip\ kollverkehr wird nicht gefiltert. Parameters
B.116 Win32_NetworkAdapterConfiguration ArpAlwaysSourceRoute
ArpUseEtherSNAP
Caption DatabasePath
DeadGWDetectEnabled
DefaultIPGateway
DefaultTOS
DefaultTTL
Description
591
Die Eigenschaft »ArpAlwaysSourceRoute« gibt an, ob für ARP (Address Resolution Protocol) immer Quellrouting verwenden werden muß. Wenn diese Eigenschaft TRUE ist, überträgt TCP/IP ARP-Abfragen mit aktiviertem Quellrouting in Token RingNetzwerken. Standardmäßig werden ARP-Abfragen ohne Quellrouting ausgeführt. Wenn keine Antwort empfangen wird, wird der Vorgang mit aktiviertem Quellrouting wiederholt. Quellrouting ermöglicht das Routing von Netzwerkpaketen über verschiedene Netzwerktypen. Standard: FALSE. Die Eigenschaft »ArpUseEtherSNAP« gibt an, ob Ethernetpakete IEEE 802.3 SNAP-Verschlüsselung verwendet. Wenn dieser Parameter auf 1 gesetzt ist, überträgt TCP/IP Ethernetpakete mit 802.3 SNAP-Verschlüsselung. Standardmäßig werden Pakete im DIX-Ethernetformat gesendet. Windows NT/Windows 2000Systeme können beide Formate empfangen. Standard: FALSE. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_ Setting«. Die Eigenschaft »DatabasePath« gibt einen gültigen WindowsDateipfad zu den Standard-Internetdatenbankdateien (HOSTS, LMHOSTS, NETWORKS, PROTOCOLS) an. Der Pfad wird von der Windows Sockets-Schnittstelle verwendet. Nur Windows NT und Windows 2000. Die Eigenschaft »DeadGWDetectEnabled« gibt an, ob deaktivierte Gateways identifiziert werden. Wenn der Wert dieses Parameters TRUE ist, werden deaktivierte Gateways von TCP identifiziert. TCP ändert IP zu einem Reservegateway, wenn ein Segment mehrmals übertragen wird, ohne eine Rückmeldung zu erhalten. Standard: TRUE. Die Eigenschaft »DefaultIPGateway« enthält eine Liste der IPAdressen von Standardgateways, die vom Computersystem verwendet werden. Beispiel: 194.161.12.1 194.162.46.1 Die Eigenschaft »DefaultTOS« gibt den Standard-TOS-Wert (Type Of Service) im Header ausgehender IP-Pakete an. Die Werte werden in RFC 791 definiert. Standard: 0, Gültiger Bereich: 0 – 255. Die Eigenschaft »DefaultTTL« gibt den TTL-Standardwert (Time To Live) im Header ausgehender IP-Pakete an. TTL gibt den Anzahl der Router an, die ein IP-Paket übergibt, bevor es verworfen wird. Jeder Router verringert diesen Wert um Eins und verwirft das Paket, wenn TTL 0 ist. Standard: 32. Gültiger Bereich: 1 – 255. Eine Textbeschreibung des Objekts »CIM_Setting«.
592
Anhang B: WMI Klassenreferenz
DHCPEnabled
DHCPLeaseExpires
DHCPLeaseObtained
DHCPServer DNSDomain
DNSDomainSuffixSearchOrder
DNSEnabledForWINSResolution
DNSHostName
Die Eigenschaft »DHCPEnabled« gibt an, ob ein DHCP-Server (Dynamic Host Configuration Protocol) beim Herstellen einer Netzwerkverbindung dem Computersystem automatisch eine IPAdresse zuweist. Werte: TRUE oder FALSE. TRUE gibt an, daß DHCP aktiviert ist. Die Eigenschaft »DHCPLeaseExpires« gibt das Ablaufdatum für eine geleaste IP-Adresse an, die dem Computer vom DHCPServer zugewiesen wurde. Beispiel: 20521201000230.000000000 Die Eigenschaft »DHCPLeaseObtained« gibt das Ausstellungsdatum der geleasten IP-Adresse an, die dem Computer vom DHCPServer zugewiesen wurde. Beispiel: 19521201000230.000000000 Die Eigenschaft »DHCPServer« gibt die IP-Adresse des DHCPServers an. Beispiel: 154.55.34 Die Eigenschaft »DNSDomain« gibt einen Organisationsnamen gefolgt von einem Punkt und einer Erweiterung an. Der Name kann alle Buchstaben von A bis Z, die Ziffern 0 bis 9, Bindestriche und einen Punkt als Trennzeichen enthalten. Beispiel: microsoft.com. Die Eigenschaft »DNSDomainSuffixSearchOrder« gibt die DNSDomänensuffixe an, die während der Namensauflösung an Hostnamen angehängt werden. Wenn ein vollqualifizierter Domänenname (FQDN) von einem Hostnamen aufgelöst wird, wird der lokale Domänenname angehängt. Wenn der Domänenname nicht angehängt werden kann, werden anhand der Domänensuffixliste zusätzliche FQDNs erstellt. Beispiel: samples.microsoft.com example.microsoft.com Die Eigenschaft »DNSEnabledForWINSResolution« gibt an, ob DNS (Domain Name System) für die Namensauflösung über WINS (Windows Internet Naming Service) aktiviert ist. Wenn der Name mit DNS nicht aufgelöst werden kann, wird die Anforderung an WINS weitergeleitet. Die Eigenschaft »DNSHostName« gibt den Hostnamen an, der zum Identifizieren des lokalen Computers für die Authentifizierung durch einige Dienstprogramme verwendet wird. Andere TCP/IP-basierte Dienstprogramme können diesen Wert verwenden, um den Namen des lokalen Computers zu ermitteln. Hostnamen werden auf DNS-Servern in einer Tabelle gespeichert, die Namen zu IP-Adressen für DNS zuordnet. Der Name kann aus den Buchstaben A bis Z, den Zahlen 0 bis 9, einem Bindestrich und einem Punkt als Trennzeichen bestehen. Standardmäßig ist dieser Wert der Microsoft-Netzwerkcomputername. Der Netzwerkadministrator kann einen anderen Hostnamen erstellen, ohne den Computernamen zu ändern. Beispiel: corpdns
B.116 Win32_NetworkAdapterConfiguration DNSServerSearchOrder
DomainDNSRegistrationEnabled
ForwardBufferMemory
FullDNSRegistrationEnabled
GatewayCostMetric
IGMPLevel
Index
593
Die Eigenschaft »DNSServerSearchOrder« gibt die Reihenfolge der Server-IP-Adressen an, die für DNS-Serverabfragen verwendet werden. Die Eigenschaft »DomainDNSRegistrationEnabled« gibt an, ob die IP-Adressen für diese Verbindung in DNS unter dem Domänennamen registriert werden (zusätzlich zur Registrierung unter dem vollständigen DNS-Namen des Computers). Der Domänenname dieser Verbindung wird mit der Methode »SetDNSDomain()« festgelegt oder von DHCP zugeordnet. Der registrierte Name ist der Hostname des Computers mit dem angehängten Domänennamen. Nur Windows 2000. Die Eigenschaft »ForwardBufferMemory« gibt die Größe des Speichers an, der von IP zum Speichern von Paketdaten in der Routerpaketwarteschlange zugeordnet wird. Wenn dieser Puffer voll ist, beginnt der Router Pakete in der Warteschlange zu verwerfen. Der Wert dieses Parameters muß ein Vielfaches von 256 sein, da Datenpuffer von Paketwarteschlangen 256 Bytes groß sind. Für größere Pakete sind mehrere Puffer miteinander verkettet. Der IP-Header für ein Paket wird separat gespeichert. Dieser Parameter wird ignoriert und die Puffer werden nicht zugeordnet, wenn der IP-Router nicht aktiviert ist. Die Puffergröße kann der Netzwerk-MTU entsprechen oder kleiner als 0xFFFFFFFF sein. Standard: 74240 (fünfzig 1480 Byte Pakete, gerundet zu einem Vielfachen von 256). Die Eigenschaft »FullDNSRegistrationEnabled« gibt an, ob die IPAdressen für diese Verbindung unter dem vollständigen DNSNamen des Computers registriert sind. Der vollständige DNSName des Computers wird in der Registerkarte Netzwerkidentifikation in der Systemsteuerung angezeigt. Nur Windows 2000. »GatewayCostMetric« gibt eine ganze Zahl zwischen 1 und 9999 für die Kostenmetrik zum Berechnen der schnellsten, zuverlässigsten und/oder der kostengünstigsten Routen an. Dieses Argument entspricht »DefaultIPGateway«. Nur Windows 2000. Die Eigenschaft »IGMPLevel« gibt an, in wie weit das System IPMulticast unterstützt und das IGM-Protokoll verwendet (Internet Group Management) verwendet. Auf Ebene 0 wird Multicast nicht unterstützt. Auf Ebene 1 werden nur IP-Multicastpakete gesendet. Auf Ebene 2 werden IP-Multicastpakete gesendet und das ICG-Protokoll wird zum Empfangen von Multicastpaketen verwendet. Standard: 2. Die Eigenschaft »Index« gibt die Indexnummer der Win32Netzwerkadapterkonfiguration an. Die Indexnummer wird verwendet, wenn mehrere Konfigurationen verfügbar sind.
594
Anhang B: WMI Klassenreferenz
IPAddress
IPConnectionMetric
IPEnabled IPFilterSecurityEnabled
IPPortSecurityEnabled
IPSecPermitIPProtocols
IPSecPermitTCPPorts
IPSecPermitUDPPorts
Die Eigenschaft »IPAddress« enthält eine Liste der IP-Adressen, die dem aktuellen Netzwerkadapter zugewiesen sind. Beispiel: 155.34.22.0 »IPConnectionMetric« gibt die Kosten für die Verwendung der konfigurierten Routen für den IP-Adapter an und ist der gewichtete Wert für die Routen in der IP-Routingtabelle. Wenn mehrere Routen zu einem Ziel in der IP-Routingtabelle vorhanden sind, wird die Route mit der niedrigsten Metrik verwendet. Der Standardwert ist 1. Nur Windows 2000. Die Eigenschaft »IPEnabled« gibt an, ob TCP/IP für diesen Netzwerkadapter gebunden und aktiviert ist. Die Eigenschaft »IPFilterSecurityEnabled« gibt an, ob die IPAnschlußsicherheit global für alle IP-Netzwerkadapter aktiviert wird. Diese Eigenschaft wird mit folgenden Eigenschaften verwendet: IPSecPermitTCPPorts, IPSecPermitUDPPorts und IPSecPermitIPProtocols. TRUE gibt an, daß die IP-Anschlußsicherheit aktiviert ist, und die Sicherheitswerte der einzelnen Netzwerkadapter aktiv sind. FALSE gibt an, daß die IP-Filtersicherheit für alle Netzwerkadapter deaktiviert ist, und ermöglicht ungefilterten Anschluß- und Protokollverkehr. Die Eigenschaft »IPPortSecurityEnabled« gibt an, ob die IP-Anschlußsicherheit global für alle IP-Netzwerkadapter aktiviert wurde. Diese Eigenschaft wurde durch »IPFilterSecurityEnabled« ersetzt. Die Eigenschaft »IPSecPermitIPProtocols« listet die Protokolle auf, die über IP ausgeführt werden können. Die Liste, die mit der Methode »EnableIPSec« definiert wird, ist leer oder enthält numerische Werte. Der Wert Null gibt an, daß alle Protokolle über Zugriffsrechte verfügen. Eine leere Zeichenfolge gibt an, daß kein Protokoll ausgeführt werden kann, wenn »IPFilterSecurityEnabled« TRUE ist. Die Eigenschaft »IPSecPermitTCPPorts« listet die Anschlüsse mit Zugriffsberechtigung für TCP auf. Die Protokolliste wird mit der Methode »EnableIPSec« definiert. Diese Liste ist leer oder enthält numerische Werte. Der Wert Null gibt an, daß alle Anschlüsse Zugriffsberechtigung haben. Eine leere Zeichenfolge gibt an, daß keinem Anschluß die Zugriffsberechtigung erteilt wurde, wenn »IPFilterSecurityEnabled« TRUE ist. Die Eigenschaft »IPSecPermitUDPPorts« listet die Anschlüsse mit UDP-Zugriffsberechtigung auf. Die Protokolliste wird mit der Methode »EnableIPSec« definiert. Diese Liste ist leer oder enthält numerische Werte. Der Wert Null gibt an, daß alle Anschlüsse Zugriffsberechtigung haben. Eine leere Zeichenfolge gibt an, daß keinem Anschluß die Zugriffsberechtigung erteilt wurde, wenn »IPFilterSecurityEnabled« TRUE ist.
B.116 Win32_NetworkAdapterConfiguration IPSubnet
IPUseZeroBroadcast
IPXAddress
IPXEnabled
IPXFrameType
IPXMediaType IPXNetworkNumber
IPXVirtualNetNumber
KeepAliveInterval
595
Die Eigenschaft »IPSubnet« enthält eine Liste der Subnetzmasken, die dem aktuellen Netzwerkadapter zugewiesen sind. Beispiel: 255.255.0 Die Eigenschaft »IPUseZeroBroadcast« gibt an, ob IP-ZerosBroadcasts verwendet werden. Wenn dieser Parameter TRUE ist, verwendet IP Zeros-Broadcasts (0.0.0.0) und das System verwendet Ones-Broadcasts (255.255.255.255). Gewöhnlich verwenden Computersysteme Ones-Broadcasts, aber die von BSDImplementation abgeleiteten verwenden Zeros-Broadcasts. Systeme, die nicht die gleichen Broadcasts verwenden, können nicht im gleichen Netzwerk ausgeführt werden. Standard: FALSE. Die Eigenschaft »IPXAddress« gibt die IPX-Adresse (Internetworking Packet Exchange) des Netzwerkadapters an. Die IPX-Adresse identifiziert einen Computer im Netzwerk. Die Eigenschaft »IPXEnabled« legt fest, ob das IPX-Protokoll (Internetwork Packet Exchange) für diesen Adapter gebunden und aktiviert ist. Die Eigenschaft »IPXFrameType« stellt ein Array mit Frametypkennungen dar. Die Werte entsprechen den Elementen in »IPXNetworkNumber«. Die Eigenschaft »IPXMediaType« stellt eine IPXMedientypkennung (Internetworking Packet Exchange) dar. Die Eigenschaft »IPXNetworkNumber« gibt die Zeichen an, die eine Rahmen-/Netzwerkadapterkombination im Computersystem eindeutig kennzeichnen. Die NetWare Link (NWLink) IPX/SPX-kompatible Übertragung in Windows 2000 und Windows NT 4.0, oder höher, verwendet zwei unterschiedliche Netzwerknummerntypen. Diese externe Netzwerknummer muß für jedes Netzwerksegment eindeutig sein. Die Reihenfolge in dieser Liste entspricht den Elementen in der Eigenschaft »IPXFrameType«. Die Eigenschaft »IPXVirtualNetNumber« identifiziert das Computersystem im Netzwerk. Windows NT/2000 verwendet die virtuelle Netzwerknummer für internes Routing. Die Eigenschaft »KeepAliveInterval« gibt das Zeitintervall zwischen Keep Alive-Übertragungen an, bis eine Rückmeldung empfangen wird. Wenn eine Rückmeldung empfangen wird, wird die Verzögerung bis zur nächsten Keep Alive-Übertragung erneut vom Wert in »KeepAliveTime« gesteuert. Die Verbindung wird abgebrochen, nachdem die von »TcpMaxDataRetransmissions« angegebene Anzahl der erneuten Übertragungen unbeantwortet bleiben. Standard: 1000. Gültiger Bereich: 1 – 0xFFFFFFFF.
596
Anhang B: WMI Klassenreferenz
KeepAliveTime
MACAddress
MTU
NumForwardPackets
PMTUBHDetectEnabled
Die Eigenschaft »KeepAliveTime« gibt an, wie oft TCP durch Senden eines Keep Alive-Pakets überprüft, ob eine Verbindung im Leerlauf noch verfügbar ist. Wenn das Remotesystem erreicht werden kann und aktiv ist, wird die Keep Alive-Übertragung bestätigt. Keep Alive-Pakete werden nicht standardmäßig gesendet. Diese Funktion kann von einer Anwendung aktiviert werden. Standard: 7,200,000 (zwei Stunden). Die Eigenschaft »MACAddress« gibt die MAC-Adresse (Media Access Control) des Netzwerkadapters an. Eine MAC-Adresse wird vom Hersteller zugewiesen, um den Netzwerkadapter eindeutig zu kennzeichnen. Beispiel: 00:80:C7:8F:6C:96 Die Eigenschaft »MTU« überschreibt die Standard-MTU (Maximum Transmission Unit) für eine Netzwerkschnittstelle. Die MTU ist die maximale Paketgröße, einschließlich der Übertragungsheader), die über das Netzwerk übertragen werden. Das IPDatagramm kann mehrere Pakete umfassen. Der Wertebereich umfaßt die minimale Paketgröße (68) bis zur vom Netzwerk unterstützten MTU. Die Eigenschaft »NumForwardPackets« gibt die Anzahl der IPPaketheader für die Routerpaketwarteschlange an. Wenn alle Header verwendet werden, werden Pakete in der Warteschlange verworfen. Dieser Wert sollte mindestens dem Wert in der Eigenschaft »ForwardBufferMemory« dividiert durch die maximale IPDatengröße des mit dem Router verbundenen Netzwerks entsprechen. Der Wert sollte nicht größer als der Wert in »ForwardBufferMemory« dividiert durch 256 sein, da für jedes Paket mindestens 256 Bytes Pufferspeicher verwendet wird. Die optimale Anzahl weitergeleiteter Paket hängt vom Typ des Netzwerkverkehrs ab und liegt zwischen diesen zwei Werten. Wenn der Router deaktiviert ist, wird dieser Parameter ignoriert und es werden keine Header zugeordnet. Standard: 50. Gültiger Bereich: 1 – 0xFFFFFFFE. Die Eigenschaft »PMTUBHDetectEnabled« gibt an, ob Black HoleRouter erkannt werden. Wenn der Wert dieses Parameters TRUE ist, versucht TCP Black Hole-Router während des Identifizierens des MTU-Pfades zu erkennen. Ein Black Hole-Router gibt keine ICMP-Meldungen bei nicht erreichbaren Zielen zurück, wenn ein IP-Datagramm fragmentiert werden muß und das Bit »Keine Fragmentierung« gesetzt ist. TCP ist vom Empfang dieser Meldungen abhängig, um einen MTU-Pfad zu identifizieren. Wenn diese Funktion aktiviert ist, sendet TCP Segmente ohne das Bit »Keine Fragmentierung«, wenn mehrere Segementübertragungen nicht bestätigt werden. Wenn das Segment bestätigt wird, wird die maximale Segmentgröße erhöht und das Bit »Keine Fragmentierung« wird für künftige Pakete gesetzt. Wenn die Black Hole-Erkennung aktiviert ist, wird die maximale Anzahl der erneuten Segmentübertragungen erhöht. Der Standardwert dieser Eigenschaft ist FALSE.
B.116 Win32_NetworkAdapterConfiguration PMTUDiscoveryEnabled
ServiceName
SettingID TcpipNetbiosOptions
TcpMaxConnectRetransmissions
TcpMaxDataRetransmissions
TcpNumConnections
TcpUseRFC1122UrgentPointer
597
Die Eigenschaft »PMTUDiscoveryEnabled« gibt an, ob der MTUPfad (Maximum Transmission Unit) identifiziert wird. Wenn der Wert dieses Parameters True ist, versucht TCP die MTU (die größte Paketgröße) über den Pfad zum Remotehost zu identifizieren. Durch Identifizieren des MTU-Pfads und Beschränken der TCP-Segemente auf diese Größe, kann die Fragmentierung von Routern vermieden werden, die Netzwerke mit unterschiedlicher MTU verbinden. Die Fragmentierung wirkt sich ungünstig auf den TCP-Durchsatz und die Netzwerkauslastung aus. Wenn der Wert dieses Parameter False ist, wird eine MTU von 576 Bytes für alle Verbindungen außerhalb des Subnetzes verwendet. Standard: TRUE. Die Eigenschaft »ServiceName« gibt den Dienstnamen des Netzwerkadapters an. Dieser Name ist gewöhnlich kürzer als der vollständige Produktname. Beispiel: Elnkii. Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »TcpipNetbiosOptions« gibt eine Bitmap für die möglichen NetBIOS-Einstellungen über TCP/IP an. Nur Windows 2000. Die Eigenschaft »TcpMaxConnectRetransmissions« gibt an, wie oft TCP versucht, eine Verbindungsanforderung auszuführen, bevor diese abgebrochen wird. Der ursprüngliche Zeitüberschreitungswert von 3 Sekunden wird bei jedem Versuch verdoppelt. Standard: 3. Gültiger Bereich: 0 – 0xFFFFFFFF. Die Eigenschaft »TcpMaxDataRetransmissions« gibt an, wie oft TCP versucht, einzelne Datensegmente erneut zu übertragen, bevor die Verbindung abgebrochen wird. Der Zeitüberschreitungswert wird mit jeder erneuten Übertragung verdoppelt. Standard: 5. Gültiger Bereich: 0 – 0xFFFFFFFF. Die Eigenschaft »TcpNumConnections« gibt die maximale Anzahl der gleichzeitig geöffneten Verbindungen an. Standard: 0xFFFFFE. Gültiger Bereich: 0 – 0xFFFFFE. Die Eigenschaft »TcpUseRFC1122UrgentPointer« gibt an, ob TCP für dringende Daten die RFC 1122-Spezifikation oder den Modus von BSD (Berkeley Software Design) abgeleiteten Systemen verwendet. Die zwei Methoden interpretieren den Dringlichkeitszeiger unterschiedlich und können nicht zusammen verwendet werden. Windows 2000 und Windows NT 3.51, oder höher, verwenden den BSD-Modus. TRUE gibt an, daß dringende Daten im RFC 1122=Modus gesendet werden. Standard: FALSE.
598
Anhang B: WMI Klassenreferenz
TcpWindowSize
WINSEnableLMHostsLookup
WINSHostLookupFile
WINSPrimaryServer WINSScopeID
WINSSecondaryServer
Die Eigenschaft »TcpWindowSize« enthält die maximale TCPEmpfangsfenstergröße. Das Empfangsfenster gibt die Anzahl der Bytes an, die ohne Bestätigung übertragen werden können. Größere Empfangsfenster verbessern die Leistung über Netzwerke mit hoher Verzögerung oder Bandbreite. Das Empfangsfenster sollte ein gerades Vielfaches der maximalen TCP-Segmentgröße sein. Standard: Die TCP-Datengröße multipliziert mit 4 oder ein gerades Vielfaches der TCP-Datengröße, aufgerundet zu nächsten Vielfachen von 8192. Der Standard für Ethernetnetzwerke ist 8760. Gültiger Bereich: 0 – 65535. Die Eigenschaft »WINSEnableLMHostsLookup« gibt an, ob lokale Abfragedateien verwendet werden. Abfragedateien enthalten die Zuordnungen von IP-Adressen zu Hostnamen. Pfad: %SystemRoot%\system32\drivers\usw. Die Eigenschaft »WINSHostLookupFile« enthält den Pfad zu einer WINS-Abfragedatei im lokalen System. Diese Datei enthält die Zuordnung von IP-Adressen zu Hostnamen. Wenn die angegebene Datei gefunden wird, wird sie in den Ordner\system32\drivers\etc kopiert. Diese Eigenschaft ist nur gültig, wenn die Eigenschaft »WINSEnableLMHostsLookup« TRUE ist. Die Eigenschaft »WINSPrimaryServer« gibt die IP-Adresse für den primären WINS-Server an. Die Eigenschaft »WINSScopeID« isoliert eine Gruppe von Computersystemen, die nur miteinander kommunizieren. Die Bereichskennung ist ein Zeichenfolgenwert, der an den NetBIOSNamen angehängt und für alle NetBIOS-Transaktionen über TCP/IP verwendet wird. Computer, die mit der gleichen Bereichskennung konfiguriert sind, können mit diesem Computer kommunizieren. TCP/IP-Clients mit unterschiedlichen Bereichskennungen ignorieren Pakete von Computern mit dieser Bereichskennung. Diese Eigenschaft ist nur gültig, wenn die Methode »EnableWINS« erfolgreich ausgeführt wird. Die Eigenschaft »WINSSecondaryServer« gibt die IP-Adresse für den sekundären WINS-Server an.
B.117 Win32_NetworkAdapterSetting Element Setting
Die Referenz »Element« stellt die Eigenschaften eines Netzwerkadapters mit einer bestimmten Eigenschaft dar. Die Referenz »Setting« stellt die Konfigurationseinstellungen des Netzwerkadapters dar.
B.118 Win32_NetworkClient
599
B.118 Win32_NetworkClient Caption Description InstallDate Manufacturer Name Status
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Manufacturer« gibt den Hersteller des Netzwerkclients im Win32System an. Beispiel: Microsoft Corporation Die Eigenschaft »Name« gibt den Netzwerknamen des auf einem Win32-System ausgeführten Clients an. Beispiel: Microsoft Windows Network Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.119 Win32_NetworkConnection AccessMask
Caption Comment ConnectionState ConnectionType Description DisplayType InstallDate
Die Eigenschaft »AccessMask« ist ein Bitarray, das die in der Netzwerkfreigabe festgelegten Zugriffsrechte des Benutzers oder der Gruppe darstellt, für die die Instanz zurückgegeben wird. Diese Eigenschaft wird nur in Windows NT und Windows 2000 unterstützt. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Comment« enthält einen Kommentar vom Netzwerkanbieter. Die Eigenschaft »ConnectionState« gibt den aktuellen Status der Netzwerkverbindung an. Die Eigenschaft »ConnectionType« gibt den Verbindungstyp für das Netzwerk an. Beispiel: Permanent. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DisplayType« gibt an, wie das Netzwerkobjekt in einer Netzwerkoberfläche angezeigt wird. Beispiel: Allgemein. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein.
600
Anhang B: WMI Klassenreferenz
LocalName Name
Persistent
ProviderName RemoteName
RemotePath ResourceType Status
UserName
Die Eigenschaft »LocalName« gibt den lokalen Namen des verbundenen Netzwerkgeräts an. Beispiel: c:\public. Die Eigenschaft »Name« gibt den Namen der aktuellen Netzwerkverbindung an. Der Name ist eine Kombination der Werte in den Eigenschaften »RemoteName« und »LocalName«. Beispiel: \\NTRELEASE (c:\public). Die Eigenschaft »Persistent« bestimmt, ob die Verbindung beim nächsten Anmelden automatisch wiederhergestellt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß die Netzwerkverbindung automatisch wiederhergestellt wird. Die Eigenschaft »ProviderName« enthält den Namen des Ressourcenanbieters. Diese Eigenschaft ist Null, wenn der Anbieter unbekannt ist. Die Eigenschaft »RemoteName« enthält den Remotenamen für eine Netzwerkressource. Für eine aktuelle oder permanente Verbindung enthält diese Eigenschaft den Netzwerknamen, der in der Eigenschaft »LocalName« angegeben ist. Der Name muß den Namenskonventionen des Netzwerkanbieters entsprechen. Beispiel: \\NTRELEASE. Die Eigenschaft »RemotePath« enthält den vollständigen Pfad zur Netzwerkressource. Beispiel: \\infosrv1\public Die Eigenschaft »ResourceType« gibt den Ressourcentyp für die Aufzählung oder die Verbindung an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »UserName« enthält den Benutzernamen oder Standardbenutzernamen zum Herstellen einer Netzwerkverbindung. Beispiel: SYSTEM.
B.120 Win32_NetworkLoginProfile AccountExpires
AuthorizationFlags
Die Eigenschaft »AccountExpires« gibt an, wann das Konto abläuft. Dieser Wert wird aus der Anzahl der Sekunden berechnet, die seit dem 1. Januar 1970 00:00:00 verstrichen sind. Format: yyyymmddhhmmss.mmmmmm sutc. Beispiel: 20521201000230.000000 000 Die Eigenschaft »AuthorizationFlags« enthält Flags, die festlegen, welche Ressourcen der Benutzer verwenden bzw. ändern darf.
B.120 Win32_NetworkLoginProfile BadPasswordCount Caption CodePage Comment CountryCode Description Flags
FullName
HomeDirectory
601
Die Eigenschaft »BadPasswordCount« gibt an, wie oft der Benutzer beim Anmelden an ein Win32-System ein falsches Kennwort eingibt. Beispiel: 0 Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Die Eigenschaft »CodePage« gibt die Codepage für die gewählte Sprache an. Eine Codepage ist der verwendete Zeichensatz. Die Eigenschaft »Comment« enthält einen Kommentar oder eine Beschreibung für das Anmeldeprofil. Die Eigenschaft »CountryCode« gibt den Länder-/Regionscode für die gewählte Sprache an. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »Flags« gibt die für dieses Netzwerkprofil verfügbaren Eigenschaften an. Verfügbare Eigenschaften: UF_SCRIPT – Führt ein Anmeldescript aus. Dieser Wert muß für LAN Manager 2.0 und Windows NT/Windows 2000 festgelegt werden. UF_ACCOUNTDISABLE – Deaktiviert das Benutzerkonto. UF_HOMEDIR_REQUIRED – Ein Basisverzeichnis ist erforderlich. Dieser Wert wird in Windows NT/Windows 2000 ignoriert. UF_PASSWD_NOTREQD – Kein Kennwort erforderlich. UF_PASSWD_CANT_CHANGE – Der Benutzer kann das Kennwort nicht ändern. UF_LOCKOUT – Sperrt das Konto. Für NetUserSetInfo kann dieser Wert gelöscht werden, um ein gesperrtes Konto freizugeben. Dieser Wert kann nicht verwendet werden, um ein nicht gesperrtes Konto zu sperren. UF_DONT_EXPIRE_PASSWD – Für Windows NT/Windows 2000: Das Kennwort für das Konto sollte nicht ablaufen. Folgende Eigenschaften beschreiben den Kontotyp. Es kann nur ein Wert festgelegt werden: UF_NORMAL_ACCOUNT – Standardbenutzerkonto. UF_TEMP_DUPLICATE_ACCOUNT – Konto für Benutzer mit einem primären Konto in einer anderen Domäne, das den Zugriff auf diese Domäne ermöglicht, aber nicht auf Domänen, die dieser Domäne vertrauen. Der Benutzer-Manager bezeichnet diesen Kontotyp als lokales Benutzerkonto. UF_WORKSTATION_TRUST_ACCOUNT – Ein Computerkonto für eine Windows NT/Windows 2000-Arbeitsstation oder einen Windows NT/Windows 2000-Server, der Mitglied in dieser Domäne ist. UF_SERVER_TRUST_ACCOUNT – Ein Computerkonto für einen Reservedomänencontroller, der Mitglied in dieser Domäne ist. UF_INTERDOMAIN_TRUST_ACCOUNT – Vertraut einem Konto für eine Domäne, die anderen Domänen vertraut. Die Eigenschaft »FullName« gibt den vollständigen Namen des Benutzers im Netzwerkanmeldeprofil an. Diese Zeichenfolge kann leer sein, wenn dem Benutzernamen kein vollständiger Name zugewiesen wird. Die Eigenschaft »HomeDirectory« gibt den Pfad zum Basisverzeichnis des Benutzers an. Diese Zeichenfolge kann leer sein, wenn kein Basisverzeichnis angegeben wird. Beispiel: \HOMEDIR
602
Anhang B: WMI Klassenreferenz
HomeDirectoryDrive
LastLogoff
LastLogon
LogonHours
LogonServer
MaximumStorage
Name
NumberOfLogons
Die Eigenschaft »HomeDirectoryDrive« gibt den Laufwerkbuchstaben an, der dem Basisverzeichnis des Benutzers zum Anmelden zugewiesen wurde. Beispiel: C: Die Eigenschaft »LastLogoff« gibt an, wann sich der Benutzer zuletzt vom System abgemeldet hat. Dieser Wert wird aus der Anzahl der Sekunden berechnet, die seit dem 1. Januar 1970 um 00:00:00 vergangen ist. Der Wert Null gibt an, daß der letzte Abmeldezeitpunkt unbekannt ist. Der Wert hat folgendes Format: yyyymmddhhmmss.mmmmmm sutc. Beispiel: 19521201000230.000000 000 Die Eigenschaft »LastLogon« gibt an wann sich der Benutzer zuletzt am System angemeldet hat. Dieser Wert wird aus der Anzahl der Sekunden berechnet, die seit dem 1. Januar 1970 um 00:00:00 vergangen ist. Der Wert Null gibt an, daß der letzte Anmeldezeitpunkt unbekannt ist. Der Wert hat folgendes Format: yyyymmddhhmmss.mmmmmm sutc. Beispiel: 19521201000230.000000 000 Die Eigenschaft »LogonHours« gibt die Uhrzeiten an, zu denen sich der Benutzer während der Woche anmelden kann. Jedes Bit stellt eine in »UnitsPerWeek« angegebene Zeiteinheit dar. Wenn die Zeiteinheit z.B. Stunden sind, ist das erste Bit (Bit 0, Word 0) Sonntag, 0:00 bis 0:59; das zweite Bit (Bit 1, Word 0) ist Sonntag, 1:00 bis 1:59; usw. Wenn dieses Mitglied NULL ist, sind keine Zeiteinschränkungen vorhanden. Die Zeit ist auf GMT gesetzt und muß für andere Zeitzonen angepaßt werden. Die Eigenschaft »LogonServer« enthält den Namen des Servers, an den die Anmeldeanforderungen gesendet werden. Den Servernamen müssen zwei umgekehrte Schrägstriche vorangestellt werden. Ein Servername mit einem Stern gibt an, daß die Anmeldeanforderung von jedem Anmeldeserver verarbeitet werden kann. Eine leere Zeichenfolge gibt an, daß die Anforderungen an den Domänencontroller gesendet werden. Beispiel: \\MyServer Die Eigenschaft »MaximumStorage« gibt den maximal verfügbaren Speicherplatz für den Benutzer an. Wenn »MaximumStorage« auf USER_MAXSTORAGE_UNLIMITED gesetzt ist, kann der Benutzer den gesamten verfügbaren Speicherplatz verwenden. Beispiel: 10000000 Die Eigenschaft »Name« gibt den Namen des Benutzerkontos in einer bestimmten Domäne oder auf einem Computer an. Die Anzahl der Zeichen darf den Wert von UNLEN nicht überschreiten. Beispiel: somedomain\johndoe Die Eigenschaft »NumberOfLogons« gibt an, wie oft sich der Benutzer an diesem Konto angemeldet hat. 0xFFFFFFFF gibt an, daß der Wert unbekannt ist. Diese Eigenschaft wird auf jedem Reservedomänencontroller (BDC) separat verwaltet. Verwenden Sie den größten Wert aus allen BDCs, um einen genauen Wert zu erhalten. Beispiel: 4
B.120 Win32_NetworkLoginProfile Parameters
PasswordAge
PasswordExpires
PrimaryGroupId
Privileges Profile
ScriptPath
SettingID UnitsPerWeek
UserComment UserId
UserType Workstations
603
Die Eigenschaft »Parameters« enthält den für Anwendungen reservierten Bereich. Diese Zeichenfolge kann keine oder eine beliebige Anzahl Zeichen enthalten und wird mit Null beendet. Microsoft-Produkte verwenden dieses Mitglied, um Informationen über die Benutzerkonfiguration zu speichern. Diese Informationen dürfen nicht geändert werden, da sie an eine Anwendung gebunden sind. Die Eigenschaft »PasswordAge« gibt an, wie lange das Kennwort verwendet wurde. Dieser Wert wird an der Anzahl der Sekunden seit der letzten Kennwortänderung gemessen. Beispiel: 00001201000230.000000 000 Die Eigenschaft »PasswordExpires« gibt an, wenn das Kennwort abläuft. Der Wert hat folgendes Format: yyyymmddhhmmss.mmmmmm sutc Beispiel: 19521201000230.000000 000 Die Eigenschaft »PrimaryGroupId« gibt die RID (Relative ID) der primären globalen Gruppe für den Benutzer an. Mit der Kennung wird die primäre Gruppe überprüft, zu der das Benutzerprofil gehört. Die Eigenschaft »privileges« gibt die Berechtigungsebene für die Eigenschaft »usri3_name« an. Die Eigenschaft »Profile« gibt einen Verzeichnispfad zum Benutzerprofil an. Dieser Wert kann Null, ein lokaler absoluter Pfad oder ein UNC-Pfad sein. Ein Benutzerprofil enthält Einstellungen, die für jeden Benutzer angepaßt werden können; z.B. die Desktopfarben. Beispiel: C:\Winnt Die Eigenschaft »ScriptPath« gibt den Verzeichnispfad zum Anmeldescript des Benutzers an. Ein Anmeldescript führt bei jedem Anmelden automatisch Befehle aus. Beispiel: C:\win\profiles\ThomasSteven Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »UnitsPerWeek« gibt die Anzahl der Zeiteinheiten an, in die die Woche aufgeteilt ist. Diese Eigenschaft wird mit der Eigenschaft »LogonHours« verwendet, um den Benutzerzugriff auf den Computer einzuschränken. Beispiel: 168 (Stunden pro Woche). Die Eigenschaft »UserComment« enthält einen benutzerdefinierten Kommentar oder eine Beschreibung für das Profil. Die Eigenschaft »UserId« gibt die RID (Relative ID) des Benutzers an. Mit der Kennung wird überprüft, ob der Benutzer vorhanden und in dieser Domäne eindeutig ist. Die Eigenschaft »UserType« gibt den Kontotyp an, für den der Benutzer Berechtigungen hat. Die Eigenschaft »Workstations« enthält die Namen der Arbeitsstationen, auf denen sich der Benutzer anmelden kann. Es können bis zu acht Arbeitsstationen angegeben werden; die Namen müssen durch Kommas getrennt werden. Der Wert Null gibt keine Einschränkungen an. Legen Sie den Wert auf UF_ACCOUNTDISABLE in der Eigenschaft »Flags« dieser Klasse fest, um das Anmelden von allen Arbeitsstationen für das Konto zu deaktivieren.
604
Anhang B: WMI Klassenreferenz
B.121 Win32_NetworkProtocol Caption ConnectionlessService
Description GuaranteesDelivery
GuaranteesSequencing
InstallDate
MaximumAddressSize
MaximumMessageSize
MessageOriented
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »ConnectionlessService« gibt an, ob das Protokoll verbindungslose Dienste unterstützt. Ein verbindungsloser Dienst beschreibt ein Protokoll oder eine Übertragung, in der Datenpakete unabhängig voneinander umgeleitet werden und in anderer Reihenfolge empfangen werden. Mit einem verbindungsorientierten Dienst werden Datenpakete in der gleichen Reihenfolge, in der sie gesendet werden, empfangen. Wenn die Verbindung fehlschlägt, wird die Anwendung benachrichtigt. Werte: TRUE oder FALSE. TRUE gibt an, daß das Protokoll einen verbindungslosen Dienst verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »GuaranteesDelivery« gibt an, ob das Protokoll garantiert, daß alle gesendeten Daten das angegebene Ziel erreichen. FALSE gibt an, daß die Zustellung nicht garantiert ist. Werte: TRUE oder FALSE. TRUE gibt an, daß das Protokoll die garantierte Zustellung von Datenpaketen unterstützt. Die Eigenschaft »GuaranteesSequencing« gibt an, ob das Protokoll gewährleistete, daß Daten in der Reihenfolge, in der sie gesendet wurden, empfangen werden. Es wird nur die Reihenfolge der Daten, nicht der Empfang garantiert. Werte: TRUE oder FALSE. TRUE gibt an, die Reihenfolge garantiert wird. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »MaximumAddressSize« gibt die maximale Länge der vom Protokoll unterstützten Socketadresse an. Socketadressen können URLs (www.microsoft.com) oder IP-Adressen (130.215.24.1) sein. Die Eigenschaft »MaximumMessageSize« gibt die maximale Meldungsgröße an, die vom Protokoll unterstützt wird. Dieser Wert bestimmt die maximale Meldungsgröße, die vom Host gesendet oder empfangen werden kann. Für Protokolle, die keine Meldungsrahmen unterstützen, ist die maximale Größe einer Meldung, die an eine angegebene Adresse gesendet werden kann, möglicherweise geringer als dieser Wert. Folgende Werte sind für diese Eigenschaft definiert: 0 – Das Protokoll ist datenstromorientiert; das Konzept der Meldungsgröße ist irrelevant. 1 – Die maximal gesendete Meldungsgröße ist von der Netzwerk-MTU (Maximum Sized Transmission Unit) abhängig. Anwendungen sollten »getsockopt« verwenden, um den Wert von SO_MAX_MSG_SIZE abzufragen, nachdem der Socket an eine lokale Adresse gebunden wurde. 0xFFFFFFFF – Die maximale Meldungsgröße ist nicht definiert. Die Eigenschaft »MessageOriented« gibt an, ob das Protokoll meldungsorientiert ist. Ein meldungsorientiertes Protokoll überträgt Informationen als Datenpakete. Im Gegensatz zu datenstromorientierten Protokollen, die Daten als fortgesetzten Datenstrom übertragen. Werte: TRUE oder FALSE. TRUE gibt an, daß das Protokoll meldungsorientiert ist.
B.121 Win32_NetworkProtocol MinimumAddressSize Name PseudoStreamOriented
Status
SupportsBroadcasting
SupportsConnectData
SupportsDisconnectData
SupportsEncryption
SupportsExpeditedData
SupportsFragmentation
605
Die Eigenschaft »MinimumAddressSize« gibt die minimale Länge der vom Protokoll unterstützten Socketadresse an. Die Eigenschaft »Name« enthält den Protokollnamen. Beispiel: TCP/IP Die Eigenschaft »PseudoStreamOriented« gibt an, ob das Protokoll meldungsorientiert ist und Datenpakete mit variabler Länge und Datenströme empfangen kann. Diese optionale Funktion ist nützlich, wenn eine Anwendung keine Meldungsrahmen zuläßt und datenstromorientierte Merkmale erfordert. Werte: TRUE oder FALSE. TRUE gibt an, daß das Protokoll pseudo-datenstromorientiert ist. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »SupportsBroadcasting« gibt an, ob das Protokoll das Broadcasting von Nachrichten im Netzwerk unterstützt. Werte: TRUE oder FALSE. TRUE gibt an, daß Broadcasting unterstützt wird. Die Eigenschaft »SupportsConnectData« gibt an, ob das Protokoll die Datenverbindung über das Netzwerk ermöglicht. Werte: TRUE oder FALSE. TRUE gibt an, daß die Datenverbindung unterstützt wird. Die Eigenschaft »SupportsDisconnectData« gibt an, ob das Protokoll die Datentrennung über das Netzwerk ermöglicht. Werte: TRUE oder FALSE. TRUE gibt an, daß die Datentrennung unterstützt wird. Die Eigenschaft »SupportsEncryption« gibt an, ob das Protokoll die Datenverschlüsselung unterstützt. Werte: TRUE oder FALSE. TRUE gibt an, daß die Datenverschlüsselung unterstützt wird. Die Eigenschaft »SupportsExpeditedData« gibt an, ob das Protokoll beschleunigte Daten im Netzwerk unterstützt. Beschleunigte Daten können die Flußsteuerung umgehen und Priorität über normale Datenpakte erhalten. Werte: TRUE oder FALSE. TRUE gibt an, daß beschleunigte Daten unterstützt werden. Die Eigenschaft »SupportsFragmentation« gibt an, ob das Protokoll das Übertragen von Datenfragmenten unterstützt. Die physikalische NetzwerkMTU (Maximum Transfer Unit) ist für Anwendungen nicht erkennbar. Jeder Medientyp verfügt über eine maximale Rahmengröße, die nicht überschritten werden kann. Die Verbindungsschicht ist für das Identifizieren und Weiterleiten der MTU, an die verwendeten Protokolle, verantwortlich. Werte: TRUE oder FALSE. TRUE gibt an, daß das Protokoll das Übertragen von Datenfragmenten unterstützt.
606
Anhang B: WMI Klassenreferenz
SupportsGracefulClosing
SupportsGuaranteedBandwidth
SupportsMulticasting
SupportsQualityofService
Die Eigenschaft »SupportsGracefulClosing« gibt an, ob das Protokoll zweiphasen Schließvorgänge unterstützt. Wenn nicht, unterstützt das Protokoll nur Abbruchvorgänge. Werte: TRUE oder FALSE. TRUE gibt an, daß zweiphasen Schließvorgänge unterstützt werden. Die Eigenschaft »SupportsGuaranteedBandwidth« gibt an, ob das Protokoll eine garantierte Bandbreite einrichten und beibehalten kann. Werte: TRUE oder FALSE. TRUE gibt an, daß das Protokoll eine garantierte Bandbreite unterstützt. Die Eigenschaft »SupportsMulticasting« gibt an, ob das Protokoll Multicasting unterstützt. Werte: TRUE oder FALSE. TRUE gibt an, daß Multicasting unterstützt wird. Die Eigenschaft »SupportsQualityofService« gibt an, ob das Protokoll QOS (Quality of Service) über den Dienstanbieter oder das Trägersignal unterstützt. QOS ist eine Sammlung von Komponenten, die die Differenzierung und bevorzugte Behandlung für Datenuntermengen aktivieren, die über das Netzwerk übertragen werden. Werte: TRUE oder FALSE. TRUE gibt an, daß das Protokoll QOS unterstützt.
B.122 Win32_ODBCAttribute Attribute Caption Description Driver SettingID Value
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«.
B.123 Win32_ODBCDataSourceAttribute Check Setting
B.124 Win32_ODBCDataSourceSpecification result as Integer = Invoke
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde.
B.125 Win32_ODBCDriverSoftwareElement Caption CheckID CheckMode
DataSource
Description DriverDescription Name Registration SoftwareElementID SoftwareElementState TargetOperatingSystem Version
607
Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Kennung für die Softwarekomponente. Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.125 Win32_ODBCDriverSoftwareElement Check Element Phase
Überprüfung. Element. Die Eigenschaft »Phase« gibt an, ob der aktuelle Status oder der nächste Status überprüft wird.
B.126 Win32_ODBCDriverSpecification result as Integer = Invoke
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde.
608
Anhang B: WMI Klassenreferenz
Caption CheckID CheckMode
Description Driver File Name SetupFile SoftwareElementID SoftwareElementState TargetOperatingSystem Version
Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Kennung für die Softwarekomponente. Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.127 Win32_ODBCSourceAttribute Attribute Caption DataSource Description SettingID Value
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«.
B.128 Win32_ODBCTranslatorSpecification result as Integer = Invoke
Caption
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde.
B.129 Win32_OSRecoveryConfiguration CheckID CheckMode
Description File Name SetupFile SoftwareElementID SoftwareElementState TargetOperatingSystem Translator Version
609
Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Kennung für die Softwarekomponente. Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.129 Win32_OSRecoveryConfiguration AutoReboot
Caption DebugFilePath
Description KernelDumpOnly
Name OverwriteExistingDebugFile
Die Eigenschaft »AutoReboot« legt fest, ob das System während des Wiederherstellungsvorgangs automatisch neu gestartet wird. Werte: TRUE oder FALSE. TRUE gibt an, daß das System automatisch neu gestartet wird. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Die Eigenschaft »DebugFilePath« gibt den vollständigen Pfad zur Debugdatei an. Eine Debugdatei wird mit dem Speicherstatus nach einem Computerabsturz erstellt. Beispiel: C:\WinNT\Memory.dmp Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »KernelDumpOnly« gibt an, ob nur KernelDebuginformationen in die Debugprotokolldatei geschrieben werden. Werte: TRUE oder FALSE. TRUE gibt an, daß nur der Kernelstatus in eine Datei geschrieben wird, wenn ein Systemfehler auftritt. FALSE gibt an, daß der Speicherstatus und der Status der Geräte protokolliert wird, die Informationen über den Systemfehler enthalten. Die Eigenschaft »Name« enthält den Instanzennamen der Klasse »Win32_OSRecoveryConfiguration«. Die Eigenschaft »OverwriteExistingDebugFile« gibt an, ob eine vorhandene Protokolldatei von einer neuen Protokolldatei überschrieben wird. Werte: TRUE oder FALSE. TRUE gibt an, daß die vorhandene Datei überschrieben wird. FALSE gibt an, daß die Protokolldatei nicht erstellt wird, wenn der Dateiname bereits vorhanden ist.
610
Anhang B: WMI Klassenreferenz
SendAdminAlert
SettingID WriteDebugInfo
WriteToSystemLog
Die Eigenschaft »SendAdminAlert« gibt an, ob eine Warnung an den Systemadministrator gesendet wird, wenn ein Betriebssystemfehler auftritt. Werte: TRUE oder FALSE. TRUE gibt an, daß das System eine Warnung ausgibt. Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »WriteDebugInfo« gibt an, ob Debuginformationen in eine Protokolldatei geschrieben werden. Werte: TRUE oder FALSE. TRUE gibt an, daß die Debuginformationen in eine Datei geschrieben werden. Die Eigenschaft »WriteToSystemLog« gibt an, ob Ereignisse in ein Systemprotokoll geschrieben werden. Werte: TRUE oder FALSE. TRUE gibt an, daß die Informationen in ein Protokoll geschrieben werden.
B.130 Win32_OnBoardDevice Caption CreationClassName
Description DeviceType Enabled HotSwappable
InstallDate
Manufacturer Model Name
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Die Eigenschaft »Description« beschreibt das Kartengerät und wird vom Gerätehersteller angegeben. Die Eigenschaft »DeviceType« gibt den Typ des Geräts an. Die Eigenschaft »Enabled« gibt an, ob das Kartengerät verfügbar ist. Werte: TRUE oder FALSE. TRUE gibt an, daß das Gerät verfügbar ist. Eine physikalische Komponente ist in Betrieb austauschbar, wenn sie durch ein physikalisch gleichwertiges Element ersetzt werden kann, während das enthaltende Paket eingeschaltet ist. Eine Lüfterkomponente kann z.B. in Betrieb austauschbar sein. Alle in Betrieb austauschbaren Komponenten sind durch Vererbung ersetzbar. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Der Name der Organisation, die für die Herstellung des physikalischen Elements verantwortlich ist. Der Name der physikalischen Komponente. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden.
B.130 Win32_OnBoardDevice OtherIdentifyingInfo
PartNumber
PoweredOn Removable
Replaceable
SerialNumber SKU Status
Tag Version
611
»OtherIdentifyingInfo« erfaßt außer Bestandskennzeichnungsinformationen auch Daten, die dazu verwendet werden können, physikalische Elemente zu identifizieren. Ein Beispiel dafür sind Barcodedaten, die mit einem Element verbunden sind, das auch über eine Bestandskennzeichnung verfügt. Hinweis: Wenn nur Barcodedaten verfügbar sind, die allein als Elementschlüssel verwendet werden können, ist diese Eigenschaft NULL und die Barcodedaten werden in der Eigenschaft »Tag« als Klassenschlüssel verwendet. Die Einzelteilnummer, die von der Organisation, die für die Produktion und Herstellung des physikalischen Elements verantwortlich ist, zugewiesen wurde. Boolescher Wert, der angibt, ob die physikalische Komponente eingeschaltet (TRUE) oder ausgeschaltet (FALSE) ist. Eine physikalische Komponente ist austauschbar, wenn es aus seinem physikalischen Container entfernt werden kann, ohne die Funktion des Gesamtpakets zu beeinträchtigen. Eine Komponente ist auch austauschbar, wenn das Gerät bei der Entnahme ausgeschaltet sein muß. Wenn das Gerät bei der Entnahme eingeschaltet sein kann, ist das Element in Betrieb austauschbar. Ein aktualisierbarer Chip ist z.B. austauschbar. Eine physikalische Komponente ist austauschbar, wenn sie durch ein physikalisch unterschiedliches Element ersetzt (oder aktualisiert) werden kann. Bei einigen Computersystemen ist es z.B. möglich, den Hauptprozessorchip durch einen Chip mit einer höheren Taktfrequenz zu ersetzen. Alle austauschbaren Komponenten sind durch Vererbung ersetzbar. Eine Herstellernummer zum Identifizieren des physikalischen Elements. Die SKU-Nummer für das physikalische Element. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »Tag« gibt das Kartengerät des Systems an. Beispiel: Kartengerät 1 Eine Zeichenfolge, die die Version des physikalischen Elements angibt.
612
Anhang B: WMI Klassenreferenz
B.131 Win32_OperatingSystem result as Integer = Reboot
Die Methode »Reboot« fährt das Computersystem herunter und startet es neu. Auf Computern mit Windows NT/2000 muß der aufrufende Prozeß die Berechtigung SE_SHUTDOWN_NAME haben. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|System Shutdown Functions|ExitWindowsEx|EWX_REBOOT result as Integer = Shutdown Die Methode »Shutdown« schließt Programme und DLLs, bis der Computer sicher ausgeschaltet werden kann. Alle Dateipuffer werden auf den Datenträger übertragen, und alle aktiven Prozesse werden beendet. Auf Computern mit Windows NT/2000 muß der aufrufende Prozeß die Berechtigung SE_SHUTDOWN_NAME haben. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|System Shutdown Functions|ExitWindowsEx|EWX_SHUTDOWN Die Methode »Win32Shutdown« enthält alle vom Win32-Betriebssystem result as Integer = Win32Shutdown(Flags as In- unterstützten Optionen zum Herunterfahren. Befehl wird von folgender API-Funktion bereitgestellt: teger, Reserved as Integer) Flags=Der Parameter »Flags« Win32API|System Shutdown Functions|ExitWindowsEx enthält Flags zum Herunterfahren des Computers. 0 ist der Befehl zum Abmelden. BitValues = Array: 0=Herunterfahren 1=Neustart 2=Erzwingen 3=Ausschalten Reserved=Der Parameter »Reserved« gibt eine Methode zum Erweitern von »Win32Shutdown« an. Derzeit wird dieser Parameter ignoriert. BootDevice Die Eigenschaft »BootDevice« gibt das Laufwerk an, von dem das Win32Betriebssystem gestartet wird. Beispiel: \\Device\Harddisk0. BuildNumber Die Eigenschaft »BuildNumber » gibt die Buildnummer des Betriebssystems an. Die Buildnummer ist genauer als die Versionsnummer des freigegebenen Produkts. Beispiel: 1381 BuildType Die Eigenschaft »BuildType« gibt den Buildtyp des Betriebssystems an. Beispiel: Verkaufsversion und getesteter Build. Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an.
B.131 Win32_OperatingSystem CodeSet
CountryCode
CreationClassName
CSCreationClassName
CSDVersion
CSName
CurrentTimeZone Debug
613
Die Eigenschaft »CodeSet« gibt den Codepagewert für das Betriebssystem an. Eine Codepage enthält die vom Betriebssystem zum Übersetzen von Zeichenfolgen in verschiedene Sprachen verwendete Zeichentabelle. Wenn das Betriebssystem keine ANSI-Codepage verwendet, ist dieses Mitglied 0. Der Codepagewert kann mit bis zu sechs Zeichen in »CodeSet« definiert werden. Beispiel: 1255. Die Eigenschaft »CountryCode« gibt den Code für das vom Betriebssystem verwendete Land/Region an. Die Werte basieren auf internationalen Vorwahlen (IBM-Länder/Regionscodes). Die Zeichenfolge »CountryCode« kann den Länder/Regionscode mit bis zu sechs Zeichen definieren. Beispiel: 1 für die USA. Die Eigenschaft »CountryCode« gibt den Code für das vom Betriebssystem verwendete Land/Region an. Die Werte basieren auf internationalen Vorwahlen (IBM-Länder/Regionscodes). Die Zeichenfolge »CountryCode« kann den Länder/Regionscode mit bis zu sechs Zeichen definieren. Beispiel: 1 für die USA. Die Eigenschaft »CountryCode« gibt den Code für das vom Betriebssystem verwendete Land/Region an. Die Werte basieren auf internationalen Vorwahlen (IBM-Länder/Regionscodes). Die Zeichenfolge »CountryCode« kann den Länder/Regionscode mit bis zu sechs Zeichen definieren. Beispiel: 1 für die USA. Die Eigenschaft »CSDVersion« enthält eine mit Null beendete Zeichenfolge, die das letzte auf dem Computer installierte Service Pack angibt. Wenn kein Service Pack installiert ist, ist die Zeichenfolge NULL. Für Computer mit Windows 95 enthält diese Eigenschaft eine mit Null beendete Zeichenfolge, die beliebige zusätzliche Informationen über das Betriebssystem angibt. Beispiel: Service Pack 3. Die Eigenschaft »CSDVersion« enthält eine mit Null beendete Zeichenfolge, die das letzte auf dem Computer installierte Service Pack angibt. Wenn kein Service Pack installiert ist, ist die Zeichenfolge NULL. Für Computer mit Windows 95 enthält diese Eigenschaft eine mit Null beendete Zeichenfolge, die beliebige zusätzliche Informationen über das Betriebssystem angibt. Beispiel: Service Pack 3. »CurrentTimeZone« gibt den Offset des Betriebssystem von GMT (Greenwich Mean Time) in Minuten an. Die Zahl ist positiv, negativ oder Null. Die Eigenschaft »Debug« zeigt an, ob das Betriebssystem ein Test- bzw. Debugbuild ist. Testbuilds ermöglichen das Überprüfen von Fehlern und Verifizieren von Argumenten und bieten Systemdebugcode. Zusätzlicher Code in einer Testbinärdatei erstellt eine Kernel-Debuggerfehlermeldung und wechselt in den Debuggermodus. Somit kann die Fehlerursache und -quelle sofort ermittelt werden. Die Leistungsfähigkeit wird in Testbuilds aufgrund von Code, der nebenbei zusätzlich ausgeführt wird, beeinträchtigt. Werte: TRUE oder FALSE. TRUE zeigt an, daß die Debugversion von der Datei User.exe installiert wurde.
614
Anhang B: WMI Klassenreferenz
Description
Die Eigenschaft »Description« beschreibt das Windows-Betriebssystem. Benutzerschnittstellen, die das Bearbeiten dieser Beschreibung zulassen, beschränken diese auf 48 Zeichen. Distributed Boolescher Wert, der angibt, ob das Betriebssystem über mehrere Systemknoten verteilt ist. Wenn dies zutrifft, sollten die Knoten als Cluster gruppiert werden. ForegroundApplicationBoost Die Eigenschaft »ForegroundApplicationBoost« gibt die Erhöhung der Priorität für die Vordergrundanwendung an. Auf Computern mit Windows NT 4.0 und Windows 2000 erhält eine Anwendung mehr Quantumlängen. Der Wert 0 in »ForegroundApplicationBoost« gibt an, daß die Quantumlängen für den Wert 1 um 6 erhöht werden, dann um 12; und für den Wert 2 um 18. Auf Windows NT 3.51 und früheren Systemen wird die Planungspriorität um den Wert in dieser Eigenschaft erhöht. Der Standardwert ist 2. FreePhysicalMemory Der derzeit nicht verwendete bzw. verfügbare physikalische Speicher in KB. FreeSpaceInPagingFiles Die Gesamtzahl der KB, die in den Auslagerungsdateien des Betriebssystems zugeordnet werden können, ohne daß andere Seiten ausgelagert werden. FreeVirtualMemory Größe des verfügbaren virtuellen Speichers in KB. Die Größe kann berechnet werden, indem der verfügbare RAM und der verfügbare Auslagerungsbereich addiert werden (z.B. die Eigenschaften »FreePhysicalMemory« und »FreeSpaceInPagingFiles«). InstallDate Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. LastBootUpTime Zeitpunkt, zu dem das Betriebssystem zuletzt gestartet wurde. LocalDateTime Auf dem Betriebssystem angezeigtes lokales Datum und Uhrzeit. Locale Die Eigenschaft »Locale« gibt die vom Betriebssystem verwendete Sprachkennung an. Eine Sprachkennung ist eine numerische Standardabkürzung für ein Land oder eine Region. Jeder Sprache ist eine eindeutige Kennung (LANGID) zugewiesen. Dieser 16 Bit Wert besteht aus einer primären und einer sekundären Sprachkennung. Manufacturer Die Eigenschaft »Manufacturer« gibt den Hersteller des Betriebssystems an. Für Win32-Systeme ist dieser Wert »Microsoft Corporation«. MaxNumberOfProcesses Maximale Anzahl der Prozesskontexte, die das Betriebssystem unterstützen kann. Der Wert ist 0, wenn kein maximaler Wert festgelegt wurde. Dieses Objekt kann Fehler erkennen, die auftreten, wenn der maximale Wert erreicht ist. Geben Sie -1 ein, wenn der Wert unbekannt ist. MaxProcessMemorySize Maximaler Speicher, der einem Prozeß zugeordnet werden kann, in KB. Für Betriebssysteme ohne virtuellen Speicher, entspricht dieser Wert dem gesamten physikalischen Speicher minus dem vom BIOS und Betriebssystem verwendeten Speicher. Für einige Betriebssysteme kann dieser Wert unendlich sein und der Wert 0 zurückgegeben werden. Ansonsten kann der Wert eine Konstante sein, z.B. 2G oder 4G. Name Die geerbte Eigenschaft »Name« dient als Schlüssel einer Betriebssysteminstanz in einem Computersystem.
B.131 Win32_OperatingSystem NumberOfLicensedUsers NumberOfProcesses NumberOfUsers Organization OSLanguage OSProductSuite OSType OtherTypeDescription
PlusProductID PlusVersionNumber Primary QuantumLength
QuantumType
615
Anzahl der Benutzerlizenzen für das Betriebssystem. Geben Sie 0 ein, wenn die Anzahl unbegrenzt ist, oder 1, wenn sie unbekannt ist. Anzahl der Prozesskontexte, die geladen sind oder auf dem Betriebssystem ausgeführt werden. Anzahl der Benutzersitzungen, für die das Betriebssystem Statusinformationen speichert. Die Eigenschaft »Organization« gibt den Firmennamen des registrierten Benutzers an. Beispiel: Microsoft Corporation. Die Eigenschaft »OSLanguage« gibt an, welche Sprachversion des Betriebssystems installiert ist. Beispiel: 0x0807 (Deutschland, Schweiz) Die Eigenschaft »OSProductSuite« gibt installierte und lizenzierte Zusatzprodukte für das Betriebssystem an. Eine ganze Zahl, die den Typ des Betriebssystems angibt. Eine Zeichenfolge, die den Hersteller und Typ des Betriebssystems beschreibt. Wird verwendet, wenn die Eigenschaft »OSType« auf 1 (»Andere«) gesetzt ist. Das in »OtherTypeDescription« eingefügte Zeichenfolgenformat sollte dem Format der für »OSType« definierten Zeichenfolgen entsprechen. Der Wert für »OtherTypeDescription« sollte Null sein, wenn der Wert für »OSType« nicht 1 ist. Die Eigenschaft »PlusProductID« enthält die Product ID der Betriebssystemerweiterung Windows Plus! (falls installiert). Die Eigenschaft »PlusVersionNumber« enthält die Versionsnummer der Betriebssystemerweiterung Windows Plus! (falls installiert). Die Eigenschaft »Primary« gibt das primäre Betriebssystem an. Werte: TRUE oder FALSE. TRUE gibt an, daß dies das primäre Betriebssystem ist. Die Eigenschaft »QuantumLength« definiert die Anzahl der Zeiteinheiten pro Quantum. Ein Quantum ist eine Zeiteinheit für die Ausführung, die für eine Anwendung verfügbar ist, bevor der Planungsdienst zu einer anderen Anwendung wechselt. Wenn ein Thread ein Quantum ausführt, wird es für Anwendungen mit der gleichen Priorität an das Ende der Warteschlange verschoben. Die Länge eines Threadquantums hängt von den unterschiedlichen Windows-Plattformen ab. Nur Windows NT/Windows 2000. Die Eigenschaft »QuantumType« gibt ein festes oder variables Längenquantum an. Variable Längenquanten sind der Standard in Windows NT 4.0 Workstation und Windows 2000. Die Anwendung im Vordergrund hat ein längeres Quantum als die Anwendungen im Hintergrund. Feste Längenquanten sind der Standard in Windows NT Server. Ein Quantum ist eine Zeiteinheit für die Ausführung, die für eine Anwendung verfügbar ist, bevor der Planungsdienst zu einer anderen Anwendung wechselt. Wenn ein Thread ein Quantum ausführt, wird es für Anwendungen mit der gleichen Priorität an das Ende der Warteschlange verschoben. Die Länge eines Threadquantums hängt von den unterschiedlichen Windows-Plattformen ab. Nur Windows NT/Windows 2000.
616
Anhang B: WMI Klassenreferenz
RegisteredUser SerialNumber ServicePackMajorVersion
ServicePackMinorVersion
SizeStoredInPagingFiles
Status
SystemDevice SystemDirectory TotalSwapSpaceSize
TotalVirtualMemorySize
TotalVisibleMemorySize
Version WindowsDirectory
Die Eigenschaft »RegisteredUser« gibt den Namen des registrierten Benutzers des Betriebssystems an. Beispiel: C:\Jane Doe Die Eigenschaft »SerialNumber« gibt die serielle Produktnummer des Betriebssystems an. Beispiel:10497-OEM-0031416-71674. Die Eigenschaft »ServicePackMajorVersion« gibt die maximale Versionsnummer des auf dem Computersystem installierten Service Packs an. Wenn kein Service Pack installiert ist, ist der Wert Null. Diese Eigenschaft ist für Computer gültig, auf denen mindestens Windows 2000 ausgeführt wird. Die Eigenschaft »ServicePackMinorVersion« gibt die minimale Versionsnummer des auf dem Computersystem installierten Service Packs an. Wenn kein Service Pack installiert ist, ist der Wert Null. Diese Eigenschaft ist für Computer gültig, auf denen mindestens Windows 2000 ausgeführt wird. Die Gesamtzahl der KB, die in den Auslagerungsdateien des Betriebssystems gespeichert werden können. Diese Zahl gibt nicht die eigentliche physikalische Größe der Auslagerungsdatei auf dem Datenträger an. 0 gibt an, daß keine Auslagerungsdateien vorhanden sind. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »SystemDevice« gibt die physikalische Partition an, auf der das Betriebssystem installiert ist. Die Eigenschaft »SystemDirectory« gibt das Systemverzeichnis des Betriebssystems an. Beispiel: C:\WINDOWS\SYSTEM32 Gesamter Auslagerungsbereich in KB. Der Wert ist Null, wenn der Auslagerungsbereich nicht von Auslagerungsdateien definiert wurde. Einige Betriebssysteme definieren diese Konzepte. In UNIX können z.B. gesamte Prozesse ausgelagert werden. Größe des virtuellen Speichers in KB. Die Größe kann berechnet werden, indem der gesamte RAM und der Auslagerungsbereich addiert werden (z.B. der Speicher im System mit der Eigenschaft »SizeStoredInPagingFiles«). Die Gesamtgröße des verfügbaren physikalischen Speichers. Dieser Wert gibt nicht unbedingt die Gesamtgröße des physikalischen Speichers an, sondern den Speicher, der für das Betriebssystem verfügbar ist. Die Eigenschaft »Version« gibt die Versionsnummer des Betriebssystems an. Beispiel: 4.0 Die Eigenschaft »WindowsDirectory« gibt das Windows-Verzeichnis des Betriebssystems an. Beispiel: C:\WINDOWS
B.132 Win32_OperatingSystemQFE
617
B.132 Win32_OperatingSystemQFE Antecedent Dependent
Die Referenz »Win32_OperatingSystem« stellt das Win32-Betriebssystem dar, das vom Produktupdate in dieser Zuordnung betroffen ist. Die Referenz »Win32_QuickFixEngineering« gibt »Win32_QuickFixEngineering« an, das auf das Betriebssystem in dieser Zuordnung angewendet wird.
B.133 Win32_PCMCIAController result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnergieDate/Time) sparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zuresult as Integer = Reset rückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »AvailabiliAvailability ty« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) Caption des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. ConfigManagerErrorCode Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. ConfigManagerUserConfig Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. CreationClassName Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Description Die Eigenschaft »DeviceID« gibt die Kennung an, die das Gerät von andeDeviceID ren Plug & Play-Geräten unterscheidet. Diese Eigenschaft wird von CIM_LogicalDevice abgeleitet.
618
Anhang B: WMI Klassenreferenz
ErrorCleared ErrorDescription
InstallDate
LastErrorCode Manufacturer MaxNumberControlled Name
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
ProtocolSupported Status
Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des PCMCIAControllers an. Beispiel: Acme Maximale Anzahl der direkt adressierbaren Einheiten, die vom Controller unterstützt werden. Wenn der Wert unbekannt ist, geben Sie 0 ein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Das vom Controller zum Zugriff auf gesteuerte Geräte verwendete Protokoll. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.134 Win32_PNPAllocatedResource StatusInfo
SystemCreationClassName
SystemName
TimeOfLastReset
619
Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »TimeOfLastReset« gibt an, wann der Controller zuletzt zurückgesetzt (ausgeschalten oder erneut initialisiert) wurde.
B.134 Win32_PNPAllocatedResource Antecedent Dependent
Die Referenz »Antecedent« stellt die Eigenschaften einer für das logische Gerät verfügbaren Systemressource dar. Die Referenz »Dependent« stellt die Eigenschaften des logischen Geräts dar, das die zugeordneten Systemressourcen verwendet.
B.135 Win32_POTSModem result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
620
Anhang B: WMI Klassenreferenz
AnswerMode AttachedTo Availability
BlindOff BlindOn Caption CompatibilityFlags CompressionInfo CompressionOff CompressionOn ConfigManagerErrorCode ConfigManagerUserConfig ConfigurationDialog
CountriesSupported CountrySelected
CreationClassName
CurrentPasswords
Der Antwortmodus definiert die Modemeinstellungen für die automatische Anrufannahme und den Rückruf. Die Eigenschaft »AttachedTo« gibt den Anschluß an, mit dem das POTSModem verbunden ist. Beispiel: COM1. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »BlindOff« enthält die Befehlszeichenfolge, um vor dem Wählvorgang ein Freizeichen zu empfangen. Beispiel: X4. Die Eigenschaft »BlindOn« enthält die Befehlszeichenfolge, um unabhängig von einem Freizeichen zu wählen. Beispiel: X3. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »CompatibilityFlags« listet alle Protokolle für die Modemverbindung auf, die zu diesem Modem kompatibel sind. Beschreibt die Datenkomprimierungsmerkmale des Modems. Die Eigenschaft »CompressionOff« enthält die Befehlszeichenfolge zum Deaktivieren der Hardwarekomprimierung. Beispiel: S46=136. Die Eigenschaft »CompressionOn« enthält die Befehlszeichenfolge zum Aktivieren der Hardwarekomprimierung. Beispiel: S46=138. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »ConfigurationDialog« enthält die Zeichenfolge zum Initialisieren des Modems. Diese Eigenschaft enthält Befehlszeichenfolgen von anderen Mitgliedern dieser Klasse. Das Array »CountriesSupported« enthält Zeichenfolgen, die die Länder/Regionen für das Modem angeben. Die Zeichenfolge »CountrySelected« gibt an, für welches Land/Region das Modem programmiert ist. Wenn mehrere Länder/Regionen unterstützt werden, definiert diese Eigenschaft das aktuelle Land. Die Zeichenfolge »CountrySelected« gibt an, für welches Land/Region das Modem programmiert ist. Wenn mehrere Länder/Regionen unterstützt werden, definiert diese Eigenschaft das aktuelle Land. Das Array »CurrentPasswords« enthält die für das Modem definierten Kennwörter. Dieses Array enthält möglicherweise aus Sicherheitsgründen keinen Eintrag.
B.135 Win32_POTSModem DCB Default Description DeviceID DeviceLoader
DeviceType DialType
DriverDate ErrorCleared ErrorControlForced
ErrorControlInfo ErrorControlOff ErrorControlOn ErrorDescription
FlowControlHard
FlowControlOff
FlowControlSoft
621
Die Eigenschaft »Device Control Block« enthält die Einstellungen für ein serielles Kommunikationsgerät, z.B. ein Modem. Die Eigenschaft »Default« gibt an, ob das POTS-Modem das Standardmodem für das Win32-Computersystem ist. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das POTSModem von anderen Geräten im System unterscheidet. Die Eigenschaft »DeviceLoader« gibt den Namen des Ladeprogramms für das Gerät an. Ein Ladeprogramm lädt und verwaltet Gerätetreiber und Enumeratoren für ein Gerät. Die Eigenschaft »DeviceType« gibt den physikalischen Typ des Modems an. »DialType« ist eine ganze Zahl, die angibt, ob die Tonwahl (Wert=1) oder die Impulswahl (Wert=2) verwendet wird. Es kann auch »Unbekannt« (0) definiert werden. Die Eigenschaft »DriverDate« gibt das Datum des Modemtreibers an. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die Eigenschaft »ErrorControlForced« enthält die Befehlszeichenfolge zum Aktivieren der Fehlerkorrektursteuerung beim Herstellen einer Verbindung, um deren Zuverlässigkeit zu erhöhen. Beispiel: +Q5S36=4S48=7. Beschreibt die Fehlerkorrekturmerkmale des Modems. Die Eigenschaft »ErrorControlOff« enthält die Befehlszeichenfolge zum Deaktivieren der Fehlersteuerung. Beispiel: +Q6S36=3S48=128. Die Eigenschaft »ErrorControlOn« enthält die Befehlszeichenfolge zum Aktivieren der Fehlersteuerung. Beispiel: +Q5S36=7S48=7. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »FlowControlHard« enthält die Befehlszeichenfolge zum Aktivieren der Hardwareflußsteuerung. Die Flußsteuerung besteht aus Signalen, die gesendet werden, um zu überprüfen, ob die Computer Daten senden und empfangen können. Beispiel: &K1. Die Eigenschaft »FlowControlOff« enthält die Befehlszeichenfolge zum Deaktivieren der Flußsteuerung. Die Flußsteuerung besteht aus Signalen, die gesendet werden, um zu überprüfen, ob die Computer Daten senden und empfangen können. Beispiel: &K0. Die Eigenschaft »FlowControlSoft« enthält die Befehlszeichenfolge zum Aktivieren der Softwareflußsteuerung. Die Flußsteuerung besteht aus Signalen, die gesendet werden, um zu überprüfen, ob die Computer Daten senden und empfangen können. Beispiel: &K2.
622
Anhang B: WMI Klassenreferenz
InactivityScale
InactivityTimeout
Index InstallDate
LastErrorCode MaxBaudRateToPhone MaxBaudRateToSerialPort
MaxNumberOfPasswords
Model ModemInfPath
ModemInfSection ModulationBell ModulationCCITT
ModulationScheme Name
PNPDeviceID PortSubClass
Die Eigenschaft »InactivityScale« ist ein Multiplikator, der mit der Eigenschaft »InactivityTimeout« verwendet wird, um die Zeitüberschreitung einer Verbindung zu berechnen. »InactivityTimeout« definiert das Zeitlimit in Sekunden, nach dem die Telefonverbindung automatisch getrennt wird, wenn keine Daten ausgetauscht werden. Der Wert 0 gibt an, daß die Funktion vorhanden, aber nicht aktiviert ist. Die Eigenschaft »Index« gibt die Indexnummer für das POTS-Modem an. Beispiel: 0 Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Definiert die maximal einstellbare Kommunikationsgeschwindigkeit für das Telefonsystem. Definiert die maximal einstellbare Kommunikationsgeschwindigkeit des COM-Anschlusses für ein externes Modem. Geben Sie 0 ein, wenn der Wert unbekannt ist. »MaxNumberOfPasswords« gibt die Anzahl der definierbaren Kennwörter im Modem an. Geben Sie 0 ein, wenn diese Funktion nicht unterstützt wird. Die Eigenschaft »Model« gibt das Modell des POTS-Modems an. Beispiel: Sportster 56K External. Die Eigenschaft »ModemInfPath« gibt den Pfad zur INF-Datei des Modems an. Diese Datei enthält Initialisierungsinformationen für das Modem und den Modemtreiber. Beispiel: C:\WINNT\INF. Die Eigenschaft »ModemInfSection« gibt den Abschnittsnamen in der INF-Datei des Modems an, der die Modeminformationen enthält. Die Eigenschaft »ModulationBell« enthält die Befehlszeichenfolge zum Verwenden von Bell-Modulationen für 300 und 1200 bps. Beispiel: B1. Die Eigenschaft »ModulationCCITT« enthält die Befehlszeichenfolge zum Verwenden von CCITT-Modulationen für 300 und 1200 bps. Beispiel: B0. Beschreibt das Modulationsschema des Modems. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Die Eigenschaft »PortSubClass« enthält die Zeichenfolge, die den Anschluß für das Modem definiert.
B.135 Win32_POTSModem PowerManagementCapabilities
PowerManagementSupported
Prefix Properties ProviderName Pulse
Reset ResponsesKeyName
RingsBeforeAnswer SpeakerModeDial
SpeakerModeOff
623
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »Prefix« gibt die Vorwahl für eine Amtsleitung an. Die Eigenschaft »Properties« listet alle Eigenschaften (und ihre Werte) für das Modem auf. Die Eigenschaft »ProviderName« gibt den Netzwerkpfad zum Computer mit den Modemdiensten an. Die Eigenschaft »Pulse« enthält die Befehlszeichenfolge für die Impulswahl. Die Impulswahl ist für Telefonleitungen erforderlich, die die Tonwahl nicht verarbeiten können. Beispiel: P. Die Eigenschaft »Reset« enthält die Befehlszeichenfolge zum Zurücksetzen des Modems für den nächsten Anruf. Beispiel: AT&F. Die Eigenschaft »ResponsesKeyName« enthält die Rückmeldung des Modems an das Betriebssystem während des Verbindungsvorgangs. Die ersten zwei Zeichen geben den Typ der Rückmeldung an. Die nächsten zwei Zeichen geben Informationen über die Verbindung an. Die nächsten zwei Zeichen werden nur für Aushandlungsvorgänge oder Verbindungsantwortcodes verwendet. Die nächsten acht Zeichen geben die Modemübertragungsrate in bps (Bits pro Sekunde) an. Die letzten acht Zeichen geben an, daß das Modem zu einer anderen Anschluß- oder DTE-Geschwindigkeit wechselt. Dieses Feld wird gewöhnlich nicht verwendet, da Modemverbindungen mit einer festgelegten Anschlussgeschwindigkeit hergestellt werden, ungeachtet der Modemübertragungsrate oder der DCE-Geschwindigkeit. Anzahl der Rufzeichen bevor das Modem einen eingehenden Anruf beantwortet. Die Eigenschaft »SpeakerModeDial« enthält die Befehlszeichenfolge zum Einschalten der Modemlautsprecher nach dem Wählvorgang, und Ausschalten, wenn die Verbindung hergestellt wurde. Beispiel: M1. Die Eigenschaft »SpeakerModeOff« enthält die Befehlszeichenfolge zum Ausschalten der Modemlautsprecher. Beispiel: M0.
624
Anhang B: WMI Klassenreferenz
SpeakerModeOn SpeakerModeSetup
SpeakerVolumeHigh
SpeakerVolumeInfo SpeakerVolumeLow
SpeakerVolumeMed
Status
StatusInfo
StringFormat SupportsCallback SupportsSynchronousConnect SystemCreationClassName SystemName Terminator TimeOfLastReset
Die Eigenschaft »SpeakerModeOn« enthält die Befehlszeichenfolge zum Einschalten der Modemlautsprecher. Beispiel: M2. Die Eigenschaft »SpeakerModeSetup« enthält die Befehlszeichenfolge zum Einschalten der Modemlautsprecher (bis die Verbindung hergestellt ist). Beispiel: M3. Die Eigenschaft »SpeakerVolumeHigh« enthält die Befehlszeichenfolge zum Einstellen der höchsten Lautstärke für die Modemlautsprecher. Beispiel: L3. Beschreibt die Lautstärkepegel der Modemtöne. Es kann z.B. hoch, mittel oder niedrig angegeben werden (Werte 3, 4 oder 5). Die Eigenschaft »SpeakerVolumeLow« enthält die Befehlszeichenfolge zum Einstellen der niedrigsten Lautstärke für die Modemlautsprecher. Beispiel: L1. Die Eigenschaft »SpeakerVolumeMed« enthält die Befehlszeichenfolge zum Einstellen der mittleren Lautstärke für die Modemlautsprecher. Beispiel: L2. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »StringFormat« beschreibt den Zeichentyp für den durch das Modem übertragenen Text. Gibt an, ob Rückrufe vom Modem unterstützt werden. Boolescher Wert, der angibt, daß die synchrone und die asynchrone Kommunikation unterstützt werden. Boolescher Wert, der angibt, daß die synchrone und die asynchrone Kommunikation unterstützt werden. Boolescher Wert, der angibt, daß die synchrone und die asynchrone Kommunikation unterstützt werden. Die Eigenschaft »Terminator« enthält das Zeichen, das das Ende einer Befehlszeichenfolge markiert. Beispiel: Die Eigenschaft »Terminator« enthält das Zeichen, das das Ende einer Befehlszeichenfolge markiert. Beispiel:
B.136 Win32_POTSModemToSerialPort Tone
625
Die Eigenschaft »Tone« enthält die Befehlszeichenfolge zum Verwenden der Tonwahl. Die Telefonleitung muß die Tonwahl unterstützen. Beispiel: T. Die Eigenschaft »VoiceSwitchFeature« enthält die Befehlszeichenfolge zum Aktivieren der Sprachfunktionen des Modems. Beispiel: AT+V.
VoiceSwitchFeature
B.136 Win32_POTSModemToSerialPort AccessState
Antecedent Dependent NegotiatedDataWidth
NegotiatedSpeed
NumberOfHardResets NumberOfSoftResets
Die Eigenschaft »AccessState« gibt an, ob der Controller das Gerät steuert oder darauf zugreift (Wert=1) oder nicht (Wert=2). Es kann auch der Wert »Unbekannt« (0) definiert werden. Diese Informationen sind erforderlich, wenn ein logisches Gerät von mehreren Controllern gesteuert werden kann. Die Referenz »Antecedent« stellt den seriellen Anschluß dar, der vom Modem verwendet wird. Die Referenz »Dependent« stellt das POTS-Modem dar, das den seriellen Anschluß verwendet. Wenn mehrere Bus- und/oder Verbindungsdatenbreiten möglich sind, definiert die Eigenschaft »NegotiatedDataWidth« die verwendete Datenbreite in Bits. Wenn die Datenbreite nicht ausgehandelt wurde oder diese Informationen nicht verfügbar sind, sollte der Wert der Eigenschaft 0 sein. Wenn mehrere Bus- und/oder Verbindungsgeschwindigkeiten möglich sind, definiert die Eigenschaft »NegotiatedSpeed« die verwendete Geschwindigkeit in Bits pro Sekunde. Wenn die Verbindungs- oder Busgeschwindigkeit nicht ausgehandelt wurde oder diese Informationen nicht verfügbar sind, sollte der Wert der Eigenschaft 0 sein. Anzahl der vom Controller ausgelösten Kaltstarts. Anzahl der vom Controller ausgelösten Warmstarts.
B.137 Win32_PageFile result as Integer = TakeOwnerShip
Die Methode »TakeOwnerShip« übernimt den Besitz der logischen Datei, die im Objektpfad angegeben ist. Wenn die logische Datei ein Verzeichnis ist, übernimt die Methode den Besitz aller Dateien und Unterverzeichnisse, die im Verzeichnis enthalten sind. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFSDateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
626
Anhang B: WMI Klassenreferenz
result as Integer = ChangeSecurityPermissions (Option as Integer, SecurityDescriptor as CIM-Object)
result as Integer = Copy (FileName as String)
result as Integer = Rename (FileName as String)
Die Methode »ChangeSecurityPermissions« ändert die Sicherheitsrechte für die im Objektpfad angegebene logische Datei. Wenn die logische Datei ein Verzeichnis ist, werden die Sicherheitsrechte aller im Verzeichnis enthaltener Dateien und Unterverzeichnisse geändert. Die Methode gibt den Wert 0 zurück, wenn die Rechte geändert wurden. Jeder andere Wert zeigt einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Copy« kopiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist, in das im Eingabeparameter festgelegte Verzeichnis. Der Wert 0 wird zurückgegeben, wenn die Datei kopiert wurde. Andere Werte zeigen einen Fehler an. Das Kopieren wird nicht unterstützt, wenn eine vorhandene Datei überschrieben werden muß. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Rename« benennt die logische Datei (oder das Verzeichnis) um, die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei umbenannt wurde. Andere Werte zeigen einen Fehler an. Die Umbenennung wird nicht unterstützt, wenn das Ziel ein anderes Laufwerk ist oder eine vorhandene Datei überschrieben werden muß. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
B.137 Win32_PageFile result as Integer = Delete
result as Integer = Compress
result as Integer = Uncompress
result as Integer = TakeOwnerShipEx (Recursive as Boolean, StartFileName as String)
627
Die Methode »Delete« löscht die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei gelöscht wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Compress« komprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei komprimiert wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Uncompress« dekomprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei dekomprimiert wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »TakeOwnerShipEx« übernimt den Besitz der logischen Datei, die im Objektpfad angegeben ist. Wenn die logische Datei ein Verzeichnis ist, übernimt die Methode den Besitz aller Dateien und Unterverzeichnisse, die im Verzeichnis enthalten sind. Der Wert 0 wird zurückgegeben, wenn der Vorgang erfolgreich beendet wurde. Andere Werte zeigen einen Fehler an. »TakeOwnerShipEx« ist eine erweiterte Version der Methode »TakeOwnerShip«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
628
Anhang B: WMI Klassenreferenz
Die Methode »ChangeSecurityPermissionsEx« ändert die Sicherheitsrechte für die im Objektpfad angegebene logische Datei. Wenn die logische Datei ein Verzeichnis ist, werden die Sicherheitsrechte aller im Verzeichnis enthaltener Dateien und Unterverzeichnisse geändert. Die Methode gibt den Wert 0 zurück, wenn die Rechte geändert wurden. Jeder andere Wert zeigt einen Fehler an. »ChangeSecurityPermissionsEx« ist eine erweiterte Version der Methode »ChangeSecurityPermissions«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFSDateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »CopyEx« kopiert die logische Datei (oder das Verzeichnis), die result as Integer = CopyEx (FileName as String, Recursive im Objektpfad angegeben ist, in das im Parameter »FileName« festgelegte as Boolean, StartFileName as Verzeichnis. Der Wert 0 wird zurückgegeben, wenn die Datei kopiert wurde. Andere Werte zeigen einen Fehler an. Das Kopieren wird nicht unterstützt, String) wenn eine vorhandene Datei überschrieben werden muß. »CopyEx« ist eine erweiterte Version der Methode »Copy«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. result as Integer = DeleteEx Die Methode »DeleteEx« löscht die logische Datei (oder das Verzeichnis), die (StartFileName as String) im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei gelöscht wurde. Andere Werte zeigen einen Fehler an. »DeleteEx« ist eine erweiterte Version der Methode »Delete«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. result as Integer = ChangeSecurityPermissionsEx(Option as Integer, Recursive as Boolean, SecurityDescriptor as CIM-Object, StartFileName as String)
B.137 Win32_PageFile result as Integer = CompressEx(Recursive as Boolean, StartFileName as String)
result as Integer = UncompressEx(Recursive as Boolean, StartFileName as String)
result as Boolean = GetEffectivePermission (Permissions as Integer) AccessMask
Archive Caption Compressed
629
Die Methode »CompressEx« komprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei komprimiert wurde. Andere Werte zeigen einen Fehler an. »CompressEx« ist eine erweiterte Version der Methode »Compress«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »UncompressEx« dekomprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei dekomprimiert wurde. Andere Werte zeigen einen Fehler an. »UncompressEx« ist eine erweiterte Version der Methode »Uncompress«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »GetEffectivePermission« bestimmt, ob der Aufrufer über die vom Argument »Permission« angegebenen zusammengesetzten Berechtigungen für das Dateiobjekt und ggf. die Freigabe verfügt, auf der sich die Datei oder das Verzeichnis befindet. Die Eigenschaft »AccessMask« ist ein Bitarray, das die Zugriffsrechte für die Datei oder das Verzeichnis des Benutzers oder der Gruppe darstellt, für die die Instanz zurückgegeben wird. Diese Eigenschaft wird nur in Windows NT und Windows 2000 unterstützt. Auf Windows 98 und Windows NT/2000 FAT-Datenträgern wird FULL_ACCESS zurückgegeben, da keine Objektsicherheit festgelegt ist. Die Eigenschaft »Archive« ist ein boolescher Wert, der angibt, ob die Datei archiviert werden soll. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Compressed« ist ein boolescher Wert, der angibt, daß die Datei komprimiert ist.
630
Anhang B: WMI Klassenreferenz
CompressionMethod
CreationClassName CreationDate CSCreationClassName CSName Description Drive EightDotThreeFileName Encrypted EncryptionMethod
Extension FileName FileSize FileType FreeSpace
FSCreationClassName FSName Hidden
Die Eigenschaft »CompressionMethod« ist eine formfreie Zeichenfolge, die den Algorithmus oder das Programm zum Komprimieren der logischen Datei angibt. Wenn es nicht möglich ist, das Komprimierungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob die logische Datei komprimiert ist. »Komprimiert«, wenn die Datei komprimiert ist, aber das Komprimierungsschema unbekannt ist. »Nicht komprimiert«, wenn die logische Datei nicht komprimiert ist. Die Eigenschaft »CreationClassName« gibt den Klassennamen an. Die Eigenschaft »CreationDate« gibt das Erstellungsdatum der Datei an. Die Eigenschaft »CSCreationClassName« gibt die Klasse des Computersystems an. Die Eigenschaft »CSName« gibt den Namen des Computersystems an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »Drive« gibt den Laufwerkbuchstaben (einschließlich Doppelpunkt) der Datei an. Beispiel: c: Die Eigenschaft »EightDotThreeFileName« gibt den DOS-kompatiblen Namen der Datei an. Beispiel: c:\progra~1 Die Eigenschaft »Encrypted« ist ein boolescher Wert, der angibt, daß die Datei verschlüsselt ist. Die Eigenschaft »EncryptionMethod« ist eine formfreie Zeichenfolge, die den Algorithmus oder das Programm zum Verschlüsseln der logischen Datei angibt. Wenn es z.B. aus Sicherheitsgründen nicht möglich ist, das Verschlüsselungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob die logische Datei verschlüsselt ist. »Verschlüsselt«, wenn die Datei verschlüsselt ist, aber das Verschlüsselungsschema unbekannt ist. »Nicht verschlüsselt«, wenn die logische Datei nicht verschlüsselt ist. Die Eigenschaft »Extension« gibt die Erweiterung der Datei ohne Punkt an. Beispiel: txt, mof, mdb. Die Eigenschaft »FileName« gibt den Namen der Datei ohne Erweiterung an. Beispiel: autoexec Die Eigenschaft »FileSize« gibt die Datengröße in Bytes an. Die Eigenschaft »FileType« stellt den in der Eigenschaft »Extension« angegebenen Dateityp dar. Die Eigenschaft »FreeSpace« gibt den für die Auslagerungsdatei verfügbaren Speicherplatz an. Das Betriebssystem kann die Auslagerungsdatei bis zum vom Benutzer festgelegten Limit vergrößern. Dieses Mitglied zeigt den Unterschied zwischen dem aktuell zugesicherten Speicher und der aktuellen Größe der Auslagerungsdatei an. Die maximal mögliche Größe der Auslagerungsdatei wird nicht angezeigt. Die Eigenschaft »FSCreationClassName« gibt die Klasse des Dateisystems an. Die Eigenschaft »FSName« gibt den Namen des Dateisystems an. Die Eigenschaft »Hidden« ist ein boolescher Wert, der angibt, ob die Datei versteckt ist.
B.138 Win32_PageFileElementSetting InitialSize InstallDate
InUseCount LastAccessed LastModified Manufacturer MaximumSize
Name Path Readable Status
System Version Writeable
631
Die Eigenschaft »InitialSize« gibt die ursprüngliche Größe der Auslagerungsdatei an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InUseCount« gibt die Anzahl der geöffneten Instanzen einer Datei an. Die Eigenschaft »LastAccessed« gibt an, wann zuletzt auf die Datei zugegriffen wurde. Die Eigenschaft »LastModified« gibt an, wann die Datei zuletzt geändert wurde. Herstellerzeichenfolge aus der Versionsressource, falls vorhanden. Die Eigenschaft »MaximumSize« gibt die vom Benutzer festgelegte maximale Größe der Auslagerungsdatei an. Dieses Limit darf nicht überschritten werden. Die Eigenschaft »Name« gibt den Namen der Auslagerungsdatei an. Beispiel: C:\PAGEFILE.SYS Die Eigenschaft »Path« gibt den Pfad der Datei an, einschließlich umgekehrter Schrägstriche am Anfang und am Ende. Beispiel: \windows\system\ Die Eigenschaft »Readable« ist ein boolescher Wert, der angibt, ob die Datei gelesen werden kann. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »System« ist ein boolescher Wert, der angibt, ob die Datei eine Systemdatei ist. Versionszeichenfolge aus der Versionsressource, falls vorhanden. Die Eigenschaft »Writeable« ist ein boolescher Wert, der angibt, ob die Datei geschrieben werden kann.
B.138 Win32_PageFileElementSetting Element Setting
Die Referenz »Element« stellt die Eigenschaften einer Auslagerungsdatei dar, während das Win32-System verwendet wird. Die Referenz »Setting« stellt die ursprünglichen Einstellungen einer Auslagerungsdatei dar, wenn das Win32-System gestartet wird.
632
Anhang B: WMI Klassenreferenz
B.139 Win32_PageFileSetting Caption Description InitialSize MaximumSize Name SettingID
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »InitialSize« gibt die ursprüngliche Größe der Auslagerungsdatei an. Beispiel: 139 Die Eigenschaft »MaximumSize« gibt die maximale Größe der Auslagerungsdatei an. Beispiel: 178 Die Eigenschaft »Name« gibt den Pfad und Namen der Auslagerungsdatei an. Beispiel: C:\PAGEFILE.SYS Die Kennung für das Objekt »CIM_Setting«.
B.140 Win32_PageFileUsage AllocatedBaseSize
Caption CurrentUsage Description InstallDate Name PeakUsage Status
Die Eigenschaft »AllocatedBaseSize« gibt den für die Auslagerungsdatei reservierten Speicherplatz an. Dieser Wert entspricht der Eigenschaft »Win32_PageFileSetting« unter »InitialSize« und »MaximumSize«, die beim Systemstart festgelegt wird. Beispiel: 178 MB Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »CurrentUsage« gibt den von der Auslagerungsdatei belegten Speicherplatz an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« gibt den Namen der Auslagerungsdatei an. Beispiel: C:\PAGEFILE.SYS Die Eigenschaft »PeakUsage« gibt die am meisten verwendete Auslagerungsdatei an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.141 Win32_ParallelPort
633
B.141 Win32_ParallelPort »SetPowerState« definiert den gewünschten Energiestatus und den Zeitresult as Integer = SetPowerState(PowerState as In- punkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Parameter »PowerState« folgende Werte festgelegt werden: 1=»Kein Enerteger, Time as Date/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Capabilities Eine Aufzählung, die die Funktionen des parallelen Controllers angibt. CapabilityDescriptions Formfreie Zeichenfolgen mit genaueren Erklärungen zu den im Datenfeld »Capabilities« angezeigten Funktionen des parallelen Controllers. Jeder Eintrag in diesem Array bezieht sich auf den Eintrag im Datenfeld »Capabilities« unter dem gleichen Index. Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. ConfigManagerErrorCode Gibt den Fehlercode des Win32-Konfigurations-Managers an. ConfigManagerUserConfig Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. CreationClassName Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Description Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. DeviceID Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den parallelen Anschluß angibt. DMASupport True gibt an, daß DMA vom parallelen Anschluß unterstützt wird.
634
Anhang B: WMI Klassenreferenz
ErrorCleared ErrorDescription
InstallDate
LastErrorCode MaxNumberControlled Name
OSAutoDiscovered
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
ProtocolSupported
Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Maximale Anzahl der direkt adressierbaren Einheiten, die vom Controller unterstützt werden. Wenn der Wert unbekannt ist, geben Sie 0 ein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »OSAutoDiscovered« gibt an, ob der parallele Anschluß automatisch vom Betriebssystem gefunden oder manuell über die Systemsteuerung hinzugefügt wurde. Werte: TRUE oder FALSE. TRUE gibt an, daß der parallele Anschluß automatisch gefunden wurde. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Das vom Controller zum Zugriff auf gesteuerte Geräte verwendete Protokoll.
B.142 Win32_Patch Status
StatusInfo
SystemCreationClassName
SystemName
TimeOfLastReset
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während dem erneuten Spiegeln eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »TimeOfLastReset« gibt an, wann der Controller zuletzt zurückgesetzt (ausgeschalten oder erneut initialisiert) wurde.
B.142 Win32_Patch Attributes Caption Description File PatchSize ProductCode Sequence SettingID
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«.
B.143 Win32_PatchFile Check Setting
635
636
Anhang B: WMI Klassenreferenz
B.144 Win32_PatchPackage Caption Description PatchID ProductCode SettingID
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«.
B.145 Win32_PhysicalMemory BankLabel Capacity Caption CreationClassName
DataWidth
Description DeviceLocator FormFactor HotSwappable
InstallDate
InterleaveDataDepth
Eine Zeichenfolge, die die physikalische Speicherbank identifiziert, z.B. Bank 0 oder Bank A. Die Gesamtkapazität des physikalischen Speichers in Byte. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Die Datenbreite des physikalischen Speichers in Bits. Eine Datenbreite von 0 und eine Gesamtbreite von 8 gibt an, daß der Speicher nur für Fehlerkorrekturbits verwendet wird. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceLocator« gibt die Bezeichnung des Sockels oder der Platine mit dem Speicher an. Beispiel: SIMM 3 Der Implementierungsfaktor für den Chip. Z.B. können folgende Werte angegeben werden: SIMM (7), TSOP (9) oder PGA (10). Eine physikalische Komponente ist in Betrieb austauschbar, wenn sie durch ein physikalisch gleichwertiges Element ersetzt werden kann, während das enthaltende Paket eingeschaltet ist. Eine Lüfterkomponente kann z.B. in Betrieb austauschbar sein. Alle in Betrieb austauschbaren Komponenten sind durch Vererbung ersetzbar. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InterleaveDataDepth« gibt die maximale Anzahl der aufeinander folgenden Datenzeilen an, auf die in einer Übertragung (interleaved) vom Speichergerät zugegriffen werden kann. Wenn der Wert 0 ist, ist der Speicher nicht interleaved.
B.145 Win32_PhysicalMemory InterleavePosition
Manufacturer MemoryType Model Name
OtherIdentifyingInfo
PartNumber
PositionInRow
PoweredOn Removable
Replaceable
SerialNumber SKU Speed
637
Gibt die Position des physikalischen Speichers in einem Interleave an. 0 gibt nicht interleaved an, 1 die erste Position, 2 die zweite Position, usw. In einem 2:1 Interleave gibt der Wert 1 z.B. an, daß sich der Speicher in einer geraden Position befindet. Der Name der Organisation, die für die Herstellung des physikalischen Elements verantwortlich ist. Der Typ des physikalischen Arbeitsspeichers. Der Name der physikalischen Komponente. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. »OtherIdentifyingInfo« erfaßt außer Bestandskennzeichnungsinformationen auch Daten, die dazu verwendet werden können, physikalische Elemente zu identifizieren. Ein Beispiel dafür sind Barcodedaten, die mit einem Element verbunden sind, das auch über eine Bestandskennzeichnung verfügt. Hinweis: Wenn nur Barcodedaten verfügbar sind, die allein als Elementschlüssel verwendet werden können, ist diese Eigenschaft NULL, und die Barcodedaten werden in der Eigenschaft »Tag« als Klassenschlüssel verwendet. Die Einzelteilnummer, die von der Organisation, die für die Produktion und Herstellung des physikalischen Elements verantwortlich ist, zugewiesen wurde. Gibt die Position des physikalischen Speichers in einer Reihe an. Wenn z.B. zwei 8-Bit Speichergeräte für eine 16-Bit Reihe erforderlich sind, gibt der Wert 2 an, daß dieser Speicher das zweite Gerät ist. Der Wert 0 ist in dieser Eigenschaft ungültig. Boolescher Wert, der angibt, ob die physikalische Komponente eingeschaltet (TRUE) oder ausgeschaltet (FALSE) ist. Eine physikalische Komponente ist austauschbar, wenn es aus seinem physikalischen Container entfernt werden kann, ohne die Funktion des Gesamtpakets zu beeinträchtigen. Eine Komponente ist auch austauschbar, wenn das Gerät bei der Entnahme ausgeschaltet sein muß. Wenn das Gerät bei der Entnahme eingeschaltet sein kann, ist das Element in Betrieb austauschbar. Ein aktualisierbarer Chip ist z.B. austauschbar. Eine physikalische Komponente ist austauschbar, wenn sie durch ein physikalisch unterschiedliches Element ersetzt (oder aktualisiert) werden kann. Bei einigen Computersystemen ist es z.B. möglich, den Hauptprozessorchip durch einen Chip mit einer höheren Taktfrequenz zu ersetzen. Alle austauschbaren Komponenten sind durch Vererbung ersetzbar. Eine Herstellernummer zum Identifizieren des physikalischen Elements. Die SKU-Nummer für das physikalische Element. Die Geschwindigkeit des physikalischen Speichers in Nanosekunden.
638
Anhang B: WMI Klassenreferenz
Status
Tag
TotalWidth
TypeDetail Version
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »Tag« enthält eine Zeichenfolge, die das physikalische Speichergerät eindeutig kennzeichnet, der von einer Win32_PhysicalMemoryInstanz angegeben wird. Beispiel: Physikalischer Speicher 1 Gesamtbreite des physikalischen Speicher in Bits, einschließlich Prüf- und Fehlerkorrekturbits. Wenn keine Fehlerkorrekturbits vorhanden sind, muß der Wert in dieser Eigenschaft mit dem Wert in der Eigenschaft »DataWidth« übereinstimmen. Die Eigenschaft »TypeDetail« gibt den physikalischen Speichertyp in Win32_PhysicalMemory an. Eine Zeichenfolge, die die Version des physikalischen Elements angibt.
B.146 Win32_PhysicalMemoryArray result as Integer = IsCompatible (ElementToCheck???)
Caption CreationClassName
Depth Description Height HotSwappable
Die Methode »IsCompatible« gibt an, ob das physikalische Element im physikalischen Paket enthalten ist oder hinzugefügt werden kann. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Die Tiefe des physikalischen Pakets in Zoll. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Höhe des physikalischen Pakets in Zoll. Ein physikalisches Paket kann in Betrieb ausgetauscht werden, wenn es durch ein physikalisch unterschiedliches, aber gleichwertiges ersetzt werden kann, während der Container eingeschaltet ist. Ein Laufwerkpaket das mit SCASteckverbindungen eingefügt wird, ist z.B. in Betrieb austauschbar. Alle in Betrieb austauschbaren Pakete sind ersetzbar.
B.146 Win32_PhysicalMemoryArray InstallDate
Location Manufacturer MaxCapacity
MemoryDevices MemoryErrorCorrection Model Name
OtherIdentifyingInfo
PartNumber
PoweredOn Removable
639
Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Location« gibt die physikalische Position der Speicherarrays an. Der Name der Organisation, die für die Herstellung des physikalischen Elements verantwortlich ist. Die Eigenschaft »MaxCapacity« gibt die maximale Speichergröße für dieses Speicherarray in Byte an. Wenn die Größe unbekannt ist, ist der Wert dieser Eigenschaft 0. Die Eigenschaft »MemoryDevices« gibt die Anzahl der im Speicherarray verfügbaren physikalischen Steckplätze an. Die Eigenschaft »MemoryErrorCorrection« gibt den Typ der vom Speicherarray verwendeten Fehlerkorrektur an. Der Name der physikalischen Komponente. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. »OtherIdentifyingInfo« erfaßt außer Bestandskennzeichnungsinformationen auch Daten, die dazu verwendet werden können, physikalische Elemente zu identifizieren. Ein Beispiel dafür sind Barcodedaten, die mit einem Element verbunden sind, das auch über eine Bestandskennzeichnung verfügt. Hinweis: Wenn nur Barcodedaten verfügbar sind, die allein als Elementschlüssel verwendet werden können, ist diese Eigenschaft NULL, und die Barcodedaten werden in der Eigenschaft »Tag« als Klassenschlüssel verwendet. Die Einzelteilnummer, die von der Organisation, die für die Produktion und Herstellung des physikalischen Elements verantwortlich ist, zugewiesen wurde. Boolescher Wert, der angibt, ob die physikalische Komponente eingeschaltet (TRUE) oder ausgeschaltet (FALSE) ist. Ein physikalisches Paket ist austauschbar, wenn es aus seinem physikalischen Container entfernt werden kann, ohne die Funktion des Gesamtpakets zu beeinträchtigen. Ein Paket ist auch austauschbar, wenn das Gerät bei der Entnahme ausgeschaltet sein muß. Wenn das Gerät bei der Entnahme eingeschaltet sein kann, ist das Element in Betrieb austauschbar. Eine zusätzliche Batterie in einem Laptop ist z.B. austauschbar, und ein Laufwerkpaket, das mit SCA-Steckverbindungen eingefügt wird, ist in Betrieb austauschbar. Ein Laptopbildschirm und eine nicht redundante Stromversorgung sind nicht austauschbar. Wenn diese Komponenten entfernt werden, werden die Funktionen des Gesamtpakets beeinträchtigt.
640
Anhang B: WMI Klassenreferenz
Replaceable
SerialNumber SKU Status
Tag Use Version Weight Width
Ein physikalisches Paket ist austauschbar, wenn sie durch ein physikalisch unterschiedliches Element ersetzt (oder aktualisiert) werden kann. Bei einigen Computersystemen ist es z.B. möglich, den Hauptprozessorchip durch einen Chip mit einer höheren Taktfrequenz zu ersetzen. Ein weiteres Beispiel ist ein Energieversorgungspaket auf Gleitschienen. Alle austauschbaren Pakete sind durch Vererbung ersetzbar. Eine Herstellernummer zum Identifizieren des physikalischen Elements. Die SKU-Nummer für das physikalische Element. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »Tag« enthält eine Zeichenfolge, die das physikalische Speicherarray eindeutig kennzeichnet. Beispiel: Physikalisches Speicherarray 1 Die Eigenschaft »Use« gibt an, wie der Arbeitsspeicher im Computersystem verwendet wird. Eine Zeichenfolge, die die Version des physikalischen Elements angibt. Das Gewicht des physikalischen Pakets in Pfund. Die Breite des physikalischen Pakets in Zoll.
B.147 Win32_PhysicalMemoryLocation GroupComponent LocationWithinContainer
PartComponent
Die Referenz »GroupComponent« stellt das physikalische Speicherarray dar, das den physikalischen Speicher enthält. Eine formfreie Zeichenfolge, die die Position des physikalischen Element im physikalischen Paket darstellt. Diese Zeichenfolge kann als Zusatz oder zum Erstellen des CIM_Location-Objekts verwendet werden. Die Referenz »PartComponent« stellt den im physikalischen Speicherarray enthaltenen physikalischen Speicher dar.
B.148 Win32_PnPDevice SameElement SystemElement
Die Referenz »SameElement« stellt die logischen Geräteeigenschaften dar, die dem Plug & Play-Gerät zugeordnet sind. Die Referenz »SystemElement« stellt das dem Plug & Play-Gerät zugeordnete logische Gerät dar.
B.149 Win32_PnPEntity
641
B.149 Win32_PnPEntity result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. ClassGuid Die Eigenschaft »ClassGuid« gibt die GUID (Globally Unique Identifier) für das Plug & Play-Gerät an. ConfigManagerErrorCode Gibt den Fehlercode des Win32-Konfigurations-Managers an. ConfigManagerUserConfig Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. CreationClassName Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Description Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. DeviceID Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das Plug & Play-Gerät angibt. ErrorCleared Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. ErrorDescription Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge.
642
Anhang B: WMI Klassenreferenz
InstallDate
LastErrorCode Manufacturer Name
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
Service
Status
Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des Plug & PlayGeräts an. Beispiel: Acme Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »Service« gibt den Namen des Dienstes an, der das Plug & Play-Gerät unterstützt. Siehe auch: »Win32_SystemDriverPNPEntity«. Beispiel: atapi Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.150 Win32_PointingDevice StatusInfo
SystemCreationClassName
SystemName
643
Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
B.150 Win32_PointingDevice result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet.
644
Anhang B: WMI Klassenreferenz
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID DeviceInterface DoubleSpeedThreshold
ErrorCleared ErrorDescription
Handedness
HardwareType InfFileName InfSection InstallDate IsLocked LastErrorCode Manufacturer Name
NumberOfButtons PNPDeviceID PointingType
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das Zeigegerät von anderen Geräten im System unterscheidet. Die Eigenschaft »DeviceInterface« gibt den für das Zeigegerät verwendeten Schnittstellentyp an. Die Eigenschaft »DoubleSpeedThreshold« enthält einen oder zwei Beschleunigungswerte. Die Sensitivität des Zeigegeräts wird verdoppelt, wenn das Zeigegerät über eine größere Entfernung verschoben wird, als der Schwellenwert angibt. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Eine ganze Zahl, die angibt, ob das Zeigegerät für den rechtshändigen (Wert =2) oder linkshändigen (Wert=3) Betrieb konfiguriert ist. Es können auch die Werte »Unbekannt« (0) und »Nicht zutreffend« (1) definiert werden. Die Eigenschaft »HardwareType« gibt den für das Win32-Zeigegerät verwendeten Hardwaretyp an. Beispiel: MICROSOFT PS2-MAUS. Die Eigenschaft »InfFileName« gibt den Namen der INF-Datei für das Win32-Zeigegerät an. Beispiel: ab.inf Die Eigenschaft »InfSection« gibt den Abschnitt in der INF-Datei an, der die Konfigurationsinformationen für das Win32-Zeigegerät enthält. Die Eigenschaft »InstallDate« gibt an, wann es installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Gibt an, ob das Gerät gesperrt ist, um die Benutzereingabe oder -ausgabe zu verhindern. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des Prozessors an. Beispiel: GenuineSilicon Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »NumberOfButtons« gibt die Anzahl der Tasten auf dem Zeigegerät an. Beispiel: 2 Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Typ des Zeigegeräts.
B.150 Win32_PointingDevice PowerManagementCapabilities
PowerManagementSupported
QuadSpeedThreshold
Resolution SampleRate Status
StatusInfo
Synch
645
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »QuadSpeedThreshold« enthält einen von zwei Beschleunigungsschwellenwerten. Die Geschwindigkeit der Zeigerbewegung wird verdoppelt, wenn das Zeigegerät über eine Distanz verschoben wird, die größer als dieser Wert ist. Da die Geschwindigkeit nach Übereinstimmung mit »DoubleSpeedThreshold« erhöht wird, bewegt sich der Zeiger viermal so schnell. Die Eigenschaft »Resolution« gibt die Trackingauflösung an. Beispiel: 0 Die Eigenschaft »SampleRate« gibt die Rate an, mit der das Anzeigegerät auf Eingabeinformationen abgefragt wird. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »Synch« gibt den Zeitraum an, nachdem der nächste Interrupt den Start eines neuen Gerätepakets (unvollständige Pakete werden verworfen) angeben soll. Wenn ein Interrupt unterbrochen wird, kann der Zeigegerätetreiber die interne Darstellung des Paketstatus mit dem Hardwarestatus synchronisieren.
646
Anhang B: WMI Klassenreferenz
SystemCreationClassName
SystemName
Die Eigenschaft »Synch« gibt den Zeitraum an, nachdem der nächste Interrupt den Start eines neuen Gerätepakets (unvollständige Pakete werden verworfen) angeben soll. Wenn ein Interrupt unterbrochen wird, kann der Zeigegerätetreiber die interne Darstellung des Paketstatus mit dem Hardwarestatus synchronisieren. Die Eigenschaft »Synch« gibt den Zeitraum an, nachdem der nächste Interrupt den Start eines neuen Gerätepakets (unvollständige Pakete werden verworfen) angeben soll. Wenn ein Interrupt unterbrochen wird, kann der Zeigegerätetreiber die interne Darstellung des Paketstatus mit dem Hardwarestatus synchronisieren.
B.151 Win32_PortConnector Caption ConnectorPinout ConnectorType CreationClassName
Description ExternalReferenceDesignator
InstallDate InternalReferenceDesignator
Manufacturer Model Name
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Eine formfreie Zeichenfolge, die die Pinkonfiguration und die Signalverwendung einer physikalischen Steckverbindung beschreibt. Die Eigenschaft »ConnectorType« gibt die physikalischen Attribute der Steckverbindung für den Anschluß an. Beispiel: 2 25 (Male RS-232) »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »ExternalReferenceDesignator« gibt die externe Kennung des Anschlusses an. Externe Kennungen geben den Typ und die Verwendung des Anschlusses an. Beispiel: COM1 Die Eigenschaft »InstallDate« gibt an, wann es installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InternalReferenceDesignator« gibt die interne Kennung des Anschlusses an. Interne Kennungen sind herstellerspezifisch und geben die Position der Platine oder die Verwendung des Anschlusses an. Beispiel: J101 Der Name der Organisation, die für die Herstellung des physikalischen Elements verantwortlich ist. Der Name der physikalischen Komponente. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden.
B.152 Win32_PortResource OtherIdentifyingInfo
PartNumber
PortType PoweredOn SerialNumber SKU Status
Tag
Version
647
»OtherIdentifyingInfo« erfaßt außer Bestandskennzeichnungsinformationen auch Daten, die dazu verwendet werden können, physikalische Elemente zu identifizieren. Ein Beispiel dafür sind Barcodedaten, die mit einem Element verbunden sind, das auch über eine Bestandskennzeichnung verfügt. Hinweis: Wenn nur Barcodedaten verfügbar sind, die allein als Elementschlüssel verwendet werden können, ist diese Eigenschaft NULL und die Barcodedaten werden in der Eigenschaft »Tag« als Klassenschlüssel verwendet. Die Einzelteilnummer, die von der Organisation, die für die Produktion und Herstellung des physikalischen Elements verantwortlich ist, zugewiesen wurde. Die Eigenschaft »PortType« beschreibt die Funktion des Anschlusses. Beispiel: USB Boolescher Wert, der angibt, ob die physikalische Komponente eingeschaltet (TRUE) oder ausgeschaltet (FALSE) ist. Eine Herstellernummer zum Identifizieren des physikalischen Elements. Die SKU-Nummer für das physikalische Element. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »Tag« enthält eine Zeichenfolge, die eine Anschlussverbindung auf dem Computersystem eindeutig kennzeichnet. Beispiel: Anschlussverbindung 1 Eine Zeichenfolge, die die Version des physikalischen Elements angibt.
B.152 Win32_PortResource Alias
Caption
Die Eigenschaft »Alias« gibt an, ob diese Instanz die Basisanschlussadresse oder einen Bereich mit einem Alias darstellt. Eine Basisanschlussadresse ist einem bestimmten Server oder einem Gerät zugeordnet. Eine Anschlussaliasadresse wird von einem Gerät wie eine Adresse eines E/A-Anschlusses behandelt. Werte: TRUE oder FALSE. TRUE gibt an, daß die Instanz eine Aliasadresse darstellt. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an.
648
Anhang B: WMI Klassenreferenz
CreationClassName
CSCreationClassName CSName Description EndingAddress InstallDate Name
StartingAddress
Status
»CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Der Erstellungsklassenname des bereichsdefinierenden Computersystems. Der Name des bereichsdefinierenden Computersystems. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »EndingAddress« enthält die letzte Adresse der im Speicher abgebildeten E/A. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »StartingAddress« enthält die erste Adresse der im Speicher abgebildeten E/A. Dieser Wert sollte für die Hardwareressourcenkennung verwendet werden, um den abgebildeten E/A-Ressourcenschlüssel zu erstellen. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.153 Win32_PortableBattery result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
B.153 Win32_PortableBattery result as Integer = Reset
Availability
BatteryRechargeTime BatteryStatus
CapacityMultiplier
Caption Chemistry ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DesignCapacity DesignVoltage DeviceID ErrorCleared ErrorDescription
649
Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »BatteryRechargeTime« gibt die zum vollständigen Aufladen der Batterie erforderliche Zeitdauer an. Beschreibung des Batterieladestatus. Z.B. können folgende Werte angegeben werden: »Vollständig geladen« (Wert=3) oder »Teilweise geladen« (11). Der Wert 10 ist im CIM-Schema ungültig, da es in DMI angibt, daß keine Batterie installiert ist. In diesem Fall sollte das Objekt nicht initialisiert werden. Die Eigenschaft »CapacityMultiplier« enthält den Multiplikationsfaktor des Werts »Design Capacity«, um sicherzustellen, daß der Wert für die Milliwattstunden für die SBDS-Implementierungen (Smart Battery Data Specification) nicht überschritten wird. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Eine Aufzählung, die die chemische Zusammensetzung der Batterie beschreibt. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Kapazität der Batterie in Milliwatt-Stunden. Geben Sie 0 ein, wenn diese Eigenschaft nicht unterstützt wird. Die Spannung der Batterie in Millivolts. Geben Sie 0 ein, wenn dieses Attribut nicht unterstützt wird. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die die Batterie angibt. Beispiel: Interne Batterie Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge.
650
Anhang B: WMI Klassenreferenz
EstimatedChargeRemaining EstimatedRunTime
ExpectedBatteryLife ExpectedLife
FullChargeCapacity
InstallDate
LastErrorCode Location
ManufactureDate Manufacturer MaxBatteryError
MaxRechargeTime
Name
PNPDeviceID
Geschätzte Restladung in Prozent. »EstimatedRunTime« schätzt, wie lange es dauert, bis die Batterie oder der Generator unter der gegenwärtigen Belastung leer sind, wenn die Stromversorgung unterbrochen oder abgeschaltet ist oder ein Laptop von der Stromzufuhr getrennt wurde. Die Eigenschaft »ExpectedBatteryLife« gibt die erwartete Lebensdauer der Batterie an, nachdem diese vollständig aufgeladen wurde. Gibt die erwartete Lebensdauer der Batterie in Minuten an; vorausgesetzt, daß die Batterie vollständig aufgeladen ist. Diese Eigenschaft gibt die gesamte Lebensdauer der Batterie an. Die verbleibende Lebensdauer wird in der Eigenschaft »EstimatedRunTime« angezeigt. Die gesamte Ladekapazität der Batterie in Milliwatt-Stunden. Der Vergleich dieses Werts mit der Eigenschaft »DesignCapacity« bestimmt, wann die Batterie ersetzt werden muß. Wenn die Eigenschaft »FullChargeCapacity« unter 80% der Eigenschaft »DesignCapacity« liegt, ist die Lebensdauer der Batterie beendet. Geben Sie 0 ein, wenn diese Eigenschaft nicht unterstützt wird. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Location« gibt die physikalische Position der Batterie an. Diese Eigenschaft wird vom Hersteller angegeben. Beispiel: Rückseite, linke Seite Die Eigenschaft »ManufactureDate« gibt das Herstellungsdatum der Batterie an. Die Eigenschaft »Manufacturer« gibt den Hersteller der Batterie an. Die Eigenschaft »MaxBatteryError« gibt den Unterschied zwischen dem geschätzten Höchstwert der restlichen Batterieenergie und dem aktuellen Wert an. »MaxRechargeTime« gibt die zum Aufladen der Batterie maximal erforderliche Zeitdauer an. Diese Eigenschaft gibt die Zeitdauer zum Aufladen einer vollständig leeren Batterie an. Die verbleibende Aufladezeit wird in der Eigenschaft »TimeToFullCharge« angezeigt. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
B.153 Win32_PortableBattery PowerManagementCapabilities
PowerManagementSupported
SmartBatteryVersion
Status
StatusInfo
SystemCreationClassName
SystemName
651
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Versionsnummer für Smart Battery-Datenspezifikationen, die von dieser Batterie unterstützt wird. Wenn die Batterie diese Funktion nicht unterstützt, sollte dieser Wert leer sein. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
652
Anhang B: WMI Klassenreferenz »TimeOnBattery« gibt den Zeitraum in Sekunden an, der seit dem letzten Umschalten der UPS zu Batteriebetrieb oder seit dem letzten Neustart der UPS verstrichen ist. Der Wert Null wird zurückgegeben, wenn die Batterie aktiv ist. Erforderliche Zeit zum Aufladen der Batterie in Minuten (berechnet nach aktueller Aufladegeschwindigkeit und Verbrauch)
TimeOnBattery
TimeToFullCharge
B.154 Win32_PowerManagementEvent EventType OEMEventCode
Die Eigenschaft »EventType« gibt den Änderungstyp im Systemenergiestatus an. Die Eigenschaft »OEMEventCode« gibt den vom OEM (Original Equipment Manufacturer) definierten Systemenergiestatus an, wenn die Eigenschaft »EventType« dieser Klasse »OEM Event« ist. Ansonsten ist diese Eigenschaft NULL. OEM-Ereignisse werden generiert, wenn ein APM BIOS ein APM OEM-Ereignis anzeigen. OEMEreigniscode liegen im Bereich von 0x0200h bis 0x02FFh.
B.155 Win32_PrintJob Caption DataType
Description Document DriverName ElapsedTime HostPrintQueue InstallDate JobId JobStatus Name
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »DataType« gibt das Datenformat für den Druckauftrag an. Der Druckertreiber wird angewiesen, die Daten (allgemeinen Text, PostScript oder PCL) vor dem Drucken zu übersetzen oder in einem binären Format zu drucken (Grafiken und Bilder). Beispiel: TEXT Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »Document« gibt den Namen des Druckauftrags an. Beispiel: Microsoft Word – Review.doc Die Eigenschaft »DriverName« gibt den Namen des für den Druckauftrag verwendeten Druckertreibers an. Zeitraum, in dem der Auftrag ausgeführt wurde. Die Eigenschaft »HostPrintQueue« enthält den Namen des Computers, auf dem der Druckauftrag erstellt wurde. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »JobId« gibt die Auftragskennung an. Diese Eigenschaft wird als Handle für einen an den Drucker gesendeten Auftrag verwendet. Formfreie Zeichenfolge, die den Status des Auftrags angibt. Die Eigenschaft »Name« enthält den Namen des Druckers, an den der Druckauftrag gesendet wurde.
B.155 Win32_PrintJob Notify Owner PagesPrinted Parameters PrintProcessor
Priority Size StartTime Status
StatusMask TimeSubmitted TotalPages UntilTime
653
Bei Auftragsbeendigung oder Fehler zu benachrichtigender Benutzer. Diese Eigenschaft ist auf Windows 9x-Plattformen auf 16 Zeichen beschränkt. Benutzer, der den Auftrag gesendet hat. Die Eigenschaft »PagesPrinted« gibt die Anzahl der gedruckten Seiten an. Der Wert ist Null, wenn der Druckauftrag keine Seitentrennzeichen enthält. Die Eigenschaft »Parameters« gibt optionale Parameter zum Senden an den Drukkerprozessor an. Das Mitglied »PrintProcessor« enthält weitere Informationen. Die Eigenschaft »PrintProcessor« gibt den Druckerprozessordienst zum Verarbeiten des Druckauftrags an. Ein Druckerprozessor funktioniert in Verbindung mit dem Druckertreiber, um zusätzliche Druckerdaten für den Drucker zu übersetzen, und kann für spezielle Optionen, z.B. zum Drucken einer Titelseite, verwendet werden. Die Priorität gibt an, wie wichtig oder dringend der Auftrag ist bzw. ausgeführt werden muß. Die Eigenschaft »Size« gibt die Größe des Druckauftrags an. Zeitpunkt, zu dem der Auftrag gestartet wurde. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »StatusMask« gibt eine Bitmap für den möglichen Status des Druckauftrags an. Zeitpunkt, zu dem der Auftrag gesendet wurde. Die Eigenschaft »TotalPages« gibt die Anzahl der für den Auftrag erforderlichen Seiten an. Der Wert ist Null, wenn der Druckauftrag keine Seitentrennzeichen enthält. Zeitraum, nach dem der Auftrag ungültig wird oder angehalten werden sollte.
654
Anhang B: WMI Klassenreferenz
B.156 Win32_Printer result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Attributes Die Eigenschaft »Attributes« gibt die Attribute des Win32-Druckers an. Diese Attribute werden durch eine Kombination von Flags dargestellt. Druckerattribute: In der Warteschlange – Druckaufträger werden gepuffert. Direkt – Gibt an, daß das Dokument direkt an den Drucker gesendet wird, wenn Druckaufträge nicht richtig gepuffert werden. Standard – Der Drukker ist der Standarddrucker. Freigegeben – Verfügbar als freigegebene Netzwerkressource. Netzwerk – Mit dem Netzwerk verbunden. Ausgeblendet – Für einige Benutzer des Netzwerks nicht sichtbar. Lokal – Direkt mit diesem Computer verbunden. EnableDevQ – Aktiviert die Druckerwarteschlange, falls verfügbar. KeepPrintedJobs – Gibt an, daß der Spooler keine Dokumente nach dem Drucken löscht. DoCompleteFirst – Startet gespoolte Aufträge zuerst. WorkOffline – Puffert Druckaufträge, wenn der Drucker nicht verfügbar ist. EnableBIDI – Aktiviert birektionales Drucken. RawOnly – Spoolt nur Aufträge mit binären Daten. Veröffentlicht – Gibt an, ob der Drucker im Netzwerkverzeichnisdienst veröffentlicht wird. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet.
B.156 Win32_Printer AveragePagesPerMinute Capabilities
CapabilityDescriptions
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName DefaultPriority Description DetectedErrorState DeviceID DriverName ErrorCleared ErrorDescription
HorizontalResolution InstallDate
JobCountSinceLastReset
LanguagesSupported LastErrorCode Location Name
PaperSizesSupported PNPDeviceID
655
Die Eigenschaft »AveragePagesPerMinute« gibt die durchschnittliche Anzahl der Seiten pro Minute an, die der Drucker unterstützt. Ein Array mit ganzen Zahlen, das die Druckerfunktionen angibt. In dieser Eigenschaft werden z.B. »Duplexdruck« (Wert=3) oder »Transparent« (7) festgelegt. Formfreie Zeichenfolgen mit genaueren Erklärungen zu den im Datenfeld »Capabilities« angezeigten Druckerfunktionen. Jeder Eintrag in diesem Array bezieht sich auf den Eintrag im Datenfeld »Capabilities« unter dem gleichen Index. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »DefaultPriority« gibt den Wert der Standardpriorität für jeden Druckauftrag an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Druckerfehlerinformationen. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den Drucker von anderen Geräten im System unterscheidet. Die Eigenschaft »DriverName« gibt den Namen des Win32Druckertreibers an. Beispiel: Windows NT Faxtreiber Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Horizontale Druckerauflösung in Pixel pro Zoll. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Ein Array, das die unterstützten Druckersprachen angibt. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Location« gibt die physikalische Position des Druckers an. Beispiel: Geb. 38, Raum 1164 Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Ein Array mit ganzen Zahlen, das die unterstützten Papiertypen angibt. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
656
Anhang B: WMI Klassenreferenz
PortName
PowerManagementCapabilities
PowerManagementSupported
PrinterPaperNames
PrinterState PrinterStatus PrintJobDataType PrintProcessor SeparatorFile
ServerName ShareName SpoolEnabled StartTime
Die Eigenschaft »PortName« gibt die Druckeranschlüsse an. Wenn ein Drucker mit mehreren Anschlüssen verbunden ist, sind die Anschlussnamen durch Kommas getrennt. In Windows 95 kann nur ein Anschluß angegeben werden. Beispiel: LPT1:, LPT2:, LPT3: Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »PrinterPaperNames« gibt die vom Drucker unterstützten Papiergrößen an. Die druckerspezifischen Namen stellen die unterstützten Papiergrößen dar. Beispiel: B5 (JIS). Die Eigenschaft »PrinterState« gibt einen Wert für den möglichen Status des Druckers an. Statusinformationen für einen Drucker. Werte: »Leerlauf« (3) und Drukken (4). Die Eigenschaft »PrintJobDataType« gibt den Datentyp des auf dem Win32-Druckgeräts anstehenden Druckauftrags an. Die Eigenschaft »PrintProcessor« gibt den Namen des Spoolers für Druckaufträge an. Beispiel: SPOOLSS.DLL. Die Eigenschaft »SeparatorFile« gibt den Namen der zum Erstellen einer Trennseite verwendeten Datei an. Mit dieser Seite werden Druckaufträge getrennt, die an den Drucker gesendet werden. Die Eigenschaft »ServerName« gibt den Server an, der den Drucker steuert. NULL gibt an, daß der Drucker lokal gesteuert wird. Die Eigenschaft »ShareName« gibt den Freigabenamen des Win32Druckgeräts an. Beispiel: \\PRINTSERVER1\PRINTER2 Die Eigenschaft »SpoolEnabled« zeigt an, ob das Spoolen für den Drucker aktiviert ist. Werte: TRUE oder FALSE. Die Eigenschaft »StartTime« gibt den frühesten Zeitpunkt zum Ausführen eines Druckauftrags an, wenn das Drucken auf bestimmte Zeitpunkte beschränkt ist. Dieser Wert wird als seit 12:00 AM GMT (Greenwich Mean Time) verstrichene Zeit angegeben.
B.157 Win32_PrinterConfiguration Status
StatusInfo
SystemCreationClassName
SystemName
TimeOfLastReset
UntilTime
VerticalResolution
657
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »UntilTime« gibt den spätesten Zeitpunkt zum Ausführen eines Druckauftrags an, wenn das Drucken auf bestimmte Zeitpunkte beschränkt ist. Dieser Wert wird als seit 12:00 AM GMT (Greenwich Mean Time) verstrichene Zeit angegeben. Vertikale Druckerauflösung in Pixel pro Zoll.
B.157 Win32_PrinterConfiguration BitsPerPel
Caption Collate
Die Eigenschaft »BitsPerPel« enthält die Anzahl der Bits pro Pixel für den Win32-Drucker. Dieses Mitglied wird von Bildschirmtreibern und nicht von Druckertreibern verwendet. Beispiel: 8 Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Die Eigenschaft »Collate« gibt an, ob die gedruckten Seiten sortiert werden. Das Drucken erfolgt dokumenten- und nicht seitenweise. Diese Eigenschaft wird ignoriert, wenn der Druckertreiber das Sortieren nicht unterstützt. Werte: TRUE oder FALSE. TRUE gibt an, daß Dokumente sortiert werden.
658
Anhang B: WMI Klassenreferenz
Color
Copies
Description DeviceName
DisplayFlags
DisplayFrequency
DitherType
DriverVersion
Duplex
FormName
HorizontalResolution
ICMIntent
Die Eigenschaft »Color« gibt an, ob das Dokument in Farbe oder Schwarzweiß gedruckt wird. Einige Drucker verwenden echtes Schwarz anstelle einer Mischung aus Gelb, Zyan und Magenta, um den Text dunkler und schärfer anzuzeigen. Die Option wird nur für Farbdrucker verwendet, die das Drukken von Schwarz unterstützen. Die Eigenschaft »Copies« gibt die Anzahl der zu druckenden Kopien an. Das Drucken mehrseitiger Kopien muß vom Druckertreiber unterstützt werden. Beispiel: 2 Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »DeviceName« gibt den Namen des Druckers an. Dieser Name ist eindeutig für den Druckertyp und ist möglicherweise abgeschnitten. Beispiel: PCL/HP LaserJet Die Eigenschaft »DisplayFlags« enthält zwei Informationsbits über den Bildschirm. Dieses Mitglied gibt an, ob es sich um einen Farbmonitor oder einen S/W-Monitor mit oder ohne Zeilensprung handelt. Diese Eigenschaft wird nicht für Druckertreiber verwendet. Die Eigenschaft »DisplayFrequency« gibt die Aktualisierungsrate des Bildschirms an. Die Aktualisierungsrate legt fest, wie oft der Bildschirm pro Sekunde neu gezeichnet wird. Diese Eigenschaft wird nicht für Druckertreiber verwendet. Die Eigenschaft »DitherType« gibt den Farbmischungstyp des Druckers an. Dieses Mitglied kann vordefinierte Werte von 1 bis 5 oder treiberdefinierte Werte von 6 bis 256 verarbeiten. S/W-Farbmischung ist eine spezielle Methode zum Definieren der Grenzen zwischen Schwarz-, Weiß- und Grauskalierungen. Diese Methode kann nicht auf Bilder (z.B. gescannte Fotos) mit kontinuierlichen Farbverläufen angewendet werden. Die Eigenschaft »DriverVersion« gibt die Versionsnummer des Win32Druckertreibers an. Die Versionsnummern werden vom Treiberhersteller erstellt und verwaltet. Die Eigenschaft »Duplex« gibt an, ob auf eine oder beide Seiten gedruckt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß auf beide Seiten gedruckt wird. Die Eigenschaft »FormName« gibt den Namen des Papierformats für den Druckauftrag an. Diese Eigenschaft wird nur auf Windows NT/Windows 2000-Systemen verwendet. Beispiel: Legal Die Eigenschaft »HorizontalResolution« gibt die Druckerauflösung entlang der X-Achse (Breite) für den Druckauftrag an. Dieser Wert wird nur festgelegt, wenn die Eigenschaft »PrintQuality« dieser Klasse positiv ist und der Eigenschaft »XResolution« entspricht. Die Eigenschaft »ICMIntent« gibt den Wert einer der drei möglichen ICMMethoden an, die standardmäßig verwendet werden sollten. Diese Eigenschaft kann vordefinierte Werte von 1 bis 3 und treiberdefinierte Werte von 4 bis 256 verarbeiten. Nicht-ICM-Anwendungen können mit diesem Wert bestimmten, wie der Drucker Farbdruckaufträge behandelt.
B.157 Win32_PrinterConfiguration ICMMethod
LogPixels
MediaType
Name Orientation PaperLength PaperSize PaperWidth PelsHeight PelsWidth PrintQuality
Scale
SettingID SpecificationVersion TTOption
VerticalResolution
XResolution
YResolution
659
Die Eigenschaft »ICMMethod« gibt die Verwendung von ICM an. Für NichtICM-Anwendungen gibt diese Eigenschaft an, ob ICM aktiviert oder deaktiviert ist. Die Eigenschaft »LogPixels« enthält die Pixelanzahl pro logischem Zoll. Dieses Mitglied ist nur mit Geräten gültig, die mit Pixeln arbeiten (das schließt z.B. Drucker aus). Die Eigenschaft »MediaType« gibt den Medientyp zum Drucken an. Die Eigenschaft kann einen vordefinierten oder einen vom Treiber definierten Wert enthalten, der größer oder gleich 256 ist (Windows 95 oder später; Windows 2000). Die Eigenschaft »Name« gibt den Namen des Druckers an, dem diese Konfiguration zugeordnet ist. Die Eigenschaft »Orientation« gibt die Papierausrichtung beim Drucken an. Die Eigenschaft »PaperLength« gibt die Papierlänge an. Beispiel: 2794 Die Eigenschaft »PaperSize« gibt die Papiergröße an. Beispiel: A4 oder Letter Die Eigenschaft »PaperWidth« gibt die Papierbreite an. Beispiel: 2159 Die Eigenschaft »PelsHeight« gibt die Höhe der anzeigbaren Oberfläche an. Diese Eigenschaft wird nicht für Drucker verwendet. Die Eigenschaft »PelsWidth« gibt die Breite der anzeigbaren Oberfläche an. Diese Eigenschaft wird nicht für Drucker verwendet. Die Eigenschaft »PrintQuality« gibt eine von vier Qualitätsstufen für den Druckauftrag an. Wenn ein positiver Wert angegeben wird, wird die Qualität in Dots pro Zoll gemessen. Beispiel: Entwurf Die Eigenschaft »Scale« gibt den Skalierungsfaktor für die gedruckte Ausgabe an. Z.B. reduziert der Skalierungsfaktor 75 den Ausdruck auf 3/4 seiner Originalgröße. Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »SpecificationVersion« gibt die Versionsnummer der Initialisierungsdaten für das dem Win32-Drucker zugeordnete Gerät an. Die Eigenschaft »TTOption« gibt an, wie TrueType-Schriftarten gedruckt werden. Mögliche Werte: Bitmap – Druckt TrueType-Schriftarten als Grafik (Standard für Matrixdrucker). Download – Überträgt TrueType-Schriftarten als ladbare Schriftarten (Standard für PCL-Drucker). Substitute – Ersetzt Geräteschriftarten durch TrueType-Schriftarten (Standard für PostScript-Drucker). Die Eigenschaft »VerticalResolution« gibt die Druckerauflösung entlang der Y-Achse (Höhe) für den Druckauftrag an. Dieser Wert wird nur festgelegt, wenn die Eigenschaft »PrintQuality« dieser Klasse positiv ist und der Eigenschaft »YResolution« entspricht. Die Eigenschaft »XResolution« wurde durch die Eigenschaft »HorizontalResolution« ersetzt. Weitere Informationen finden Sie in der Beschreibung zu dieser Eigenschaft. Die Eigenschaft »YResolution« wurde durch die Eigenschaft »VerticalResolution« ersetzt. Weitere Informationen finden Sie in der Beschreibung zu dieser Eigenschaft.
660
Anhang B: WMI Klassenreferenz
B.158 Win32_PrinterController AccessState
Antecedent Dependent NegotiatedDataWidth
NegotiatedSpeed
NumberOfHardResets NumberOfSoftResets
Die Eigenschaft »AccessState« gibt an, ob der Controller das Gerät steuert oder darauf zugreift (Wert=1) oder nicht (Wert=2). Es kann auch der Wert »Unbekannt« (0) definiert werden. Diese Informationen sind erforderlich, wenn ein logisches Gerät von mehreren Controllern gesteuert werden kann. Die Referenz »CIM_Controller« stellt das dem Drucker zugeordnete lokale Gerät dar. Die Referenz »Win32_Printer« stellt den Win32-Drucker dar. Wenn mehrere Bus- und/oder Verbindungsdatenbreiten möglich sind, definiert die Eigenschaft »NegotiatedDataWidth« die verwendete Datenbreite in Bits. Wenn die Datenbreite nicht ausgehandelt wurde oder diese Informationen nicht verfügbar sind, sollte der Wert der Eigenschaft 0 sein. Wenn mehrere Bus- und/oder Verbindungsgeschwindigkeiten möglich sind, definiert die Eigenschaft »NegotiatedSpeed« die verwendete Geschwindigkeit in Bits pro Sekunde. Wenn die Verbindungs- oder Busgeschwindigkeit nicht ausgehandelt wurde oder diese Informationen nicht verfügbar sind, sollte der Wert der Eigenschaft 0 sein. Anzahl der vom Controller ausgelösten Kaltstarts. Anzahl der vom Controller ausgelösten Warmstarts.
B.159 Win32_PrinterDriverDll Antecedent Dependent
Die Referenz »CIM_DataFile« stellt die Treiberdatei für den Win32-Drucker dar. Die Referenz »Win32_Printer« stellt den Win32-Drucker dar.
B.160 Win32_PrinterSetting Element Setting
Die Referenz »Element« stellt den Drucker dar, der mit dem Mitglied »Settings« konfiguriert werden kann. Die Referenz »Setting« stellt die Druckerkonfiguration dar, die für den Drucker übernommen werden kann.
B.161 Win32_PrinterShare Antecedent Dependent
Die Referenz »Win32_Printer« gibt den Win32-Drucker an, der den lokalen Drukker in dieser Zuordnung darstellt. Die Referenz »Win32_Share« gibt die Win32-Freigabe an, die die Netzwerkfreigabe des Druckers in dieser Zuordnung darstellt.
B.162 Win32_PrivilegesStatus
661
B.162 Win32_PrivilegesStatus Description Operation ParameterInfo PrivilegesNotHeld
PrivilegesRequired
ProviderName
StatusCode
Die Eigenschaft »PrivilegesNotHeld« gibt an, daß die zum Beenden eines Vorgangs erforderlichen Zugriffsrechte fehlen. Die Zugriffsrechtetypen sind unter den Windows NT-Berechtigungen aufgeführt. Beispiel: SE_SHUTDOWN_NAME Die Eigenschaft »PrivilegesRequired« gibt alle zum Ausführen eines Vorgangs erforderlichen Berechtigungen an, einschließlich Werte der Eigenschaft »PrivilegesNotHeld«. Beispiel: SE_SHUTDOWN_NAME Die Eigenschaft »PrivilegesRequired« gibt alle zum Ausführen eines Vorgangs erforderlichen Berechtigungen an, einschließlich Werte der Eigenschaft »PrivilegesNotHeld«. Beispiel: SE_SHUTDOWN_NAME Die Eigenschaft »PrivilegesRequired« gibt alle zum Ausführen eines Vorgangs erforderlichen Berechtigungen an, einschließlich Werte der Eigenschaft »PrivilegesNotHeld«. Beispiel: SE_SHUTDOWN_NAME
B.163 Win32_Process result as Integer = Create (CommandLine as String, CurrentDirectory as String, ProcessStartupInformation as CIM-Object) CommandLine=Der Parameter »CommandLine« gibt die auszuführende Befehlszeile an. Das System fügt ein Null-Zeichen in die Befehlszeile hinzu, und kürzt die Zeichenfolge, falls erforderlich, um anzuzeigen, welche Datei verwendet wurde. CurrentDirectory=Der Parameter »CurrentDirectory« gibt das aktuelle Laufwerk und das Verzeichnis für den untergeordneten Prozeß an. Die Zeichenfolge erfordert, daß das aktuelle Verzeichnis zu einem bekannten Pfad gehört. Der Benutzer kann einen absoluten oder einen zum aktuellen Arbeitsverzeichnis relativen Pfad angeben. Wenn dieser Parameter Null ist, hat der neue Prozeß den gleichen Pfad wie der aufrufende Prozeß. Diese Op-
Die Methode »Create« erstellt einen neuen Prozeß. Der Wert 0 wird zurückgegeben, wenn der Prozeß erstellt wurde. Alle anderen Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Process and Thread Functions|CreateProcess
662
Anhang B: WMI Klassenreferenz
tion wird hauptsächlich für Shells verwendet, die eine Anwendung starten und das Startlaufwerk und Arbeitsverzeichnis der Anwendung angeben. ProcessStartupInformation=Der Parameter »ProcessStartupInformation« gibt die Startkonfiguration für einen Win32-Prozeß an; einschließlich der Informationen über das Anzeigen des Fensters, Merkmale der Konsolenanwendung und der Fehlerbehandlung. result as Integer = Terminate (Reason as Integer) Reason=Der Parameter »Reason« gibt den Beendigungscode für den Prozeß und alle Threads an, die als Ergebnis dieses Aufrufs abgebrochen wurden. result as Integer = GetOwner
result as Integer = GetOwnerSid
Caption CreationClassName CreationDate CSCreationClassName CSName Description ExecutablePath ExecutionState Handle
Die Methode »Terminate« löscht einen Prozeß und seine Threads. Der Wert 0 wird zurückgegeben, wenn der Prozeß gelöscht wurde. Alle anderen Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Process and Thread Functions|TerminateProcess Die Methode »GetOwner« ermittelt den Benutzer- und Domänennamen unter dem der Prozeß ausgeführt wird. Der Wert 0 wird zurückgegeben, wenn der Name ermittelt wurde. Andere Werte zeigen einen Fehler an Befehl wird von folgender API-Funktion bereitgestellt: WMI Die Methode »GetOwnerSid« ermittelt die Sicherheitskennung (SID) des Prozessbesitzers. Befehl wird von folgender API-Funktion bereitgestellt: WMI Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Zeitpunkt, zu dem der Prozeß gestartet wurde. Zeitpunkt, zu dem der Prozeß gestartet wurde. Zeitpunkt, zu dem der Prozeß gestartet wurde. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »ExecutablePath« gibt den Pfad zur ausführbaren Datei des Prozesses an. Beispiel: C:\WINDOWS\EXPLORER.EXE Gibt den aktuellen Zustand des Prozesses an. Mögliche Werte sind: Bereit (2), wird ausgeführt (3) und blockiert (4). Eine Zeichenfolge zum Identifizieren des Prozesses. Eine Prozesskennung ist ein Prozesshandle.
B.163 Win32_Process HandleCount
InstallDate
KernelModeTime MaximumWorkingSetSize
MinimumWorkingSetSize
Name
OSCreationClassName
OSName
OtherOperationCount OtherTransferCount PageFaults PageFileUsage
663
Die Eigenschaft »HandleCount« gibt die Gesamtanzahl der von diesem Prozeß geöffneten Handles an. Diese Anzahl ist die Summe der Handles, die von allen Threads in diesem Prozeß geöffnet sind. Ein Handle wird verwendet, um die Systemressourcen zu überprüfen oder zu ändern. Jedes Handle hat einen Eintrag in einer internen Tabelle. Diese Einträge enthalten die Adressen der Ressourcen und identifizieren den Ressourcentyp. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Zeit im Kernelmodus in Millisekunden. Wenn diese Informationen nicht verfügbar sind, verwenden Sie den Wert 0. Die Eigenschaft »MaximumWorkingSetSize« gibt die maximale Arbeitsseitengröße des Prozesses an. Die Arbeitsseite eines Prozesses sind die aktuellen Speicherseiten für den Prozeß im physikalischen RAM. Diese Seiten sind resident und für eine Anwendung verfügbar, ohne einen Seitenfehler auszulösen. Beispiel: 1413120. Die Eigenschaft »MinimumWorkingSetSize« gibt die minimale Arbeitsseitengröße des Prozesses an. Die Arbeitsseite eines Prozesses sind die aktuellen Speicherseiten für den Prozeß im physikalischen RAM. Diese Seiten sind resident und für eine Anwendung verfügbar, ohne einen Seitenfehler auszulösen. Beispiel: 20480. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »OtherOperationCount« gibt die Anzahl der ausgeführten E/A-Vorgänge an (keine Lese- oder Schreibvorgänge). Die Eigenschaft »OtherTransferCount« gibt die Datenmenge an, die übertragen wurde (keine Lese- oder Schreibvorgänge). Die Eigenschaft »PageFaults« gibt die Anzahl der vom Prozeß generierten Seitenfehler an. Beispiel: 10 Die Eigenschaft »PageFileUsage« gibt den Auslagerungsdateibereich an, der vom Prozeß verwendet wird. Beispiel: 102435
664
Anhang B: WMI Klassenreferenz
ParentProcessId
PeakPageFileUsage
PeakVirtualSize
PeakWorkingSetSize Priority
PrivatePageCount ProcessId
QuotaNonPagedPoolUsage QuotaPagedPoolUsage QuotaPeakNonPagedPoolUsage
QuotaPeakPagedPoolUsage ReadOperationCount ReadTransferCount SessionId
Die Eigenschaft »ParentProcessId« gibt die eindeutige Kennung des Prozesses an, der diesen Prozeß erstellt hat. Prozesskennungen werden erneut verwendet und sind nur für die Lebensdauer eines Prozesses gültig. Möglicherweise verweist diese Eigenschaft nicht auf einen ausgeführten Prozeß, da der Prozeß abgebrochen wurde. Es ist ebenfalls möglich, daß diese Eigenschaft auf einen Prozeß verweist, der diese Prozesskennung erneut verwendet. Mit der Eigenschaft »CreationDate« kann bestimmt werden, ob der angegebene übergeordnete Prozeß nach diesem Prozeß erstellt wurde. Die Eigenschaft »PeakPageFileUsage« gibt den maximalen Auslagerungsdateibereich an, der während des Prozesses verwendet wird. Beispiel: 102435 Die Eigenschaft »PeakVirtualSize« gibt den maximalen virtuellen Adreßbereich an, den der Prozeß verwendet hat. Die Verwendung des virtuellen Adreßbereichs erfordert nicht die Verwendung von Datenträgern oder Hauptspeicherseiten. Der virtuelle Bereich ist begrenzt. Wenn ein zu großer Bereich verwendet wird, können möglicherweise keine Bibliotheken mehr geladen werden. Die Eigenschaft »PeakWorkingSetSize« gibt die Größe der PeakArbeitsseiten des Prozesses an. Beispiel: 1413120 Die Eigenschaft »Priority« gibt die Planungspriorität des Prozesses im Betriebssystem an. Umso größer der Wert ist, desto höhere Priorität erhält der Prozeß. Prioritätswerte können im Bereich zwischen 0 (niedrigste Priorität) und 31 (höchste Priorität) liegen. Beispiel: 7. Die Eigenschaft »PrivatePageCount« gibt die aktuelle Anzahl der zugeordneten Seiten an, auf die nur dieser Prozeß zugreifen kann. Die Eigenschaft »ProcessId« enthält die globale Prozesskennung zum Identifizieren eines Prozesses. Der Wert ist ab dem Erstellen bis zum Abbrechen des Prozesses gültig. Die Eigenschaft »QuotaNonPagedPoolUsage« gibt die Quotenanzahl des nicht ausgelagerten Pools für den Prozeß an. Beispiel: 15 Die Eigenschaft »QuotaPagedPoolUsage« gibt die Quotenanzahl des ausgelagerten Pools für den Prozeß an. Beispiel: 22 Die Eigenschaft »QuotaPeakNonPagedPoolUsage« gibt die höchste Quotenanzahl des nicht ausgelagerten Pools für den Prozeß an. Beispiel: 31 Die Eigenschaft »QuotaPeakPagedPoolUsage« gibt die höchste Quotenanzahl des ausgelagerten Pools für den Prozeß an. Beispiel: 31 Die Eigenschaft »ReadOperationCount« gibt die Anzahl der ausgeführten Lesevorgänge an. Die Eigenschaft »ReadTransferCount« gibt die Menge der gelesenen Daten an. Die Eigenschaft »SessionId« gibt die eindeutige Kennung an, die vom Betriebssystem beim Erstellen der Sitzung generiert wird.
B.163 Win32_Process Status
TerminationDate ThreadCount
UserModeTime VirtualSize
WindowsVersion WorkingSetSize
WriteOperationCount WriteTransferCount
665
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Zeitpunkt, zu dem der Prozeß angehalten oder abgebrochen wurde. Die Eigenschaft »ThreadCount« gibt die Anzahl der im Prozeß aktiven Threads an. Eine Anweisung ist die Basiseinheit der Ausführung in einem Prozessor. Ein Thread ist das Objekt, das die Anweisungen ausführt. Jeder ausgeführte Prozeß besitzt mindestens einen Thread. Nur Windows NT. Zeit im Benutzermodus in Millisekunden. Wenn diese Informationen nicht verfügbar sind, verwenden Sie den Wert 0. Die Eigenschaft »VirtualSize« gibt die aktuelle Größe des vom Prozeß verwendeten virtuellen Adressbereich in Bytes an. Die Verwendung des virtuellen Adressbereichs erfordert nicht die Verwendung von Datenträgern oder Hauptspeicherseiten. Der virtuelle Bereich ist begrenzt. Wenn ein zu großer Bereich verwendet wird, können möglicherweise keine Bibliotheken mehr geladen werden. Die Eigenschaft »WindowsVersion« gibt die Windows-Version an, in der der Prozeß ausgeführt wird. Beispiel: 4.0 Der zum effizienten Ausführen eines Prozesses erforderliche Speicher in Bytes für ein Betriebssystem mit seitenbasierter Speicherverwaltung. Wenn nicht genügend Speicher verfügbar ist, tritt ein Fehler auf. Geben Sie NULL oder 0 ein, wenn der Wert unbekannt ist. Die Eigenschaft »WriteOperationCount« gibt die Anzahl der ausgeführten Schreibvorgänge an. Die Eigenschaft »WriteTransferCount« gibt die Menge der geschriebenen Daten an.
666
Anhang B: WMI Klassenreferenz
B.164 Win32_ProcessStartup CreateFlags
EnvironmentVariables
Die Eigenschaft »CreateFlags« gibt zusätzliche Werte an, die die Prioritätenklasse und das Erstellen des Prozesses steuern. Folgende Erstellungswerte können, mit einigen Ausnahmen, in beliebiger Kombination angegeben werden: Create_Default_Error_Mode – Neu erstellte Prozesse erhalten den standardmäßigen Systemfehlermodus des aufrufenden Prozessen, anstatt den Fehlermodus des übergeordneten Prozesses zu erben. Dieses Flag ist nützlich für Shellprogramme mit mehreren Threads, die mit deaktivierten schwerwiegenden Fehlers ausgeführt werden. Create_New_Console – Der neue Prozeß verfügt über eine neue Konsole, anstatt die Konsole des übergeordneten Prozesses zu erben. Dieses Flag kann nicht mit dem Detached_Process-Flag verwendet werden. Create_New_Process_Group – Der neue Prozeß ist der Stammprozeß einer neuen Prozessgruppe. Die Prozessgruppe enthält alle Prozesse, die abhängig vom Stammprozeß sind. Die Prozesskennung der neuen Prozessgruppe ist mit der Prozesskennung identisch, die in der Eigenschaft »ProcessID« der Klasse »Win32_Process« zurückgegeben wird. Prozessgruppen werden von der Funktion »GenerateConsoleCtrlEvent« verwendet, um ein STRG+C- oder STRG+UNTBR-Signal an eine Konsolenprozessgruppe zu senden. Create_Suspended – Der primäre Thread des neuen Prozesses wird angehalten und erst ausgeführt, wenn die Funktion »ResumeThread« aufgerufen wird. Create_Unicode_Environment – Die in der Eigenschaft »EnvironmentVariables« aufgelisteten Umgebungseinstellungen verwenden Unicode-Zeichen. Wenn diese Eigenschaft leer ist, werden ANSI-Zeichen verwendet. Debug_Process – Wenn dieses Flag gesetzt ist, wird der aufrufende Prozeß als Debugger behandelt und der neue Prozeß wird debugged. Das System benachrichtigt den Debugger von allen Debugereignissen. Auf Windows 95- und Windows 98-Systemen ist dieses Flag ungültig, wenn der neue Prozeß eine 16-Bit-Anwendung ist. Debug_Only_This_Process – Wenn dieses Flag nicht gesetzt ist und der aufrufende Prozeß debugged wird, wird ein anderer Prozeß vom Prozeß des aufrufenden Debuggers debugged. Detached_Process – Für Konsolenprozesse hat der neue Prozeß keinen Zugriff auf die Konsole des übergeordneten Prozesse. Dieses Flag kann nicht mit dem Flag »Create_New_Console« verwendet werden. Die Eigenschaft »EnvironmentVariables« enthält eine Liste der Einstellungen für die Computerkonfiguration. Umgebungsvariablen geben Suchpfade für Dateien, temporäre Verzeichnisse, programmspezifische Optionen und ähnliche Informationen an. Das System speichert einen Umgebungseinstellungsblock für jeden Benutzer und einen für den Computer. Der Systemumgebungsblock enthält Umgebungsvariablen für alle Benutzer dieses Computers. Ein Benutzerumgebungsblock enthält die Umgebungsvariablen, die das System für diesen Benutzer speichert einschließlich der Systemumgebungsvariablen. Standardmäßig erhält jeder Prozeß eine Kopie des Umgebungsblocks für den übergeordneten Prozeß. Gewöhnlich ist dies der Umgebungsblock für den angemeldeten Benutzer. Ein Prozeß kann unterschiedliche Umgebungsblöcke für die untergeordneten Prozesse angeben.
B.164 Win32_ProcessStartup ErrorMode
FillAttribute
PriorityClass
667
Die Eigenschaft »ErrorMode« steuert, wie das Betriebssystem schwerwiegende Fehler verarbeitet. Sie können angeben, ob diese Fehler vom Betriebssystem oder von der Anwendung verarbeitet werden. Auf einigen Nicht-x86-Prozessoren verursachen falsch ausgerichtete Speicherreferenzen einen Ausnahmefehler. Das Flag No_Alignment_Fault_Except steuert, ob das System die Ausrichtungsfehler automatisch behebt oder diese für eine Anwendung erkennbar macht. Auf einer MIPS-Plattform muß eine Anwendung »SetErrorMode« mit dem Flag No_Alignment_Fault_Except explizit aufrufen, damit das Betriebssystem Ausrichtungsfehler automatisch behebt. Die Standardeinstellung ist, daß Ausrichtungsfehler für eine Anwendung erkennbar sind. Da Ausrichtungsfehler auf einer x86-Plattform für eine Anwendung nicht erkennbar sind, werden Ausrichtungsfehler auch nicht heraufgesetzt, wenn das Flag No_Alignment_Fault_Except nicht gesetzt ist. Standardmäßig werden alle Flags von »ErrorMode« auf 0 gesetzt. Definierte Werte: Fail_Critical_Errors – Das Betriebssystem zeigt beim Auftreten kritischer Fehler keine Meldung an. Der Fehler wird an den aufrufenden Prozeß gesendet. No_Alignment_Fault_ Except – (nur RISC) Speicherausrichtungsfehler werden automatisch vom Betriebssystem behoben und sind für die Anwendung nicht erkennbar. Dieses Flag ist für x86-Prozessoren ungültig. No_GP_Fault_Error_Box – Das Betriebssystem zeigt beim Auftreten einer allgemeinen Schutzverletzung keine Meldung an. Dieses Flag sollte nur beim Debuggen von Anwendungen gesetzt werden, die allgemeine Schutzverletzungen über eine Ausnahmeaufstellung verarbeiten. No_Open_File_Error_Box – Das Betriebssystem zeigt keine Meldung an, wenn eine Datei nicht gefunden werden kann. Der Fehler wird an den aufrufenden Prozeß zurückgegeben. Dieses Flag wird derzeit ignoriert. Die Eigenschaft »FillAttribute« gibt den Anfangstext und die Hintergrundfarben an, wenn ein neues Fenster in einer Konsolenanwendung erstellt wird. In GUI-Anwendungen werden diese Werte ignoriert. Die Eigenschaft »PriorityClass« steuert die Prioritätsklasse des neuen Prozesses, um die Planungsprioritäten der Prozessthreads zu bestimmen. Wenn der Wert dieser Eigenschaft Null ist, wird der Standard »Normal« verwendet, außer die Prioritätsklasse des Erstellungsprozesses ist »Leerlauf« oder »Below_Normal«. In diesen Fällen, erhält der untergeordnete Prozeß die Standardprioritätsklasse des aufrufenden Prozesses. Folgende Werte können angegeben werden: Hoch – Gibt einen Prozeß an, der zeitkritische Tasks ausführt, die umgehend ausgeführt werden müssen. Die Prozessthreads mit hoher Priorität verdrängen die Threads mit normaler oder Leerlaufpriorität. Die Windows-Taskliste muß z.B. auf einen Benutzeraufruf schnell reagieren, unabhängig von der Auslastung des Betriebssystems. CPU-Programme mit hohen Prioritätsklassen können beinahe alle verfügbaren Zyklen verwenden. Threads auf dieser Ebene werden nur von Echtzeitprioritäten verdrängt. Leerlauf – Gibt einen Prozeß an dessen Threads nur ausgeführt werden, wenn sich das System im Leerlauf befindet. Diese Threads werden von Prozessthreads mit einer höheren Prioritätsklasse verdrängt, z.B. einem Bildschirmschoner. Die Leerlaufprioritätsklasse wird von untergeordneten Prozessen geerbt. Normal – Gibt einen normalen Prozeß ohne spezielle Planungserfordernisse an.
668
Anhang B: WMI Klassenreferenz
ShowWindow Title
WinstationDesktop
X
XCountChars
XSize
Echtzeit – Gibt einen Prozeß mit der höchstmöglichen Priorität an. Die Prozessthreads einer Echtzeitprioritätsklasse verdrängen alle anderen Prozessthreads, einschließlich Betriebssystemprozesse, die wichtige Tasks ausführen, und Threads mit hoher Priorität. Ein Echtzeitprozess, der für länger als ein sehr kurzes Intervall ausgeführt wird, kann verursachen, daß der Datenträgercache nicht gelöscht wird oder die Maus nicht mehr reagiert. Above_Normal – (Windows 2000 und höher) Gibt einen Prozeß an, dessen Priorität höher als normal, aber geringer als hoch ist. Below_Normal – (Windows 2000 und höher): Gibt einen Prozeß an, dessen Priorität höher als Leerlauf, aber geringer als normal ist. Die Eigenschaft »ShowWindow« gibt an, wie das Fenster angezeigt wird. Die Eigenschaft »Title« enthält die Zeichenfolge, die in der Titelleiste eines neuen Konsolenfensters angezeigt wird. NULL gibt an, daß statt dessen der Name der ausführbaren Datei als Fenstertitel verwendet wird. Diese Eigenschaft muß für GUI- oder Konsolenprozesse, die kein neues Konsolenfenster erstellen, auf NULL gesetzt sein. Die Eigenschaft »WinstationDesktop« gibt nur den Namen des Desktops oder des Desktops und der Arbeitsstation für den Prozeß an. Ein umgekehrter Schrägstrich zeigt an, daß die Zeichenfolge die Namen des Desktops und der Arbeitsstation enthält. Wenn »WinstationDesktop« NULL ist, erbt der neue Prozeß den Desktop und die Arbeitsstation des übergeordneten Prozesses. Wenn »WinstationDesktop« eine leere Zeichenfolge ist, bestimmt das System, ob ein neuer Desktop und eine Arbeitsstation erstellt werden müssen. Eine Arbeitsstation ist ein sicheres Objekt, das ein Clipboard enthält. Die interaktive Arbeitsstation, die der Anmeldesitzung des Benutzers zugeordnet ist, enthält ebenfalls die Tastatur, die Maus und den Bildschirm. Ein Desktop ist ein sicheres Objekt in einer Arbeitsstation und verfügt über eine logische Oberfläche mit Fenstern und Menüs. Eine Arbeitsstation kann mehrere Desktops besitzen. Nur die Desktops der interaktiven Arbeitsstation sind sichtbar und können die Benutzereingabe empfangen. Nur Windows NT. Die Eigenschaft »X« gibt den X-Offset der oberen linken Fensterecke in Pixel an, wenn ein neues Fenster erstellt wird. Die angegebene Position wird bei GUI-Prozessen verwendet, wenn der neue Prozeß das erste Mal »CreateWindow« aufruft, um ein überlappendes Fenster zu erstellen und der X-Paramter CW_USEDEFAULT ist. X und Y können nicht unabhängig voneinander angegeben werden. Die Eigenschaft »XCountChars« gibt die Bildschirmpufferbreite in Zeichenspalten an. Diese Werte werden in GUI-Prozessen ignoriert. »XCountChars« und »YCountChars« können nicht unabhängig voneinander angegeben werden. Die Eigenschaft »XSize« gibt die Breite des Fensters in Pixel an, wenn ein neues Fenster erstellt wird. Dieser Wert wird nur bei GUI-Prozessen verwendet, wenn der neue Prozeß das erste Mal »CreateWindow« aufruft, um ein überlappendes Fenster zu erstellen und der nWidth-Parameter CW_USEDEFAULT ist. XSize und YSize können nicht unabhängig voneinander angegeben werden.
B.165 Win32_Processor Y
YCountChars
YSize
669
Die Eigenschaft »Y« gibt den Y-Offset der oberen linken Fensterecke in Pixel an, wenn ein neues Fenster erstellt wird. Die angegebene Position wird bei GUI-Prozessen verwendet, wenn der neue Prozeß das erste Mal »CreateWindow« aufruft, um ein überlappendes Fenster zu erstellen und der Y-Paramter CW_USEDEFAULT ist. X und Y können nicht unabhängig voneinander angegeben werden. Die Eigenschaft »YCountChars« gibt die Bildschirmpufferhöhe in Zeichenzeilen an. Diese Werte werden in GUI-Prozessen ignoriert. »XCountChars« und »YCountChars« können nicht unabhängig voneinander angegeben werden. Die Eigenschaft »YSize« gibt die Höhe des Fensters in Pixel an, wenn ein neues Fenster erstellt wird. Dieser Wert wird nur bei GUI-Prozessen verwendet, wenn der neue Prozeß das erste Mal »CreateWindow« aufruft, um ein überlappendes Fenster zu erstellen und der nWidth-Parameter CW_USEDEFAULT ist. XSize und YSize können nicht unabhängig voneinander angegeben werden.
B.165 Win32_Processor result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. AddressWidth Prozessoradressenbreite in Bits. Architecture Die Eigenschaft »Architecture« gibt die von dieser Plattform verwendete Prozessorarchitektur an.
670
Anhang B: WMI Klassenreferenz
Availability
Caption ConfigManagerErrorCode ConfigManagerUserConfig CpuStatus
CreationClassName
CurrentClockSpeed CurrentVoltage
DataWidth Description DeviceID ErrorCleared ErrorDescription
ExtClock Family InstallDate
Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »CpuStatus« gibt den aktuellen Status des Prozessors an. Änderungen ergeben sich aus der Verwendung, nicht aus dem physikalischen Zustand des Prozessors. Die Eigenschaft »CpuStatus« gibt den aktuellen Status des Prozessors an. Änderungen ergeben sich aus der Verwendung, nicht aus dem physikalischen Zustand des Prozessors. Die aktuelle Prozessorgeschwindigkeit (in MHz). »CurrentVoltage« gibt die Prozessorspannung an. Die Bits 0-6 enthalten die aktuelle Prozessorspannung mal 10. Dieser Wert wird nur festgelegt, wenn SMBIOS einen Spannungswert verwendet. Die Werte werden in »VoltageCaps« angezeigt. Beispiel: Der Feldwert für eine Prozessorspannung von 1,8 Volt ist 92h = 80h + (1.8 x 10) = 80h + 18 = 80h + 12h. Prozessordatenbreite in Bits Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den Prozessor von anderen Geräten im System unterscheidet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »ExtClock« gibt die externe Uhrfrequenz an. Wenn die Frequenz unbekannt ist, ist diese Eigenschaft Null. Der Prozessorfamilientyp. Werte enthalten z.B. »Pentium MMX« (14) und »68040« (96). Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein.
B.165 Win32_Processor L2CacheSize
L2CacheSpeed
LastErrorCode Level LoadPercentage Manufacturer MaxClockSpeed Name
OtherFamilyDescription
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
671
Die Eigenschaft »L2CacheSize« gibt die Größe des L2-Cache für den Prozessor an. Ein L2-Cache ist ein externer Speicherbereich mit schnelleren Zugriffszeiten als der Haupt-RAM-Speicher. Die Eigenschaft »L2CacheSpeed« gibt die Taktfrequenz des L2-Cache für den Prozessor an. Ein L2-Cache ist ein externer Speicherbereich mit schnelleren Zugriffszeiten als der Haupt-RAM-Speicher. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Level« definiert den Prozessortyp. Der Wert ist abhängig von der Prozessorarchitektur. Die Eigenschaft »LoadPercentage« gibt die Ladekapazität des Prozessors ermittelt über die letzte Sekunde an. Die Eigenschaft »Manufacturer« gibt den Hersteller des Prozessors an. Beispiel: GenuineSilicon Die maximale Prozessorgeschwindigkeit (in MHz). Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Eine formfreie Zeichenfolge, die den Typ der Prozessorfamilie beschreibt. Wird verwendet, wenn die Eigenschaft »family« auf 1 (»Andere«) gesetzt ist. Der Wert sollte Null sein, wenn die Eigenschaft »family« einen anderen Wert aufweist. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind.
672
Anhang B: WMI Klassenreferenz
ProcessorId
ProcessorType Revision
Role SocketDesignation Status
StatusInfo
Stepping SystemCreationClassName SystemName UniqueId UpgradeMethod
Die Eigenschaft »ProcessorId« enthält prozessorspezifische Informationen, die die Prozessorfunktionen beschreiben. Für x86-CPUs ist das Feldformat abhängig von der Unterstützung der CPUID-Anweisung. Wenn die Anweisung unterstützt wird, enthält die Eigenschaft »ProcessorId« zwei DWORD-formatierte Werte. Der erste Wert (Offset 08h-0Bh) ist der EAX-Wert, der von einer CPUID-Anweisung mit der EAX-Eingabe 1 zurückgegeben wird. Der zweite Wert (Offset 0Ch-0Fh) ist der EDX-Wert, der von dieser Anweisung zurückgegeben wird. Nur die ersten zwei Bytes dieser Eigenschaft sind wichtig (alle anderen sind 0) und enthalten (in WORD-Format) den Inhalt der DX-Register bei CPU-Neustart. Die Eigenschaft »ProcessorType« gibt die primäre Funktion des Prozessors an. Die Eigenschaft »Revision« gibt die architekturabhängige Revisionsebene des Systems an. Dieser Wert ist abhängig von der Prozessorarchitektur und enthält die gleichen Werte wie »Version« in numerischem Format. Eine formfreie Zeichenfolge, die die Funktion des Prozessors beschreibt, z.B. »Hauptprozessor« oder »Mathematischer Prozessor«. Die Eigenschaft »SocketDesignation« enthält den Chipsockeltyp, der auf der Platine verwendet wird. Beispiel: J202 Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Eine formfreie Zeichenfolge, die die Revisionsstufe des Prozessors in der Prozessorfamilie angibt. Eine formfreie Zeichenfolge, die die Revisionsstufe des Prozessors in der Prozessorfamilie angibt. Eine formfreie Zeichenfolge, die die Revisionsstufe des Prozessors in der Prozessorfamilie angibt. Eine globale eindeutige Kennung für den Prozessor. Diese Kennung ist nur innerhalb einer Prozessorfamilie eindeutig. Methode, mit der der Prozessor aktualisiert werden kann, wenn Updates unterstützt werden. Diese Eigenschaft besteht aus einer Aufzählung mit ganzen Zahlen.
B.166 Win32_Product Version
VoltageCaps
673
Die Eigenschaft »Version« gibt eine architekturabhänige Revisionsnummer für den Prozessor an. Hinweis: Dieses Mitglied wird nicht in Windows 95 verwendet. Beispiel: Modell 2, Stepping 12. Die Eigenschaft »VoltageCaps« gibt die möglichen Spannungen des Prozessors an. Die Bits 0-3 geben bestimmte Spannungen an, die der Prozessorsocket annehmen kann. Alle anderen Bits sollten Null sein. Der Socket ist konfigurierbar, wenn mehrere Bits festgelegt sind. Die Spannungsbereiche werden in »CurrentVoltage« angezeigt. Wenn die Eigenschaft NULL ist, sind die möglichen Spannungen unbekannt.
B.166 Win32_Product result as Integer = Install(AllUsers as Boolean, Options as String, PackageLocation as String) AllUsers=Gibt an, ob der Vorgang auf den aktuellen Benutzer (FALSE) oder alle Benutzer (TRUE) angewendet wird. Options=Die Befehlszeilenoptionen für die Installation sollten im Format Eigenschaft=Einstellung eingegeben werden. PackageLocation=Der Pfad zum Paket, das installiert wird. result as Integer = Admin(Options as String, PackageLocation as String, TargetLocation as String) Options=Die Befehlszeilenoptionen für das Update sollten im Format Eigenschaft=Einstellung eingegeben werden. PackageLocation=Der Pfad zum Paket, das verwaltet wird. TargetLocation=The location for the administrative image to be installed at. result as Integer = Advertise (AllUsers as Boolean, Options as String, PackageLocation as String) AllUsers=Gibt an, ob der Vorgang auf den aktuellen Benutzer (FALSE) oder alle Benutzer (TRUE) angewendet wird.
Diese Methode installiert ein zugeordnetes Win32-Produkt mit dem von »PackageLocation« angegebenen Installationspaket und allen Befehlszeilenoptionen.
Diese Methode führt eine administrative Installation eines zugeordneten Win32-Produkts mit dem von »PackageLocation« angegebenen Installationspaket und allen Befehlszeilenoptionen aus.
Diese Methode kündigt ein zugeordnetes Win32-Produkt mit dem von »PackageLocation« angegebenen Installationspaket und allen Befehlszeilenoptionen an.
674
Anhang B: WMI Klassenreferenz
Options=Die Befehlszeilenoptionen für die Ankündigung sollten im Format Eigenschaft=Einstellung eingegeben werden. PackageLocation=Der Pfad zum Paket, das angekündigt wird. result as Integer = Reinstall (ReinstallMode as Integer) ReinstallMode=Gibt den Neuinstallationsmodus an values = Array: 0=Datei fehlt 1=Ältere Dateiversion 2=Gleiche Dateiversion 3=Datei gleich 4=Datei überprüfen 5=Datei ersetzen 6=Benutzerdaten 7=Computerdaten 8=Verknüpfung 9=Paket result as Integer = Upgrade(Options as String, PackageLocation as String) Options=Die Befehlszeilenoptionen für das Update sollten im Format Eigenschaft=Einstellung eingegeben werden. PackageLocation=Der Pfad zum Paket, das das Update enthält. result as Integer = Configure (InstallLevel as Integer, InstallState as Integer) values = Array: 0=Standard 1=Minimal 2=Maximal valuemap = Array: 0=1 1=2 2=3 values = Array: 0=Standard 1=Lokal 2=Quelle
Diese Methode installiert die zugeordnete Instanz des Win32Produkts im angegebenen Neuinstallationsmodus erneut.
Diese Methode aktualisiert das zugeordnete Win32-Produkt mit dem von »PackageLocation« angegebenen Updatepaket und allen Befehlszeilenoptionen.
Diese Methode konfiguriert die zugeordnete Instanz des Win32Produkts.
B.167 Win32_ProductCheck result as Integer = Uninstall Caption Description IdentifyingNumber InstallDate InstallLocation InstallState Name PackageCache SKUNumber Vendor Version
Diese Methode deinstalliert die zugeordnete Instanz des Win32Produkts. Eine kurze Textbeschreibung (eine Zeile) des Produkts. Eine Textbeschreibung des Produkts. Produktidentifikation, z.B. eine serielle Softwarenummer oder die Nummer auf einem Hardwarechip. Produktidentifikation, z.B. eine serielle Softwarenummer oder die Nummer auf einem Hardwarechip. Produktidentifikation, z.B. eine serielle Softwarenummer oder die Nummer auf einem Hardwarechip. Produktidentifikation, z.B. eine serielle Softwarenummer oder die Nummer auf einem Hardwarechip. Hauptsächlich verwendeter Produktname. Hauptsächlich verwendeter Produktname. Produkt SKU-Informationen (Stock Keeping Unit). Der Name des Produktherstellers; entspricht der Herstellereigenschaft im Produktobjekt im DMTF Solution Exchange Standard. Produktversionsinformationen; entspricht der Versionseigenschaft im Produktobjekt im DMTF Solution Exchange Standard.
B.167 Win32_ProductCheck Check Product
B.168 Win32_ProductResource Product Resource
B.169 Win32_ProductSoftwareFeatures Component Product
675
Komponente. Das Produkt.
676
Anhang B: WMI Klassenreferenz
B.170 Win32_ProgIDSpecification result as Integer = Invoke
Caption CheckID CheckMode
Description Name Parent ProgID SoftwareElementID SoftwareElementState TargetOperatingSystem Version
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde. Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Eine Beschreibung der Objekte. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Kennung für die Softwarekomponente. Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.171 Win32_ProgramGroup Caption Description GroupName Name SettingID UserName
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »GroupName« gibt den Pfadnamen der Programmgruppe im Win32-Startmenü an. Beispiel: Zubehör\Systemprogramme. Die Eigenschaft »Name« gibt den Benutzernamen gefolgt von der Win32Programmgruppe an. Beispiel: Alle Benutzer:Zubehör\Systemprogramme Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »UserName« gibt die Benutzer an, die auf die Win32Programmgruppe zugreifen können. Beispiel: Alle Benutzer
B.172 Win32_ProgramGroupContents
677
B.172 Win32_ProgramGroupContents GroupComponent PartComponent
Die Referenz »GroupComponent« stellt die logische Win32-Programmgruppe dar, die die logische Programmgruppe für diese Zuordnung enthält. Die Referenz »PartComponent« stellt die Win32-Programmgruppe oder das Win32-Element dar, die bzw. das eine Startmenügruppe oder ein Element für diese Zuordnung enthält.
B.173 Win32_ProgramGroupOrItem Caption Description InstallDate Name Status
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.174 Win32_Property Caption Description ProductCode Property SettingID Value
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«.
B.175 Win32_ProtocolBinding Antecedent Dependent
Die Referenz »Antecedent« stellt das Netzwerkprotokoll für den Systemtreiber und den Netzwerkadapter dar. Die Referenz »Dependent« stellt den Systemtreiber dar, der den Netzwerkadapter über das Netzwerkprotokoll dieser Klasse verwendet.
678
Anhang B: WMI Klassenreferenz
Device
Die Referenz »Device« stellt die Eigenschaften des Netzwerkadapters dar, der im Computersystem verwendet wird.
B.176 Win32_PublishComponentAction result as Integer = Invoke
ActionID AppData Caption ComponentID Description Direction
Name Qual SoftwareElementID SoftwareElementState TargetOperatingSystem Version
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
B.177 Win32_QuickFixEngineering Caption CSName Description FixComments
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »CSName« enthält den lokalen Namen des Computersystems. Der Wert für dieses Mitglied kommt aus der Klasse »CIM_ComputerSystem«. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »FixComments« enthält zusätzliche Kommentare bezüglich des Updates.
B.178 Win32_Refrigeration HotFixID InstallDate InstalledBy InstalledOn Name
ServicePackInEffect
Status
679
Die Eigenschaft »HotFixID« gibt die eindeutige ID an, die einem QFE zugeordnet ist. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InstalledBy« gibt an, wer das Update installiert hat. Wenn der Wert unbekannt ist, bleibt die Eigenschaft leer. Die Eigenschaft »InstalledOn« gibt das Datum und die Uhrzeit der Updateinstallation an. Wenn der Wert unbekannt ist, bleibt die Eigenschaft leer. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »ServicePackInEffect« gibt an, welches Service Pack beim Ausführen des Updates installiert war. Wenn kein Service Pack installiert war, ist der Wert dieser Eigenschaft SP0. Wenn die Version nicht bestimmt werden kann, ist der Wert dieser Eigenschaft Null. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.178 Win32_Refrigeration result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
680
Anhang B: WMI Klassenreferenz
result as Integer = Reset
ActiveCooling Availability
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID ErrorCleared ErrorDescription
InstallDate
LastErrorCode Name
PNPDeviceID
Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Der boolesche Wert »ActiveCooling« gibt an, daß die Kühlgerät aktive Kühlung (im Gegensatz zu passiver Kühlung) unterstützt. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das Kühlgerät angibt. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
B.178 Win32_Refrigeration PowerManagementCapabilities
PowerManagementSupported
Status
StatusInfo
SystemCreationClassName
SystemName
681
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
682
Anhang B: WMI Klassenreferenz
B.179 Win32_Registry Caption CurrentSize Description InstallDate MaximumSize
Name
ProposedSize
Status
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »CurrentSize« gibt die aktuelle physikalische Größe der Win32Registrierung an. Beispiel: 10. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »MaximumSize« gibt die maximale Größe der Win32-Registrierung an. Wenn das Mitglied »ProposedSize« einwandfrei verwendet werden kann, sollte »MaximumSize« den gleichen Wert enthalten. Die Eigenschaft »Name« gibt den Namen der Win32-Registrierung an. Die maximale Länge beträgt 256 Zeichen. Beispiel: Microsoft Windows NT Workstation|C:\WINNT40|\Device\Harddisk0\partition1 Die Eigenschaft »ProposedSize« gibt die vorgeschlagene Größe der Win32Registrierung an. Dies ist die einzige Registrierungseinstellung, die geändert werden kann. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.180 Win32_RegistryAction result as Integer = Invoke
ActionID Caption Description
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts.
B.180 Win32_RegistryAction Direction
EntryName
EntryValue
key
Name Registry
Root
SoftwareElementID SoftwareElementState TargetOperatingSystem Version
683
Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Der Name zum Identifizieren der Softwarekomponente. The registry value name. If the Value column is null, then the following strings in the Name column have special significance. + The key is to be created, if absent upon the installation of the component. – The key is to be deleted, if present, with all its values and subkeys upon the uninstallation of the component. * The key is to be created, if absent upon the installation of the component AND the key is to be deleted, if present, with all its values and subkeys upon the uninstallation of the component. The registry value name. If the Value column is null, then the following strings in the Name column have special significance. + The key is to be created, if absent upon the installation of the component. – The key is to be deleted, if present, with all its values and subkeys upon the uninstallation of the component. * The key is to be created, if absent upon the installation of the component AND the key is to be deleted, if present, with all its values and subkeys upon the uninstallation of the component. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
684
Anhang B: WMI Klassenreferenz
B.181 Win32_RemoveFileAction result as Integer = Invoke
ActionID Caption Description Direction
DirProperty
File FileKey FileName InstallMode Name SoftwareElementID SoftwareElementState TargetOperatingSystem Version
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Dateiname. Dateiname. Dateiname. Dateiname. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
B.182 Win32_RemoveIniAction result as Integer = Invoke
Action
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde.
B.183 Win32_ReserveCost ActionID Caption Description Direction
key
Name Section SoftwareElementID SoftwareElementState TargetOperatingSystem Value Version
685
Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
B.183 Win32_ReserveCost result as Integer = Invoke
Caption CheckID CheckMode
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde. Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden.
686
Anhang B: WMI Klassenreferenz
Description Name ReserveFolder ReserveKey ReserveLocal ReserveSource SoftwareElementID SoftwareElementState TargetOperatingSystem Version
Eine Beschreibung der Objekte. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Kennung für die Softwarekomponente. Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.184 Win32_SCSIController result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an.
B.184 Win32_SCSIController ConfigManagerErrorCode ConfigManagerUserConfig ControllerTimeouts CreationClassName Description DeviceID DeviceMap DriverName ErrorCleared ErrorDescription
HardwareVersion Index InstallDate
LastErrorCode Manufacturer MaxDataWidth MaxNumberControlled MaxTransferRate Name
PNPDeviceID
687
Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den SCSIController von anderen Geräten im System unterscheidet. Die Eigenschaft »DeviceMap« gibt die Reihenfolge an, in der Geräte im SCSI-Controller aufgelistet sind. Die Eigenschaft »DriverName« gibt den Treiberdateinamen des SCSIControllers an. Beispiel: Adaptec Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »HardwareVersion« gibt die Versionsnummer des SCSIControllers an. Beispiel: 1.25 Die Eigenschaft »Index« gibt die Indexnummer des SCSI-Controllers in der Systemregistrierung an. Beispiel: 0. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des SCSI-Controllers an. Beispiel: Adaptec Die Eigenschaft »Manufacturer« gibt den Hersteller des SCSI-Controllers an. Beispiel: Adaptec Maximale Anzahl der direkt adressierbaren Einheiten, die vom Controller unterstützt werden. Wenn der Wert unbekannt ist, geben Sie 0 ein. Maximale Anzahl der direkt adressierbaren Einheiten, die vom Controller unterstützt werden. Wenn der Wert unbekannt ist, geben Sie 0 ein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
688
Anhang B: WMI Klassenreferenz
PowerManagementCapabilities
PowerManagementSupported
ProtectionManagement ProtocolSupported Status
StatusInfo
SystemCreationClassName
SystemName
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Eine Aufzählung, die angibt, ob der SCSI-Controller Redundanz oder Schutz gegen Gerätefehler bietet. Das vom Controller zum Zugriff auf gesteuerte Geräte verwendete Protokoll. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
B.185 Win32_SCSIControllerDevice TimeOfLastReset
689
Die Eigenschaft »TimeOfLastReset« gibt an, wann der Controller zuletzt zurückgesetzt (ausgeschalten oder erneut initialisiert) wurde.
B.185 Win32_SCSIControllerDevice AccessState
Antecedent Dependent NegotiatedDataWidth
NegotiatedSpeed
NumberOfHardResets NumberOfSoftResets
Die Eigenschaft »AccessState« gibt an, ob der Controller das Gerät steuert oder darauf zugreift (Wert=1) oder nicht (Wert=2). Es kann auch der Wert »Unbekannt« (0) definiert werden. Diese Informationen sind erforderlich, wenn ein logisches Gerät von mehreren Controllern gesteuert werden kann. Die Referenz »Win32_SCSIController« stellt den dem Gerät zugeordneten SCSI-Controller dar. Die Referenz »CIM_LogicalDevice« stellt das mit dem SCSI-Controller verbundene logische Gerät dar. Wenn mehrere Bus- und/oder Verbindungsdatenbreiten möglich sind, definiert die Eigenschaft »NegotiatedDataWidth« die verwendete Datenbreite in Bits. Wenn die Datenbreite nicht ausgehandelt wurde oder diese Informationen nicht verfügbar sind, sollte der Wert der Eigenschaft 0 sein. Wenn mehrere Bus- und/oder Verbindungsgeschwindigkeiten möglich sind, definiert die Eigenschaft »NegotiatedSpeed« die verwendete Geschwindigkeit in Bits pro Sekunde. Wenn die Verbindungs- oder Busgeschwindigkeit nicht ausgehandelt wurde oder diese Informationen nicht verfügbar sind, sollte der Wert der Eigenschaft 0 sein. Anzahl der vom Controller ausgelösten Kaltstarts. Anzahl der vom Controller ausgelösten Warmstarts.
B.186 Win32_SID AccountName BinaryRepresentation ReferencedDomainName SID SidLength
Der Name des Kontos, dem die SID zugeordnet ist. SID im binären Format. Der Domäne des Kontos, dem die SID zugeordnet ist. SID im Zeichenkettenformat. SID im Zeichenkettenformat.
690
Anhang B: WMI Klassenreferenz
B.187 Win32_SMBIOSMemory result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Access Die Eigenschaft »Access« gibt an, ob das Medium lesbar (Wert=1), beschreibbar (Wert=2) oder beides (Wert=3) ist. »Unbekannt« (0) kann ebenfalls definiert werden. AdditionalErrorData Die Eigenschaft »AdditionalErrorData« enthält zusätzliche Fehlerinformationen. Ein Beispiel ist das ECC-Syndrom oder die Rückgabe der Prüfbits, wenn eine CRC-basierte Fehlermethode verwendet wird. Wenn ein Einzelbit-Fehler gefunden wird und der CRC-Algorithmus bekannt ist, ist es möglich, das fehlerhafte Bit zu bestimmen. Dieser Datentyp (ECCSyndrom, Prüfbit, Paritätsbit oder andere Herstellerinformationen) ist in diesem Feld enthalten. Diese Eigenschaft wird nur verwendet, wenn die Eigenschaft »ErrorInfo« nicht 3 ist. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. BlockSize Größe der Speichererweiterungsblöcke in Bytes. Geben Sie 1 ein, wenn die Größe unbekannt oder ein Blockkonzept ungültig ist (z.B. für zusammengesetzte Erweiterungen, Speicher oder logische Datenträger).
B.187 Win32_SMBIOSMemory Caption ConfigManagerErrorCode ConfigManagerUserConfig CorrectableError
CreationClassName
Description DeviceID EndingAddress
ErrorAccess
ErrorAddress
ErrorCleared ErrorData
ErrorDataOrder
ErrorDescription
ErrorInfo
ErrorMethodology
691
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »CorrectableError« gibt an, ob der letzte Fehler korrigierbar war. Diese Eigenschaft wird nicht verwendet, wenn »ErrorInfo« 3 ist. Werte: True oder False. True gibt an, daß der Fehler korrigierbar ist. Die Eigenschaft »CorrectableError« gibt an, ob der letzte Fehler korrigierbar war. Diese Eigenschaft wird nicht verwendet, wenn »ErrorInfo« 3 ist. Werte: True oder False. True gibt an, daß der Fehler korrigierbar ist. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. »DeviceID« enthält eine Adresse oder andere Informationen, um das logische Gerät eindeutig zu benennen. Die Eigenschaft »EndingAddress« gibt die Endadresse an, auf die von einer Anwendung oder dem Betriebssystem verwiesen wird. Diese Speicheradresse wird von einem Speichercontroller für das Speicherobjekt zugeordnet. Die Eigenschaft »ErrorAccess« gibt den Speichervorgang an, der den letzten Fehler verursacht hat. Diese Eigenschaft ist nur gültig, wenn »ErrorInfo« nicht 3 ist. Die Eigenschaft »ErrorAddress« gibt die Adresse des letzten Speicherfehlers an. Diese Eigenschaft wird nur verwendet, wenn »ErrorInfo« nicht 3 ist. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die Eigenschaft »ErrorData« enthält die Daten des letzten Speicherzugriffs mit einem Fehler. Die Daten belegen das erste N-Oktett des Datenfelds, das für die in der Eigenschaft »ErrorTransferSize« angegebenen Bits erforderlich ist. Wenn der Wert 0 ist, wird diese Eigenschaft nicht verwendet. Die Eigenschaft »ErrorDataOrder« gibt die Reihenfolge der in der Eigenschaft »ErrorData« gespeicherten Daten an. Diese Eigenschaft wird nur verwendet, wenn »ErrorTransferSize« 0 ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »ErrorInfo« beschreibt den Typ des zuletzt aufgetretenen Fehlers. Die Werte 12 bis 14 werden in dieser Eigenschaft nicht verwendet. Diese Werte geben in der Eigenschaft »CorrectableError« an, ob ein Fehler korrigierbar ist. Die Eigenschaft »ErrorMethodology« gibt den Typ der von der Speicherhardware verwendeten Fehlerüberprüfung an.
692
Anhang B: WMI Klassenreferenz
ErrorResolution ErrorTime ErrorTransferSize
InstallDate
LastErrorCode Name
NumberOfBlocks
OtherErrorDescription PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
Purpose
Die Eigenschaft »ErrorResolution« gibt die Datenmenge des letzten Fehlers an. Diese Eigenschaft wird nicht verwendet, wenn »ErrorInfo« 3 ist. Die Eigenschaft »ErrorTime« gibt den Zeitpunkt des letzten Speicherfehlers an. Diese Eigenschaft ist nur gültig, wenn »ErrorInfo« nicht 3 ist. Die Eigenschaft »ErrorTransferSize« gibt die Größe der übertragenen Daten an, die den letzten Fehler enthalten. Diese Eigenschaft ist 0, wenn kein Fehler aufgetreten ist. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gesamtanzahl der aufeinander folgenden Blöcke. Jeder Block entspricht in der Größe dem in der Eigenschaft »BlockSize« angegebenen Wert. Die Gesamtgröße der Speichererweiterung kann berechnet werden, indem der Wert der Eigenschaft »BlockSize« mit dem Wert dieser Eigenschaft multipliziert wird. Wenn der Wert in »BlockSize« 1 ist, gibt diese Eigenschaft die Gesamtgröße der Speichererweiterung an. Die Eigenschaft »OtherErrorDescription« enthält weitere Informationen, wenn die Eigenschaft »ErrorInfo« 1 ist. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Formfreie Zeichenfolge, die das Medium und/oder seine Verwendung beschreibt.
B.188 Win32_ScheduledJob StartingAddress
Status
StatusInfo
SystemCreationClassName
SystemLevelAddress
SystemName
693
Die Eigenschaft »StartingAddress« gibt die Startadresse an, auf die von einer Anwendung oder dem Betriebssystem verwiesen wird. Diese Speicheradresse wird von einem Speichercontroller für das Speicherobjekt zugeordnet. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »SystemLevelAddress« gibt an, ob es sich bei den Adressinformationen in der Eigenschaft »ErrorAddress« um eine Systemadresse (TRUE) oder eine physikalische Adresse (FALSE) handelt. Diese Eigenschaft wird nur verwendet, wenn der Wert für die Eigenschaft »ErrorInfo« 3 ist. Werte: TRUE oder FALSE. TRUE gibt an, daß »ErrorAddress« eine Systemadresse enthält. Die Eigenschaft »SystemLevelAddress« gibt an, ob es sich bei den Adressinformationen in der Eigenschaft »ErrorAddress« um eine Systemadresse (TRUE) oder eine physikalische Adresse (FALSE) handelt. Diese Eigenschaft wird nur verwendet, wenn der Wert für die Eigenschaft »ErrorInfo« 3 ist. Werte: TRUE oder FALSE. TRUE gibt an, daß »ErrorAddress« eine Systemadresse enthält.
B.188 Win32_ScheduledJob result as Integer = Create(Command as String, DaysOfMonth as Integer, DaysOfWeek as Integer, InteractWithDesktop as Boolean, RunRepeatedly as Boolean, StartTime as Date/Time)
Die Funktion »Create« sendet einen Auftrag zum Ausführen zu einem angegebenen Zeitpunkt an das Betriebssystem. Diese Funktion erfordert, daß der Planungsdienst auf dem Computer, an den der Auftrag gesendet wird, gestartet ist. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Network Management Functions|NetScheduleJobAdd
694
Anhang B: WMI Klassenreferenz
Command=Der Parameter »Command« enthält den Namen des Befehls, des Batchprogramms oder der binären Datei (mit Befehlszeilenparametern), die der Planungsdienst verwendet, um den Auftrag zu starten. Beispiel: defrag /q /f DaysOfMonth=Der Parameter »DaysOfMonth« gibt die Tage des Monats an, für die der Auftrag geplant ist, und wird nur verwendet, wenn der Parameter »RunRepeatedly« TRUE ist. Optional=Wahr DaysOfWeek=Der Parameter »DaysOfWeek« gibt den Wochentag an, für den der Auftrag geplant ist, und wird nur verwendet, wenn der Parameter »RunRepeatedly« TRUE ist. BitValues = Array: 0=Montag 1=Dienstag 2=Mittwoch 3=Donnerstag 4=Freitag 5=Samstag 6=Sonntag Optional=Wahr InteractWithDesktop=Der Parameter »InteractWithDesktop« gibt an, ob der angegebene Auftrag interaktiv ist; d.h. die Benutzereingabe für einen geplanten Auftrag ist möglich, während dieser ausgeführt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß der Auftrag interaktiv ist. Der Standardwert für diesen Parameter ist FALSE. Optional=Wahr RunRepeatedly=Der Parameter »RunRepeatedly« gibt an, ob der Auftrag an den geplanten Tagen wiederholt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß der Auftrag entsprechend den Parametern »DaysOfWeek« und »DaysOfMonth« wieder-
B.188 Win32_ScheduledJob
695
holt ausgeführt wird. Wenn kein Wert angegeben wird, ist FALSE der Standard. Optional=Wahr StartTime=Der Parameter »SMBIOSBIOSVersion« gibt die UTC-Zeit zum Ausführen des Auftrags in folgendem Format an: YYYYMMDDHHMMSS.MMMMM M(+-)OOO. YYYYMMDD muß durch ******** ersetzt werden. Beispiel: ********123000.000000-420 gibt 12:30 pm PST mit aktiver Sommerzeit an. result as Integer =Delete Die Methode »Delete« löscht einen geplanten Auftrag. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Network Management Functions|NetScheduleJobDel Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Command Die Eigenschaft »Command« enthält den Namen des Befehls, des Batchprogramms oder der binären Datei (mit Befehlszeilenargumenten), die der Planungsdienst verwendet, um den Auftrag zu starten. Beispiel: defrag /q /f DaysOfMonth Die Eigenschaft »DaysOfMonth« gibt den Tag des Monats an, für den der Auftrag geplant ist. DaysOfWeek Die Eigenschaft »DaysOfWeek« gibt den Wochentag an, für den der Auftrag geplant ist. Description Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. ElapsedTime Zeitraum, in dem der Auftrag ausgeführt wurde. InstallDate Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. InteractWithDesktop Die Eigenschaft »InteractWithDesktop« läßt einen interaktiven Auftrag zu; d.h. die Benutzereingabe für einen geplanten Auftrag ist möglich, während dieser ausgeführt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß der Auftrag interaktiv ist. JobId Die Eigenschaft »JobId« gibt die Auftragskennung an. Diese Eigenschaft wird als Handle für einen geplanten Auftrag verwendet. JobStatus Die Eigenschaft »JobStatus« gibt an, ob ein geplanter Dienst beim letzten Start des Auftrags einwandfrei ausgeführt wurde. Name Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden.
696
Anhang B: WMI Klassenreferenz
Notify Owner Priority RunRepeatedly
StartTime
Status
TimeSubmitted UntilTime
Bei Auftragsbeendigung oder Fehler zu benachrichtigender Benutzer. Benutzer, der den Auftrag gesendet hat. Die Priorität gibt an, wie wichtig oder dringend der Auftrag ist bzw. ausgeführt werden muß. Die Eigenschaft »RunRepeatedly« gibt an, ob der Auftrag an den geplanten Tagen wiederholt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß der Auftrag wiederholt wird. FALSE gibt an, daß der Auftrag einmal ausgeführt wird. Die Eigenschaft »SMBIOSBIOSVersion« gibt die UTC-Zeit zum Ausführen des Auftrags in folgendem Format an: YYYYMMDDHHMMSS.MMMMMM(+-)OOO. YYYYMMDD muß durch ******** ersetzt werden. Das Ersetzen ist erforderlich, da der geplante Dienst das Konfigurieren von Aufträgen nur an einem Tag des Monats, der Woche oder einmal zuläßt. Beispiel: ********123000.000000-420 gibt 12:30 pm PST mit aktiver Sommerzeit an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Zeitpunkt, zu dem der Auftrag gesendet wurde. Zeitraum, nach dem der Auftrag ungültig wird oder angehalten werden sollte.
B.189 Win32_SecurityDescriptor ControlFlags DACL Group Owner SACL
Bitflags mit Informationen über den Inhalt und das Format der Beschreibung. Win32_ACE-Einträge die den Zugriff auf das Objekt festlegen. Der Vertrauensnehmer, der die Objektgruppe darstellt. Der Vertrauensnehmer, der den Objektbesitzer darstellt. Win32_ACE-Einträge die angeben, für welche Benutzer/Gruppen Überwachungsinformationen zusammengestellt werden.
B.190 Win32_SecuritySetting
697
B.190 Win32_SecuritySetting result as Integer = GetSecurityDescriptor result as Integer = SetSecurityDescriptor (Descriptor as CIM-Object) Caption ControlFlags Description SettingID
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«.
B.191 Win32_SecuritySettingAccess AccessMask GuidInheritedObjectType GuidObjectType Inheritance SecuritySetting Trustee Type
Bitflags, die angeben, welche Berechtigungen betroffen sind. Die GUID des Objekttyps von dem dieses Objekt erbt. Die GUID des Objekttyps, dem die Sicherheitseinstellungen zugewiesen sind. Bitflags, die die Vererbungsmethode der Zugriffsrechte angeben. Die Sicherheitseinstellungen eines Objekts. Die Win32_SID des Vertrauensnehmers für diesen Zugriffseintrag. Der für den Vertrauensnehmer angegebene Zugriffstyp.
B.192 Win32_SecuritySettingAuditing AuditedAccessMask GuidInheritedObjectType GuidObjectType Inheritance SecuritySetting Trustee Type
Bitflags, die angeben, welche Vorgänge überwacht werden. Die GUID des Objekttyps von dem dieses Objekt erbt. Die GUID des Objekttyps, dem die Sicherheitseinstellungen zugewiesen sind. Bitflags, die die Vererbungsmethode der Überwachungsrichtlinien angeben. Die Sicherheitseinstellungen eines Objekts. Die Win32-SID des Vertrauensnehmers für den Überwachungseintrag. Der für den Vertrauensnehmer angegebene Zugriffstyp.
B.193 Win32_SecuritySettingGroup Group SecuritySetting
Die Win32-SID der Objektgruppe. Die Sicherheitseinstellungen eines Objekts.
698
Anhang B: WMI Klassenreferenz
B.194 Win32_SecuritySettingOfLogicalFile Element Setting
Die Datei oder das Verzeichnis Die Sicherheitseinstellungen der Datei oder des Verzeichnisses.
B.195 Win32_SecuritySettingOfLogicalShare Element Setting
Die Freigabe. Die Sicherheitseinstellungen der Freigabe.
B.196 Win32_SecuritySettingOfObject Element Setting
Objekt mit Sicherheitseinstellungen Die Sicherheitseinstellungen des Objekts.
B.197 Win32_SecuritySettingOwner Owner SecuritySetting
Die Win32-SID des Objektbesitzers. Die Sicherheitseinstellungen eines Objekts.
B.198 Win32_SelfRegModuleAction result as Integer = Invoke
ActionID Caption Cost Description
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts.
B.199 Win32_SerialPort Direction
File
Name SoftwareElementID SoftwareElementState TargetOperatingSystem Version
699
Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
B.199 Win32_SerialPort result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnergieDate/Time) sparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet.
700
Anhang B: WMI Klassenreferenz
Binary
Capabilities
CapabilityDescriptions
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID ErrorCleared ErrorDescription
InstallDate
LastErrorCode MaxBaudRate MaximumInputBufferSize
MaximumOutputBufferSize
MaxNumberControlled Name
Die Eigenschaft »Binary« gibt an, ob der serielle Anschluß für die binäre Datenübertragung konfiguriert ist. Der Wert dieser Eigenschaft muß TRUE sein, da das Übertragen von nicht binären Daten nicht von der Win32-API unterstützt wird. FALSE kann nicht angegeben werden. Werte: TRUE oder FALSE. TRUE gibt an, daß der serielle Anschluß für die binäre Datenübertragung konfiguriert ist. Die Eigenschaft »Capabilities« definiert die Chipkompatibilität des seriellen Controllers und beschreibt die Puffer und andere Funktionen, die in der Chiphardware vererbt werden können. Formfreie Zeichenfolgen mit genaueren Erklärungen zu den im Datenfeld »Capabilities« angezeigten Funktionen des seriellen Controllers. Jeder Eintrag in diesem Array bezieht sich auf den Eintrag im Datenfeld »Capabilities« unter dem gleichen Index. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den seriellen Anschluß von anderen Geräten im System unterscheidet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »MaximumInputBufferSize« gibt die maximale Größe des internen Eingabepuffers des seriellen Anschlusstreibers an. Der Wert Null gibt an, daß kein maximaler Wert festgelegt wurde. Die Eigenschaft »MaximumOutputBufferSize« gibt die maximale Größe des internen Ausgabepuffers des seriellen Anschlusstreibers an. Der Wert Null gibt an, daß kein maximaler Wert festgelegt wurde. Maximale Anzahl der direkt adressierbaren Einheiten, die vom Controller unterstützt werden. Wenn der Wert unbekannt ist, geben Sie 0 ein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden.
B.199 Win32_SerialPort OSAutoDiscovered
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
ProtocolSupported ProviderType SettableBaudRate
SettableDataBits
SettableFlowControl
SettableParity
SettableParityCheck
701
Die Eigenschaft »OSAutoDiscovered« definiert die Instanzen dieser Klasse, die automatisch vom Betriebssystem erkannt wurden. Wenn z.B. Hardware über die Systemsteuerung hinzugefügt wurde, erkennt das Betriebssystem Instanzen dieser Klasse durch Abfragen der Hardware. Der Wert TRUE gibt an, daß die Instanz automatisch erkannt wurde. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Das vom Controller zum Zugriff auf gesteuerte Geräte verwendete Protokoll. Die Eigenschaft »ProviderType« gibt den Kommunikationsanbietertyp an. Die Eigenschaft »SettableBaudRate« gibt an, ob die Baudrate für den seriellen Anschluß geändert werden kann. Werte: TRUE oder FALSE. TRUE gibt an, daß die Baudrate geändert werden kann. Die Eigenschaft »SettableDataBits« gibt an, ob für den seriellen Anschluß Datenbits festgelegt werden können. Werte: TRUE oder FALSE. TRUE gibt an, daß Datenbits festgelegt werden können. Die Eigenschaft »SettableFlowControl« gibt an, ob für den seriellen Anschluß die Flußsteuerung festgelegt werden kann. Werte: TRUE oder FALSE. TRUE gibt an, daß die Flußsteuerung festgelegt werden kann. Die Eigenschaft »SettableParity« gibt an, ob die Parität für den seriellen Anschluß festgelegt werden kann. Werte: TRUE oder FALSE. TRUE gibt an, daß die Parität festgelegt werden kann. Die Eigenschaft »SettableParityCheck« gibt an, ob die Paritätsprüfung für den seriellen Anschluß festgelegt werden kann (wenn die Paritätsprüfung unterstützt wird). Werte: TRUE oder FALSE. TRUE gibt an, daß die Paritätsprüfung festgelegt werden kann.
702
Anhang B: WMI Klassenreferenz
SettableRLSD
SettableStopBits
Status
StatusInfo
Supports16BitMode
SupportsDTRDSR
SupportsElapsedTimeouts
SupportsIntTimeouts
SupportsParityCheck
SupportsRLSD
Die Eigenschaft »SettableRLSD« gibt an, ob für den seriellen Anschluß RLSD (Received Line Signal Detect) festgelegt werden können, wenn RLSD unterstützt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß die RLSD festgelegt werden kann. Die Eigenschaft »SettableStopBits« gibt an, ob für den seriellen Anschluß Stoppbits festgelegt werden können. Werte: TRUE oder FALSE. TRUE gibt an, daß Stoppbits festgelegt werden können. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »Supports16BitMode« gibt an, ob der 16-Bit-Modus von diesem seriellen Anschluß unterstützt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß der 16-Bit-Modus unterstützt wird. Die Eigenschaft »SupportsDTRDSR« gibt an, ob DTR-Signale (Data Terminal Ready) oder DSR-Signale (Data Set Ready) von diesem seriellen Anschluß unterstützt werden. Werte: TRUE oder FALSE. TRUE gibt an, daß DTR- und DSR-Signale unterstützt werden. Die Eigenschaft »SupportsElapsedTimeouts« gibt an, ob Zeitüberschreitungen am seriellen Anschluß unterstützt werden. Zeitüberschreitungen überwachen den gesamten Zeitraum zwischen Datenübertragungen. Werte: TRUE oder FALSE. TRUE gibt an, daß Zeitüberschreitungen unterstützt werden. Die Eigenschaft »SupportsIntTimeouts« gibt an, ob Zeitabstände unterstützt werden. Ein Zeitabstand ist der zwischen dem Empfang von Daten zulässige Zeitraum. Werte: TRUE oder FALSE. TRUE gibt an, daß Zeitabstände unterstützt werden. Die Eigenschaft »SupportsParityCheck« gibt an, ob die Paritätsprüfung von diesem seriellen Anschluß unterstützt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß die Paritätsprüfung unterstützt wird. Die Eigenschaft »SupportsRLSD« gibt an, ob RLSD (Received Line Signal Detect) von diesem seriellen Anschluß unterstützt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß RLSD wird.
B.200 Win32_SerialPortConfiguration SupportsRTSCTS
SupportsSpecialCharacters
SupportsXOnXOff
SupportsXOnXOffSet
SystemCreationClassName
SystemName
TimeOfLastReset
703
Die Eigenschaft »SupportsRTSCTS« gibt an, ob RTS-Signale (Ready To Send) oder CTS-Signale (Clear To Send) von diesem seriellen Anschluß unterstützt werden. Werte: TRUE oder FALSE. TRUE gibt an, daß RTSund CTS-Signale unterstützt werden. Die Eigenschaft »SupportsSpecialCharacters« gibt an, ob Steuerzeichen für den seriellen Anschluß unterstützt werden. Es werden Ereignisse anstelle von Daten angegeben. Diese Zeichen können nicht angezeigt werden und werden vom Treiber festgelegt. Beispiel: EofChar, ErrorChar, BreakChar, EventChar, XonChar und XoffChar. Werte: TRUE oder FALSE. TRUE gibt an, daß die Zeichen unterstützt werden. Die Eigenschaft »SupportsXOnXOff« gibt an, ob die XON/XOFFFlußsteuerung von diesem seriellen Anschluß unterstützt wird. Werte: TRUE oder FALSE. TRUE gibt an, daß XON/XOFF unterstützt wird. Die Eigenschaft »SupportsXOnXOffSet« gibt an, ob der Kommunikationsanbieter die Konfiguration der XON/XOFF-Flußsteuerung unterstützt. Werte: TRUE oder FALSE. TRUE gibt an, daß die XON/XOFFFlußsteuerung unterstützt wird. Die Eigenschaft »SupportsXOnXOffSet« gibt an, ob der Kommunikationsanbieter die Konfiguration der XON/XOFF-Flußsteuerung unterstützt. Werte: TRUE oder FALSE. TRUE gibt an, daß die XON/XOFFFlußsteuerung unterstützt wird. Die Eigenschaft »SupportsXOnXOffSet« gibt an, ob der Kommunikationsanbieter die Konfiguration der XON/XOFF-Flußsteuerung unterstützt. Werte: TRUE oder FALSE. TRUE gibt an, daß die XON/XOFFFlußsteuerung unterstützt wird. Die Eigenschaft »TimeOfLastReset« gibt an, wann der Controller zuletzt zurückgesetzt (ausgeschalten oder erneut initialisiert) wurde.
B.200 Win32_SerialPortConfiguration AbortReadWriteOnError
BaudRate BinaryModeEnabled
Die Eigenschaft »AbortReadWriteOnError« gibt an, ob Lese- und Schreibvorgänge abgebrochen werden, wenn ein Fehler auftritt. Werte: TRUE oder FALSE. TRUE gibt an, daß der Treiber alle Lese- und Schreibvorgänge abbricht, wenn ein Fehler auftritt. Der Treiber akzeptiert keine weiteren Vorgänge, bis der Fehler vom Programm bestätigt wird. Die Eigenschaft »BaudRate« gibt die Baudrate (Bits pro Sekunde) des Kommunikationsgeräts an. Beispiel: 9600 Die Eigenschaft »BinaryModeEnabled« gibt an, ob die binäre Datenübertragung für den seriellen Anschluß aktiviert ist. Dieser Wert ist immer TRUE, da in Win32-Systemen die binäre Übertragung nur über serielle Anschlüsse zulässig ist.
704
Anhang B: WMI Klassenreferenz
BitsPerByte
Caption ContinueXMitOnXOff
CTSOutflowControl
Description DiscardNULLBytes
DSROutflowControl
DSRSensitivity
DTRFlowControlType
EOFCharacter ErrorReplaceCharacter
ErrorReplacementEnabled
Die Eigenschaft »BitsPerByte« gibt die Anzahl der am seriellen Win32Anschluß gesendeten und empfangenen Bits für jedes Datenbyte an. Die Anzahl variiert mit den Steuer- und Fehlerkorrekturbits, z.B. Paritätsbits. Beispiel: 8 Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Die Eigenschaft »ContinueXMitOnXOff« gibt an, ob die Datenübertragung fortgesetzt wird, wenn der Empfangspuffer beinahe voll ist und das XoffCharZeichen gesendet wurde. Werte: TRUE oder FALSE. TRUE gibt an, daß die Übertragung fortgesetzt wird, wenn nur noch XoffLim-Bytes im Eingabepuffer verfügbar sind und der Treiber das XoffChar-Zeichen gesendet hat, um den Empfang anzuhalten. FALSE gibt an, daß die Übertragung nicht fortgesetzt wird, bis im Eingabepuffer XonLim-Bytes verfügbar sind und der Treiber das XonChar-Zeichen gesendet hat, um den Empfang fortzusetzen. Die Eigenschaft »CTSOutflowControl« bestimmt, ob CTS (Clear To Send) vor der Datenübertragung aktiviert wird. Werte: TRUE oder FALSE. TRUE gibt an, daß die Übertragung bis zum Senden des CTS-Signals angehalten wird. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »DiscardNULLBytes« bestimmt, ob NULL-Bytes (Zeichen) beim Empfangen gelöscht werden. Werte: TRUE oder FALSE. TRUE gibt an, daß NULL-Bytes gelöscht werden. Die Eigenschaft »DSROutflowControl« bestimmt, ob die Datenflußsteuerung aktiviert wird, wenn eine DSR-Bedingung vorliegt. DSR gibt an, daß die Verbindung über den seriellen Anschluß eingerichtet wurde. Werte: TRUE oder FALSE. TRUE gibt an, daß die Übertragung bis zum Senden des DSR-Signals angehalten wird. Die Eigenschaft »DSRSensitivity« gibt an, ob der Kommunikationstreiber den Status des DSR-Signals erkennt. Werte: TRUE oder FALSE. TRUE gibt an, daß der Treiber empfangene Bits ignoriert, außer die DSR-Modemleitung ist aktiv. Die Eigenschaft »DTRFlowControlType« gibt die Verwendung der DTRFlußsteuerung nach dem Herstellen einer Verbindung an. Möglicher DTRStatus: Aktiviert (zeigt an, daß die Verbindung aktiv ist) oder deaktiviert (ignoriert DTR nach dem Empfang). DTR kann auch als Flag für die Datenflußsteuerung verwendet werden. Die Eigenschaft »EOFCharacter« gibt den Wert des Zeichens für das Datenende an. Beispiel: ^Z Die Eigenschaft »ErrorReplaceCharacter« gibt den Wert des Zeichens zum Ersetzen der Bytes an, die mit einem Paritätsfehler empfangen wurden. Beispiel: ^C »ErrorReplacementEnabled« gibt an, ob Bytes, die mit Paritätsfehlern empfangen wurden, durch den Wert »ErrorReplaceCharacter« ersetzt werden. Zeichen mit Paritätsfehlern werden nur ersetzt, wenn dieses Mitglied TRUE und die Parität aktiviert ist.
B.200 Win32_SerialPortConfiguration EventCharacter IsBusy
Name Parity
ParityCheckEnabled
RTSFlowControlType
SettingID StopBits
XOffCharacter
XOffXMitThreshold XOnCharacter
705
Die Eigenschaft »EventCharacter« enthält den Wert des Steuerzeichens, das ein Ereignis, z.B. das Datenende, angibt. Beispiel: ^e Die Eigenschaft »IsBusy« gibt an, ob der serielle Anschluß verwendet wird. Werte: TRUE oder FALSE. TRUE gibt an, daß der serielle Anschluß verwendet wird. Die Eigenschaft »Name« gibt den Namen des seriellen Win32-Anschlusses an. Beispiel: COM1 Die Eigenschaft »Parity« gibt die Methode der verwendeten Paritätsprüfung an. Die Parität wird als eine Fehlerprüfmethode verwendet, wenn ein zusätzliches Paritätsbit in jeder Dateneinheit enthalten ist. Bei gerader Parität wird das Paritätsbit verwendet, um alle Bits auf eine gerade Zahl zu setzen. Die Gültigkeit der Daten kann durch Zählen der gesetzten Bits überprüft werden. Ungerade Parität setzt die Paritätsbits auf ungerade Zahlen fest. Markierungsparität verwendet immer 1; Bereichsparität verwendet immer 0. Beispiel: Gerade Die Eigenschaft »ParityCheckEnabled« legt fest, ob die Paritätsprüfung aktiviert ist. Werte: TRUE oder FALSE. TRUE gibt an, daß die Paritätsprüfung aktiviert ist. Die Eigenschaft »RTSFlowControlType« gibt die RTS-Flußsteuerung an. RTS wird verwendet, um zu signalisieren, daß Daten zum Übertragen verfügbar sind. Werte: Deaktivieren – RTS wird ignoriert, nachdem das erste RTSSignal empfangen wurde. Aktivieren – RTS ist für die Datenübertragungssitzung aktiv. Handshake – RTS ist deaktiviert, wenn der Übertragungspuffer mehr als dreiviertel voll ist; und aktiviert, wenn der Puffer weniger als halb voll ist. Umschalten – RTS ist aktiviert, wenn Daten zum Übertragen gepuffert sind. Die Kennung für das Objekt »CIM_Setting«. »StopBits« gibt die Anzahl der verwendeten Stoppbits an. Jede Dateneinheit auf einer asynchronen seriellen Verbindung wird getrennt und ununterbrochen gesendet, wenn keine Daten für die Übertragung vorhanden sind. Beispiel: 1 Die Eigenschaft »XOffCharacter« gibt den Wert des XOFF-Zeichens für das Senden und Empfangen an. XOFF ist ein Softwaresignal, das die Datenübertragung anhält (RTS und CTS sind Hardwaresignale). XON setzt die Übertragung fort. Die Eigenschaft »XOffXMitThreshold« gibt die maximal erlaubte Byteanzahl im Eingabepuffer an, bevor das XOFF-Zeichen gesendet wird. Die Eigenschaft »XON character« gibt den Wert des XON-Zeichens für das Senden und Empfangen an. XON ist ein Softwaresignal, das die Datenübertragung fortsetzt (RTS und CTS sind Hardwaresignale). XOFF hält die Übertragung an.
706
Anhang B: WMI Klassenreferenz
XOnXMitThreshold
XOnXOffInFlowControl
XOnXOffOutFlowControl
Die Eigenschaft »XOnXMitThreshold« gibt die minimal erlaubte Byteanzahl im Eingabepuffer an, bevor das XON-Zeichen gesendet wird. Dieses Mitglied reguliert in Verbindung mit der Eigenschaft »XOffXMitThreshold« die Datenübertragungsrate. Die Eigenschaft »XOnXOffInFlowControl« gibt an, ob die XON/XOFFFlußsteuerung während dem Empfang verwendet wird. Werte: TRUE oder FALSE. TRUE gibt an, daß »XOffCharacter« gesendet wird, wenn im Eingabepuffer nur noch XOffXMitThreshold Bytes verfügbar sind, und daß »XOnCharacter« gesendet wird, wenn im Eingabepuffer XOnXMitThreshold Bytes verfügbar sind. »XOnXOffOutFlowControl« gibt an, ob die XON/XOFF-Flußsteuerung während der Übertragung verwendet wird. Werte: TRUE oder FALSE. TRUE gibt an, daß die Übertragung bei Empfang des XOff-Zeichens angehalten und bei Empfang des XOn-Zeichens fortgesetzt wird.
B.201 Win32_SerialPortSetting Element Setting
Die Referenz »Element« stellt den seriellen Win32-Anschluß dar, der die Eigenschaften eines seriellen Anschlusses im Computersystem enthält. Die Referenz »Setting« stellt die serielle Win32-Anschlusskonfiguration dar, die eine Konfigurationseinstellung für den seriellen Anschluß enthält.
B.202 Win32_Service result as Integer = StartService
Die Methode »StartService« startet den Dienst. Folgende Werte werden zurückgegeben: 0 – Die Anforderung wurde angenommen. 1 – Die Anforderung wird nicht unterstützt. 2 – Der Benutzer verfügt nicht über die erforderlichen Zugriffsrechte. 3 – Der Dienst kann nicht angehalten werden, da aktive Dienste von ihm abhängig sind. 4 – Der angeforderte Steuerungscode ist ungültig oder wird nicht angenommen. 5 – Der angeforderte Steuerungscode kann nicht an den Dienst gesendet werden, da der Dienststatus (Win32_BaseService:State) 0, 1 oder 2 ist. 6 – Der Dienst wurde nicht gestartet. 7 – Der Dienst hat nicht rechtzeitig auf die Startanforderung reagiert. 8 – Beim Starten des Dienstes ist ein unbekannter Fehler aufgetreten. 9 – Der Verzeichnispfad zur ausführbaren Datei wurde nicht gefunden. 10 – Der Dienst wird bereits ausgeführt. 11 – Die Datenbank zum Hinzufügen eines neuen Dienstes ist gesperrt. 12 – Eine für den Dienst erforderliche Abhängigkeit wurde vom System entfernt. 13 – Der für einen abhängigen Dienst erforderliche Dienst konnte nicht gefunden werden. 14 – Der Dienst wurde deaktiviert. 15 – Der Dienst verfügt nicht über die zum Ausführen erforderliche Authentifizierung.
B.202 Win32_Service
result as Integer = StopService
result as Integer = PauseService
result as Integer = ResumeService
result as Integer = InterrogateService
result as Integer = UserControlService (ControlCode as Integer)
707
16 – Der Dienst wurde entfernt. 17 – Für den Dienst ist kein Ausführungsthread vorhanden. 18 – Ringabhängigkeiten beim Starten des Dienstes. 19 – Ein Dienst mit dem gleichen Namen wird bereits ausgeführt. 20 – Ungültige Zeichen im Dienstnamen. 21 – An den Dienst wurden ungültige Parameter übergeben. 22 – Das Konto, unter dem der Dienst ausgeführt wird, ist ungültig oder verfügt nicht über die erforderlichen Rechte. 23 – Der Dienst ist in der Dienstdatenbank des Systems vorhanden. 24 – Der Dienst wurde angehalten. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|StartService Die Methode »StopService« hält den Dienst an. Der Wert 0 wird zurückgegeben, wenn der Dienst einwandfrei angehalten wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ControlService|dwControl|SERVICE_ CONTROL_STOP Die Methode »PauseService« hält den Dienst an. Der Wert 0 wird zurückgegeben, wenn die Anforderung angenommen wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ControlService|dwControl|SERVICE_ CONTROL_PAUSE Die Methode »ResumeService« setzt den Dienst fort. Der Wert 0 wird zurückgegeben, wenn die Anforderung angenommen wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ControlService|dwControl|SERVICE_ CONTROL_CONTINUE Die Methode »InterrogateService« erfordert, daß der Dienststatus aktualisiert wird. Der Wert 0 wird zurückgegeben, wenn die Anforderung angenommen wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ControlService|dwControl|SERVICE_ CONTROL_INTERROGATE Die Methode »UserControlService« sendet einen benutzerdefinierten Steuerungscode an einem Dienst. Der Wert 0 wird zurückgegeben, wenn die Anforderung angenommen wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|CreateService|dwDesiredAccess|SERVICE_ USER_DEFINED_CONTROL
708
Anhang B: WMI Klassenreferenz
result as Integer = Create(DesktopInteract as Boolean, DisplayName as String, ErrorControl as Integer, LoadOrderGroup as String, LoadOrderGroupDependencies as String, Name as String, PathName as String, ServiceDependencies as String, ServiceType as Integer, StartMode as String, StartName as String, StartPassword as String) ValueMap = Array: 0=Boot 1=System 2=Automatic 3=Manual 4=Disabled result as Integer = Change(DesktopInteract as Boolean, DisplayName as String, ErrorControl as Integer, LoadOrderGroup as String, LoadOrderGroupDependencies as String, PathName as String, ServiceDependencies as String, ServiceType as Integer, StartMode as String, StartName as String, StartPassword as String) ValueMap = Array: 0=Boot 1=System 2=Automatic 3=Manual 4=Disabled result as Integer = ChangeStartMode (StartMode as String) ValueMap = Array: 0=Boot 1=System 2=Automatic 3=Manual 4=Disabled
Die Methode »Create« erstellt einen neuen Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst einwandfrei erstellt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Der Parameter »Win32_LoadOrderGroup« stellt eine Gruppierung der Systemdienste dar, die die Ausführungsabhängigkeiten definieren. Die Dienste müssen in der in der Ladegruppe angegebenen Reihenfolge initialisiert werden, da sie voneinander abhängig sind. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|CreateService
Die Methode »Change« ändert einen Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst einwandfrei erstellt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Der Parameter »Win32_LoadOrderGroup« stellt eine Gruppierung der Systemdienste dar, die die Ausführungsabhängigkeiten definieren. Die Dienste müssen in der in der Ladegruppe angegebenen Reihenfolge initialisiert werden, da sie voneinander abhängig sind. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ChangeServiceConfig
Die Methode »ChangeStartMode« ändert den Startmodus für einen Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst geändert wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Service Functions|ChangeServiceConfig|dwStartType
B.202 Win32_Service result as Integer = Delete
AcceptPause
AcceptStop
Caption CheckPoint
CreationClassName
Description DesktopInteract
DisplayName
ErrorControl
709
Die Methode »Delete« löscht einen vorhandenen Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst gelöscht wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ChangeServiceConfig|DeleteService Die Eigenschaft »AcceptPause« gibt an, ob der Dienst angehalten werden kann. Werte: TRUE oder FALSE. TRUE gibt an, daß der Dienst angehalten werden kann. Die Eigenschaft »AcceptStop« gibt an, ob der Dienst beendet werden kann. Werte: TRUE oder FALSE. TRUE gibt an, daß der Dienst beendet werden kann. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »CheckPoint« gibt einen Wert an, der vom Dienst regelmäßig erhöht wird, um den Status beim Starten, Anhalten, Beenden oder einem kontinuierlichen Vorgang anzuzeigen. Der Dienst erhöht diesen Wert z.B. wenn ein Initialisierungsschritt beim Starten abschlossen ist. Das Programm, das den Vorgang aktiviert hat, verwendet diesen Wert, um den Dienststatus während eines längeren Vorgangs zu überwachen. Dieser Wert ist 0 und ungültig, wenn keine entsprechenden Vorgänge anstehen. »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DesktopInteract« gibt an, ob der Dienst mit Fenstern auf dem Desktop kommunizieren bzw. diese erstellen kann. Werte: TRUE oder FALSE. TRUE gibt an, daß der Dienst mit Fenstern auf dem Desktop kommunizieren oder diese erstellen kann. Die Eigenschaft »DisplayName« gibt den angezeigten Namen des Dienstes an. Die Zeichenfolge darf aus maximal 256 Zeichen bestehen. Für den Namen muß die Groß-/Kleinschreibung beachtet werden. Für den Vergleich von angezeigten Namen muß die Groß-/Kleinschreibung nicht beachtet werden. Einschränkungen: Akzeptiert den gleichen Wert wie die Eigenschaft »Name«. Beispiel: Atdisk. Wenn der Dienst nicht gestartet wird, wird in der Eigenschaft »ErrorControl« der Schweregrad des Fehlers angegeben. Der Wert gibt den Startvorgang an, wenn ein Fehler auftritt. Alle Fehler werden vom Computersystem protokolliert. Der Benutzer wird bei normalen Fehlern benachrichtigt (nicht bei Fehlern die ignoriert werden können). Bei schwerwiegenden Fehlern wird das System mit der letzten funktionierenden Konfiguration neu gestartet. Bei kritischen Fehlern wird versucht, das System mit einer funktionierenden Konfiguration neu zu starten.
710
Anhang B: WMI Klassenreferenz
ExitCode
InstallDate Name
PathName
ProcessId ServiceSpecificExitCode
ServiceType Started StartMode
StartName
Die Eigenschaft »ExitCode« gibt einen Win32-Fehlercode an, der beim Starten oder Anhalten des Dienstes aufgetretene Probleme definiert. Der Wert der Eigenschaft ist ERROR_SERVICE_SPECIFIC_ERROR (1066), wenn der Fehler eindeutig von dieser Klasse dargestellt wird. Fehlerinformationen sind im Mitglied »ServiceSpecificExitCode« verfügbar. Der Dienst setzt den Wert auf »NO_ERROR«, wenn er ausgeführt oder ordnungsgemäß beendet wird. Die Eigenschaft »InstallDate« gibt an, wann es installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« gibt den Dienst und die verwalteten Funktionen an. Die Funktionen werden in der Eigenschaft »Description« des Objekts genauer beschrieben. Die Eigenschaft »PathName« enthält den vollqualifizierten Pfad zur binären Datei, die den Dienst implementiert. Beispiel: \SystemRoot\System32\drivers\afd.sys Die Eigenschaft »ProcessId« gibt die Prozesskennung des Dienstes an. Beispiel: 324 Die Eigenschaft »ServiceSpecificExitCode« gibt einen dienstspezifischen Fehlercode für Fehler an, die beim Starten oder Anhalten des Dienstes auftreten. Der Beendigungscode wird vom Dienst definiert, der von dieser Klasse dargestellt wird. Dieser Wert wird nur festgelegt, wenn der Wert in der Eigenschaft »ExitCode« ERROR_SERVICE_SPECIFIC_ERROR, 1066 ist. Die Eigenschaft »ServiceType« gibt den Diensttyp für aufrufende Prozesses an. Der boolesche Wert »Started« gibt an, ob der Dienst gestartet (TRUE) oder angehalten (FALSE) wurde. Die Eigenschaft »StartMode« gibt den Startmodus des Win32-Basisdienstes an. »Boot« gibt einen vom Ladeprogramm des Betriebssystems gestarteten Gerätetreiber an. Dieser Wert ist nur für Treiberdienste gültig. »Automatisch« gibt einen Dienst an, der vom Dienststeuerungs-Manager während dem Systemstart gestartet wird. »Manuell« gibt einen Dienst an, der vom Dienststeuerungs-Manager gestartet wird, wenn die Funktion »StartService« aufgerufen wird. »Deaktiviert« gibt einen Dienst an, der nicht mehr gestartet werden kann. Die Eigenschaft »StartName« gibt den Kontonamen an, unter dem der Dienst ausgeführt wird. Abhängig vom Diensttyp kann der Kontoname folgendes Format haben: »Domänenname\Benutzername«. Der Dienstprozeß wird beim Ausführen mit einem dieser Formate protokolliert. Wenn das Konto zu einer integrierten Domäne gehört, kann ».\Benutzername« angegeben werden. Wenn NULL angegeben ist, wird der Dienst als lokales Systemkonto angemeldet. Für den Kernel-Systemtreiber enthält »StartName« den Treiberobjektnamen (\Dateisystem\Rdr oder \Treiber\Xns), den das E/A-System verwendet, um die Gerätetreiber zu laden. Wenn NULL angegeben ist, wird der Treiber mit dem vom E/ASystem basierend auf dem Dienstnamen erstellten Standardobjektnamen ausgeführt. Beispiel: DWDOM\Admin.
B.203 Win32_ServiceControl State Status
SystemCreationClassName SystemName TagId
WaitHint
Die Eigenschaft »State« gibt den aktuellen Status des Basisdienstes an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Der Typname des Systems, auf dem sich der Dienst befindet. Der Name des Systems, auf dem sich der Dienst befindet. Die Eigenschaft »TagId« gibt einen eindeutigen Tagwert für diesen Dienst in der Gruppe an. Der Wert 0 gibt an, daß dem Dienst kein Tag zugeordnet wurde. Ein Tag kann zum Anfordern eines Dienststarts in einer Ladegruppe verwendet werden, indem ein Taganforderungsvektor in der Registrierung unter folgender Adresse angegeben wird: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupO rderList. Tags werden nur für Kerneltreiber und Dateisystemtreiber im Start- oder Systemmodus ausgewertet. Die Eigenschaft »WaitHint« gibt den geschätzten Zeitraum in Millisekunden an, der für einen Start-, Stopp-, Pause- oder fortgesetzten Vorgang erforderlich ist. Nachdem die angegebene Zeit verstrichen ist, für der Dienst den nächsten Aufruf an die Funktion »SetServiceStatus« mit einem inkrementierten Wert in »CheckPoint« oder einer Änderung in »CurrentState« aus. Wenn der in »WaitHint« angegebene Zeitraum verstrichen ist und der Wert in »CheckPoint« nicht inkrementiert oder »CurrentState« nicht geändert wurde, setzen der Dienststeuerungs-Manager oder das Dienststeuerungsprogramm einen Fehler voraus.
B.203 Win32_ServiceControl Arguments Caption Description Event ID Name ProductCode SettingID Wait
711
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«.
712
Anhang B: WMI Klassenreferenz
B.204 Win32_ServiceSpecification result as Integer = Invoke
Caption CheckID CheckMode
Dependencies
Description DisplayName ErrorControl ID LoadOrderGroup Name Password ServiceType SoftwareElementID SoftwareElementState StartName StartType TargetOperatingSystem Version
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde. Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Eine Beschreibung der Objekte. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Kennung für die Softwarekomponente. Der Status einer Softwarekomponente. Der Status einer Softwarekomponente. Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.205 Win32_ServiceSpecificationService
713
B.205 Win32_ServiceSpecificationService Check Element
B.206 Win32_SettingCheck Check Setting
B.207 Win32_Share result as Integer = Create (Access as CIM-Object, Description as String, MaximumAllowed as Integer, Name as String, Password as String, Path as String, Type as Integer) Access=Der Parameter »Access« übergibt die Sicherheitsbeschreibung für Berechtigungen auf Benutzerebene. Eine Sicherheitsbeschreibung enthält Informationen über die Berechtigung, den Besitzer und Zugriffsmöglichkeiten der Ressource. Optional=Wahr Description=Der Parameter »Description« übergibt einen optionalen Kommentar, um die freizugebende Ressource zu beschreiben. Optional=Wahr MaximumAllowed=Der Parameter »MaximumAllowed« übergibt die maximale Anzahl von Benutzern, die diese Ressource gleichzeitig verwenden können. Beispiel: 10. Optional=Wahr Name=Die Eigenschaft »Name« übergibt den Alias zu einer Freigabe in einem Win32-System. Beispiel: public Password=Der Parameter »Password« übergibt das Kennwort für die freigege-
Die Methode »Create« initialisiert die Freigabe einer Serverressource. Nur Mitglieder der lokalen Administrator- oder KontenOperatorengruppe oder Kommunikations-, Druck- und Serveroperatoren können die Methode ausführen. Der Druck-Operator kann nur Druckerwarteschlangen löschen. Der Kommunikationsoperator kann nur Kommunikationsgeräte-Warteschlangen löschen. Der Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Network Management Functions|NetShareAdd
714
Anhang B: WMI Klassenreferenz
bene Ressource, wenn der Server mit Sicherheit auf Freigabeebene ausgeführt wird. Wenn der Server mit Sicherheit auf Benutzerebene ausgeführt wird, wird dieser Parameter ignoriert. Optional=Wahr Path=Der Parameter »Path« gibt den lokalen Pfad der Win32-Freigabe an. Beispiel: C:\Programme Type=Der Parameter »Type« übergibt den freigegebenen Ressourcentyp. Die Typen beinhalten Laufwerke, Druckerwarteschlange, IPC (Interprocess Communications) und allgemeine Geräte. Values = Array: 0=Laufwerk 1=Druckerwarteschlange 2=Gerät 3=IPC 4=Laufwerkverwaltung 5=Druckerwarteschlangenverwaltung 6=Geräteverwaltung 7=IPC-Verwaltung result as Integer = SetShareInfo (Access as CIM-Object, Description as String, MaximumAllowed as Integer) Access=Der Parameter »Access« übergibt die Sicherheitsbeschreibung für Berechtigungen auf Benutzerebene. Eine Sicherheitsbeschreibung enthält Informationen über die Berechtigung, den Besitzer und Zugriffsmöglichkeiten der Ressource. Optional=Wahr Description=Der Parameter »Description« übergibt einen optionalen Kommentar, um die freizugebende Ressource zu beschreiben. Optional=Wahr MaximumAllowed=Der Parameter »MaximumAllowed« übergibt die maximale Anzahl von Benutzern, die diese Ressource gleichzeitig verwenden können. Beispiel: 10. Optional=Wahr
Die Methode »SetShareInfo« legt die Parameter einer freigegebenen Ressource fest. Nur Mitglieder der lokalen Administrator- oder Konten-Operatorengruppe oder Kommunikations-, Druck- und Serveroperatoren können die Methode ausführen. Der DruckOperator kann nur Druckerwarteschlangen löschen. Der Kommunikationsoperator kann nur KommunikationsgeräteWarteschlangen löschen. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Network Management Functions|NetShareSetInfo
B.207 Win32_Share result as Integer = Delete
AccessMask
AllowMaximum
Caption Description InstallDate
MaximumAllowed
Name Path Status
715
Die Methode »Delete« löscht einen Freigabenamen aus einer Serverliste und trennt die Verbindungen mit der freigegebenen Ressource. Nur Mitglieder der lokalen Administrator- oder KontenOperatorengruppe oder Kommunikations-, Druck- und Serveroperatoren können die Methode ausführen. Der Druck-Operator kann nur Druckerwarteschlangen löschen. Der Kommunikationsoperator kann nur Kommunikationsgeräte-Warteschlangen löschen. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Network Management Functions|NetShareDel Die Eigenschaft »AccessMask« enthält die Zugriffsrechte für die Freigabe des Benutzers oder der Gruppe, für die die Instanz zurückgegeben wird. Diese Eigenschaft wird nur in Windows NT und Windows 2000 unterstützt. Die Eigenschaft »AllowMaximum« gibt an, ob die Anzahl der Benutzer, die gleichzeitig auf diese Ressource zugreifen können, beschränkt wurde. Werte: TRUE oder FALSE. TRUE gibt an, daß die Anzahl der Benutzer nicht beschränkt wurde und der Wert in der Eigenschaft »MaximumAllowed« ignoriert wird. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »MaximumAllowed« gibt die maximale Anzahl der Benutzer an, die diese Ressource gleichzeitig verwenden können. Der Wert ist nur gültig, wenn »AllowMaximum« auf FALSE gesetzt ist. Beispiel: 10. Die Eigenschaft »Name« gibt den Alias zu einer Freigabe in einem Win32-System an. Beispiel: public Die Eigenschaft »Path« gibt den lokalen Pfad der Win32-Freigabe an. Beispiel: C:\Programme Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
716
Anhang B: WMI Klassenreferenz
Type
Die Eigenschaft »Type« gibt den freigegebenen Ressourcentyp an. Die Typen beinhalten Laufwerke, Druckerwarteschlange, IPC (Interprocess Communications) und allgemeine Geräte.
B.208 Win32_ShareToDirectory Share SharedElement
Die Referenz »Share« stellt die Eigenschaften einer freigegebenen Ressource dar, die über das Verzeichnis verfügbar ist. Die Referenz »SharedElement« stellt die Eigenschaften eines Verzeichnisses dar, das einer freigegebenen Ressource zugeordnet wurde.
B.209 Win32_ShortcutAction result as Integer = Invoke
ActionID Arguments Caption Description Direction
HotKey IconIndex Name Shortcut ShowCmd SoftwareElementID SoftwareElementState Target
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Befehlszeilenargumente für die Verknüpfung. Befehlszeilenargumente für die Verknüpfung. Eine Beschreibung des Objekts. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. The hotkey for the shortcut. It has the virtual-key code for the key in the loworder byte, and the modifier flags in the high-order byte. The hotkey for the shortcut. It has the virtual-key code for the key in the loworder byte, and the modifier flags in the high-order byte. Der Name zum Identifizieren der Softwarekomponente. Name der zu erstellenden Verknüpfung. Der Befehl »Show« gibt den Anzeigestatus des Programmfensters an. Er entspricht der Windows-Funktion »ShowWindow«. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an.
B.210 Win32_ShortcutFile TargetOperatingSystem Version WkDir
717
»TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder . Versionsformat: .. oder .
B.210 Win32_ShortcutFile result as Integer = TakeOwnerShip
result as Integer = ChangeSecurityPermissions (Option as Integer, SecurityDescriptor as CIM-Object)
result as Integer = Copy (FileName as String)
Die Methode »TakeOwnerShip« übernimt den Besitz der logischen Datei, die im Objektpfad angegeben ist. Wenn die logische Datei ein Verzeichnis ist, übernimt die Methode den Besitz aller Dateien und Unterverzeichnisse, die im Verzeichnis enthaltenen sind. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »ChangeSecurityPermissions« ändert die Sicherheitsrechte für die im Objektpfad angegebene logische Datei. Wenn die logische Datei ein Verzeichnis ist, werden die Sicherheitsrechte aller im Verzeichnis enthaltener Dateien und Unterverzeichnisse geändert. Die Methode gibt den Wert 0 zurück, wenn die Rechte geändert wurden. Jeder andere Wert zeigt einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Copy« kopiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist, in das im Eingabeparameter festgelegte Verzeichnis. Der Wert 0 wird zurückgegeben, wenn die Datei kopiert wurde. Andere Werte zeigen einen Fehler an. Das Kopieren wird nicht unterstützt, wenn eine vorhandene Datei überschrieben werden muß. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
718
Anhang B: WMI Klassenreferenz
result as Integer = Rename (FileName as String)
result as Integer = Delete
result as Integer = Compress
result as Integer = Uncompress
Die Methode »Rename« benennt die logische Datei (oder das Verzeichnis) um, die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei umbenannt wurde. Andere Werte zeigen einen Fehler an. Die Umbenennung wird nicht unterstützt, wenn das Ziel ein anderes Laufwerk ist oder eine vorhandene Datei überschrieben werden muß. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Delete« löscht die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei gelöscht wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Compress« komprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei komprimiert wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »Uncompress« dekomprimiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei dekomprimiert wurde. Andere Werte zeigen einen Fehler an. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
B.210 Win32_ShortcutFile result as Integer = TakeOwnerShipEx (Recursive as Boolean, StartFileName as String) optional=Wahr optional=Wahr
result as Integer = ChangeSecurityPermissionsEx (Option as Integer, Recursive as Boolean, SecurityDescriptor as CIM-Object, StartFileName as String) optional=Wahr optional=Wahr
result as Integer = CopyEx (FileName as String, Recursive as Boolean, StartFileName as String) optional=Wahr optional=Wahr
719
Die Methode »TakeOwnerShipEx« übernimt den Besitz der logischen Datei, die im Objektpfad angegeben ist. Wenn die logische Datei ein Verzeichnis ist, übernimt die Methode den Besitz aller Dateien und Unterverzeichnisse, die im Verzeichnis enthaltenen sind. Der Wert 0 wird zurückgegeben, wenn der Vorgang erfolgreich beendet wurde. Andere Werte zeigen einen Fehler an. »TakeOwnerShipEx« ist eine erweiterte Version der Methode »TakeOwnerShip«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »ChangeSecurityPermissionsEx« ändert die Sicherheitsrechte für die im Objektpfad angegebene logische Datei. Wenn die logische Datei ein Verzeichnis ist, werden die Sicherheitsrechte aller im Verzeichnis enthaltener Dateien und Unterverzeichnisse geändert. Die Methode gibt den Wert 0 zurück, wenn die Rechte geändert wurden. Jeder andere Wert zeigt einen Fehler an. »ChangeSecurityPermissionsEx« ist eine erweiterte Version der Methode »ChangeSecurityPermissions«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFSDateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »CopyEx« kopiert die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist, in das im Parameter »FileName« festgelegte Verzeichnis. Der Wert 0 wird zurückgegeben, wenn die Datei kopiert wurde. Andere Werte zeigen einen Fehler an. Das Kopieren wird nicht unterstützt, wenn eine vorhandene Datei überschrieben werden muß. »CopyEx« ist eine erweiterte Version der Methode »Copy«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig.
720
Anhang B: WMI Klassenreferenz
Die Methode »DeleteEx« löscht die logische Datei (oder das Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei gelöscht wurde. Andere Werte zeigen einen Fehler an. »DeleteEx« ist eine erweiterte Version der Methode »Delete«. Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »CompressEx« komprimiert die logische Datei (oder das Verresult as Integer = zeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, CompressEx(Recursive as wenn die Datei komprimiert wurde. Andere Werte zeigen einen Fehler an. Boolean, StartFileName as »CompressEx« ist eine erweiterte Version der Methode »Compress«. Einer String) der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war erfolgoptional=Wahr reich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist aufoptional=Wahr getreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. Die Methode »UncompressEx« dekomprimiert die logische Datei (oder das result as Integer = UncompressEx(Recursive as Verzeichnis), die im Objektpfad angegeben ist. Der Wert 0 wird zurückgegeben, wenn die Datei dekomprimiert wurde. Andere Werte zeigen einen Fehler Boolean, StartFileName as an. »UncompressEx« ist eine erweiterte Version der Methode »Uncompress«. String) Einer der folgenden Werte wird zurückgegeben: 0 – Die Anforderung war optional=Wahr erfolgreich. 2 – Der Zugriff wurde verweigert. 8 – Ein unbekannter Fehler ist optional=Wahr aufgetreten. 9 – Der angegebene Name ist ungültig. 10 – Das angegebene Objekt ist bereits vorhanden. 11 – Kein NTFS-Dateisystem. 12 – Keine Windows NT- oder Windows 2000-Plattform. 13 – Anderes Laufwerk. 14 – Das Verzeichnis ist nicht leer. 15 – Freigabeverletzung. 16 – Die angegebene Startdatei ist ungültig. 17 – Eine für den Vorgang erforderliche Berechtigung wurde aufgehoben. 21 – Ein angegebener Parameter ist ungültig. result as Boolean = GetEffec- Die Methode »GetEffectivePermission« bestimmt, ob der Aufrufer über die vom Argument »Permission« angegebenen zusammengesetzten BerechtiguntivePermission gen für das Dateiobjekt und ggf. die Freigabe verfügt, auf der sich die Datei (Permissions as Integer) oder das Verzeichnis befindet. AccessMask Die Eigenschaft »AccessMask« ist ein Bitarray, das die Zugriffsrechte für die Datei oder das Verzeichnis des Benutzers oder der Gruppe darstellt, für die die Instanz zurückgegeben wird. Diese Eigenschaft wird nur in Windows NT und Windows 2000 unterstützt. Auf Windows 98 und Windows NT/2000 FAT-Datenträgern wird FULL_ACCESS zurückgegeben, da keine Objektsicherheit festgelegt ist. result as Integer = DeleteEx (StartFileName as String) optional=Wahr
B.210 Win32_ShortcutFile Archive Caption Compressed CompressionMethod
CreationClassName CreationDate CSCreationClassName CSName Description Drive EightDotThreeFileName Encrypted EncryptionMethod
Extension FileName FileSize FileType FSCreationClassName FSName Hidden
721
Die Eigenschaft »Archive« ist ein boolescher Wert, der angibt, ob die Datei archiviert werden soll. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Compressed« ist ein boolescher Wert, der angibt, daß die Datei komprimiert ist. Die Eigenschaft »CompressionMethod« ist eine formfreie Zeichenfolge, die den Algorithmus oder das Programm zum Komprimieren der logischen Datei angibt. Wenn es nicht möglich ist, das Komprimierungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob die logische Datei komprimiert ist. »Komprimiert«, wenn die Datei komprimiert ist, aber das Komprimierungsschema unbekannt ist. »Nicht komprimiert«, wenn die logische Datei nicht komprimiert ist. Die Eigenschaft »CreationClassName« gibt den Klassennamen an. Die Eigenschaft »CreationDate« gibt das Erstellungsdatum der Datei an. Die Eigenschaft »CSCreationClassName« gibt die Klasse des Computersystems an. Die Eigenschaft »CSName« gibt den Namen des Computersystems an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »Drive« gibt den Laufwerkbuchstaben (einschließlich Doppelpunkt) der Datei an. Beispiel: c: Die Eigenschaft »EightDotThreeFileName« gibt den DOS-kompatiblen Namen der Datei an. Beispiel: c:\progra~1 Die Eigenschaft »Encrypted« ist ein boolescher Wert, der angibt, daß die Datei verschlüsselt ist. Die Eigenschaft »EncryptionMethod« ist eine formfreie Zeichenfolge, die den Algorithmus oder das Programm zum Verschlüsseln der logischen Datei angibt. Wenn es z.B. aus Sicherheitsgründen nicht möglich ist, das Verschlüsselungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob die logische Datei verschlüsselt ist. »Verschlüsselt«, wenn die Datei verschlüsselt ist, aber das Verschlüsselungsschema unbekannt ist. »Nicht verschlüsselt«, wenn die logische Datei nicht verschlüsselt ist. Die Eigenschaft »Extension« gibt die Erweiterung der Datei ohne Punkt an. Beispiel: txt, mof, mdb. Die Eigenschaft »FileName« gibt den Namen der Datei ohne Erweiterung an. Beispiel: autoexec Die Eigenschaft »FileSize« gibt die Datengröße in Bytes an. Die Eigenschaft »FileType« stellt den in der Eigenschaft »Extension« angegebenen Dateityp dar. Die Eigenschaft »FSCreationClassName« gibt die Klasse des Dateisystems an. Die Eigenschaft »FSName« gibt den Namen des Dateisystems an. Die Eigenschaft »Hidden« ist ein boolescher Wert, der angibt, ob die Datei versteckt ist.
722
Anhang B: WMI Klassenreferenz
InstallDate
InUseCount LastAccessed LastModified Manufacturer Name
Path Readable Status
System Target Version Writeable
Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InUseCount« gibt die Anzahl der geöffneten Instanzen einer Datei an. Die Eigenschaft »LastAccessed« gibt an, wann zuletzt auf die Datei zugegriffen wurde. Die Eigenschaft »LastModified« gibt an, wann die Datei zuletzt geändert wurde. Herstellerzeichenfolge aus der Versionsressource, falls vorhanden. Die Eigenschaft »Name« gibt den vererbten Namen an, der als Schlüssel einer logischen Datei innerhalb eines Dateisystems dient. Es müssen vollständige Pfadnamen angegeben werden. Beispiel: c:\winnt\system\win.ini Die Eigenschaft »Path« gibt den Pfad der Datei an, einschließlich umgekehrter Schrägstriche am Anfang und am Ende. Beispiel: \windows\system\ Die Eigenschaft »Readable« ist ein boolescher Wert, der angibt, ob die Datei gelesen werden kann. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »System« ist ein boolescher Wert, der angibt, ob die Datei eine Systemdatei ist. Die Eigenschaft »Target« gibt den Namen des Objekts für die Verknüpfung an. Versionszeichenfolge aus der Versionsressource, falls vorhanden. Die Eigenschaft »Writeable« ist ein boolescher Wert, der angibt, ob die Datei geschrieben werden kann.
B.211 Win32_ShortcutSAP Action Element
B.212 Win32_SoftwareElement
723
B.212 Win32_SoftwareElement Attributes BuildNumber Caption CodeSet Description IdentificationCode InstallDate
InstallState
LanguageEdition
Manufacturer Name OtherTargetOS
Path
SerialNumber SoftwareElementID
Die interne Kennung für die Kompilierung der Softwarekomponente. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Der von der Softwarekomponente verwendete Codesatz. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Der Wert dieser Eigenschaft gibt die Herstellerkennung der Softwarekomponente an, z.B. eine SKU (Stock Keeping Unit) oder eine Teilenummer. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Der Wert dieser Eigenschaft gibt die Sprachversion der Softwarekomponente an. Es sollten die in ISO 639 definierten Sprachcodes verwendet werden. Wenn es sich bei der Softwarekomponente um eine mehrsprachige oder internationale Version handelt, verwenden Sie die Multilingual-Zeichenfolge. Hersteller der Softwarekomponente. Der Name zum Identifizieren der Softwarekomponente. Die Eigenschaft »OtherTargetOS« gibt den Hersteller und den Betriebssystemtyp einer Softwarekomponente an, wenn die Eigenschaft »TargetOperatingSystem« den Wert 1 (»Andere«) hat. Wenn die Eigenschaft »TargetOperatingSystem« den Wert »Andere« hat, darf der Wert der Eigenschaft »OtherTargetOS« nicht Null sein. Wenn die Eigenschaft »TargetOperatingSystem« einen anderen Wert hat, muß der Wert der Eigenschaft »OtherTargetOS« Null sein. Die Eigenschaft »OtherTargetOS« gibt den Hersteller und den Betriebssystemtyp einer Softwarekomponente an, wenn die Eigenschaft »TargetOperatingSystem« den Wert 1 (»Andere«) hat. Wenn die Eigenschaft »TargetOperatingSystem« den Wert »Andere« hat, darf der Wert der Eigenschaft »OtherTargetOS« nicht Null sein. Wenn die Eigenschaft »TargetOperatingSystem« einen anderen Wert hat, muß der Wert der Eigenschaft »OtherTargetOS« Null sein. Die der Softwarekomponente zugewiesene serielle Nummer. Eine Kennung für die Softwarekomponente, die in Verbindung mit anderen Schlüsseln verwendet wird, um »CIM_SoftwareElement« eindeutig darzustellen.
724
Anhang B: WMI Klassenreferenz
SoftwareElementState
Status
TargetOperatingSystem
Version
Der »SoftwareElementState« wird in diesem Modell festgelegt, um verschiedene Zustände eines Softwareelements während seiner Lebensdauer anzuzeigen. – Ein Softwareelement im einsetzbaren Status zeigt die erforderlichen Details zum Verteilen und die Bedingungen und Vorgänge an, die zum Erstellen eines Softwareelements im installierbaren Status (z.B. der nächsten Status) Voraussetzung sind. – Ein Softwareelement im installierbaren Zustand zeigt die erforderlichen Details zum Installieren und die Bedingungen und Vorgänge an, die zum Erstellen eines Softwareelements im ausführbaren Status (z.B. der nächsten Status) Voraussetzung sind. – Ein Softwareelement im ausführbaren Status zeigt die erforderlichen Details zum Installieren und die Bedingungen und Vorgänge an, die zum Erstellen eines Softwareelements im ausführenden Status (z.B. der nächsten Status) Voraussetzung sind. – Ein Softwareelement im ausführenden Status zeigt die erforderlichen Details zum Überprüfen und Ausführen eines Startelements an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Eigenschaft »TargetOperatingSystem« ermöglicht das Festlegen der Betriebssystemumgebung. Die Version des Betriebssystems und die Architektur müssen angegeben werden, da der Wert dieser Eigenschaft die binäre Ausführung nicht sicherstellt. Diese Informationen ermöglichen die für eine Softwarekomponente erforderliche Betriebssystemebene eindeutig festzulegen. Versionsformat: .. oder .
B.213 Win32_SoftwareElementAction Action Element
B.214 Win32_SoftwareElementCheck Check Element Phase
Überprüfung. Element. Die Eigenschaft »Phase« gibt an, ob der aktuelle Status oder der nächste Status überprüft wird.
B.215 Win32_SoftwareElementCondition
725
B.215 Win32_SoftwareElementCondition result as Integer = Invoke
Caption CheckID CheckMode
Condition
Description Name SoftwareElementID SoftwareElementState TargetOperatingSystem Version
Die Aufrufmethode soll eine bestimmte Überprüfung auswerten. Einzelheiten bezüglich der Methode für die Auswertung einer bestimmten Überprüfung in einem CIM-Kontext werden von den nicht abstrakten Teilklassen »CIM_ Check« angezeigt. Die Ergebnisse dieser Auswertungsmethode basieren auf dem zurückgegebenen Wert. A 0 (Null) wird zurückgegeben, wenn die Bedingung erfüllt wurde. Alle anderen Werte zeigen an, daß die Bedingung nicht erfüllt wurde. Eine Kennung, die in Verbindung mit anderen Schlüsseln verwendet wird, um die Überprüfung eindeutig zu identifizieren. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Die Eigenschaft »CheckMode« zeigt an, ob eine Bedingung in der Umgebung erfüllt oder nicht erfüllt werden soll. Wenn dieser Wert True ist, soll diese Bedingung erfüllt werden (z.B. eine Datei soll sich auf dem Computer befinden) und daher der Aufruf() als True zurückgegeben werden. Wenn der Wert falsch ist, soll diese Bedingung nicht erfüllt werden (z.B. eine Datei soll sich nicht auf dem Computer befinden) und daher der Aufruf als falsch zurückgegeben werden. Eine Beschreibung der Objekte. Der Name zum Identifizieren der Softwarekomponente. Kennung für die Softwarekomponente. Der Status einer Softwarekomponente. Zielbetriebssystem der Softwarekomponente. Versionsformat: .. oder .
B.216 Win32_SoftwareElementResource Element Setting
726
Anhang B: WMI Klassenreferenz
B.217 Win32_SoftwareFeature result as Integer = Reinstall (ReinstallMode as Integer) ReinstallMode=Gibt den Neuinstallationsmodus an values = Array: 0=Datei fehlt 1=Ältere Dateiversion 2=Gleiche Dateiversion 3=Datei gleich 4=Datei überprüfen 5=Datei ersetzen 6=Benutzerdaten 7=Computerdaten 8=Verknüpfung 9=Paket result as Integer = Configure (InstallState as Integer) values = Array: 0=Standard 1=Ankündigen 2=Lokal 3=Nicht vorhanden 4=Quelle Accesses Attributes
Caption Description IdentifyingNumber InstallDate
InstallState
LastUse Name
Diese Methode installiert die zugeordnete Instanz von Win32_SoftwareFeature im angegebenen Neuinstallationsmodus erneut.
Diese Methode konfiguriert die zugeordnete Instanz von Win32_SoftwareFeature im angegebenen Installationsstatus.
Zeitpunkte, zu denen diese Softwarefunktion verwendet wurde. Remoteausführungsoption von irsEnum: ifrsFavorLocal = 0: Installiert Komponenten lokal. ifrsFavorSource = 1: Installiert Komponente zum Auführen von der Quelle (CD, Server). ifrsFollowParent = 2: Führt die Remoteausführungsoption der übergeordneten Funktion aus. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Produktidentifikation, z.B. eine serielle Softwarenummer oder die Nummer auf einem Hardwarechip. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Letzter Zeitpunkt, zu dem diese Softwarefunktion verwendet wurde. Die Eigenschaft »Name« definiert die lesbare Bezeichnung, die die Komponente im Kontext des Namespace eindeutig identifiziert.
B.218 Win32_SoftwareFeatureAction ProductName Status
Vendor Version
Hauptsächlich verwendeter Produktname. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Der Name des Produktherstellers; entspricht der Herstellereigenschaft im Produktobjekt im DMTF Solution Exchange Standard. Produktversionsinformationen; entspricht der Versionseigenschaft im Produktobjekt im DMTF Solution Exchange Standard.
B.218 Win32_SoftwareFeatureAction Action Element
B.219 Win32_SoftwareFeatureCheck Check Element
B.220 Win32_SoftwareFeatureParent Antecedent Dependent
»Antecedent« stellt das unabhängige Objekt in dieser Zuordnung dar. »Dependent« stellt das abhängige Objekt in dieser Zuordnung dar.
B.221 Win32_SoftwareFeatureSoftwareElements GroupComponent PartComponent
727
Gruppenkomponente. Teilkomponente.
728
Anhang B: WMI Klassenreferenz
B.222 Win32_SoundDevice result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. ConfigManagerErrorCode Gibt den Fehlercode des Win32-Konfigurations-Managers an. ConfigManagerUserConfig Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. CreationClassName Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Description Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. DeviceID Die Eigenschaft »DeviceID« enthält Informationen, die das Audiogerät eindeutig kennzeichnen. DMABufferSize Die Eigenschaft »DMABufferSize« gibt die Größe des DMA-Puffers an. Beispiel: 4 ErrorCleared Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. ErrorDescription Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge.
B.222 Win32_SoundDevice InstallDate
LastErrorCode Manufacturer MPU401Address Name
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
ProductName Status
729
Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des Audiogeräts an. Beispiel: Creative Labs Die Eigenschaft »MPU401Address« gibt die dem MPU-401-Anschluß des Audiogeräts zugeordnete E/A-Startadresse an. Beispiel: 300 Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »ProductName« gibt den Produktnamen des Audiogeräts an. Beispiel: Creative Labs SoundBlaster AWE64PNP Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
730
Anhang B: WMI Klassenreferenz
StatusInfo
SystemCreationClassName
SystemName
Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
B.223 Win32_StartupCommand Caption Command Description Location Name SettingID User
Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Die Eigenschaft »Command« enthält die Befehlszeile für den Startbefehl. Beispiel: c:\winnt\notepad.exe myfile.txt. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »Location« gibt den Pfad zum Startbefehl im Dateisystem an. Die Eigenschaft »Name« gibt den Dateinamen des Startbefehls an. Beispiel: FindFast Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »User« gibt den Benutzernamen an, für den der Befehl automatisch ausgeführt wird. Beispiel: mydomain\myname.
B.224 Win32_SubDirectory GroupComponent PartComponent
Die Referenz »GroupComponent« stellt das Win32-Verzeichnis dar, das die Eigenschaften des übergeordneten Verzeichnisses (Ordners) in der Zuordnung enthält. Die Referenz »PartComponent« stellt das Win32-Verzeichnis dar, das das Unterverzeichnis (den Unterordner) der Zuordnung enthält.
B.225 Win32_SystemAccount Caption Description
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an.
B.226 Win32_SystemBIOS Domain InstallDate Name SID
SIDType
Status
731
Die Eigenschaft »Domain« gibt den Namen der Windows-Domäne an, zu der das Systemkonto gehört. Beispiel: NA-SALES Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« gibt den Namen des Win32-Systemkontos in der Domäne an, der vom Domänenmitglied der Klasse definiert wurde. Die Eigenschaft »SID« enthält die SID (Security Identifier) für dieses Konto. Eine SID ist ein variabler Zeichenfolgenwert zum Identifizieren eines Vertrauensnehmers. Jedes Konto besitzt eine von einer Autorität (z.B. einer Windows-Domäne) ausgestellte eindeutige SID, die in einer Sicherheitsdatenbank gespeichert wird. Wenn sich ein Benutzer anmeldet, wird seine SID aus der Datenbank abgefragt und in das Zugriffstoken eingetragen. Anhand der SID im Zugriffstoken wird der Benutzer in allen nachfolgenden Interaktionen mit Windows-Sicherheit identifiziert. Wenn eine SID als eindeutige Kennung für einen Benutzer oder eine Gruppe verwendet wurde, kann sie nicht für einen anderen Benutzer bzw. eine andere Gruppe verwendet werden. Die Eigenschaft »SIDType« enthält Werte, die den SID-Typ angeben: SidTypeUser – Gibt eine Benutzer-SID an. SidTypeGroup – Gibt eine Gruppen-SID an. SidTypeDomain – Gibt eine Domänen-SID an. SidTypeAlias – Gibt eine Alias-SID an. SidTypeWellKnownGroup – Gibt eine SID für eine bekannte Gruppe an. SidTypeDeletedAccount – Gibt eine SID für ein gelöschtes Konto an. SidTypeInvalid – Gibt eine ungültige SID an. SidTypeUnknown – Gibt einen unbekannten SID-Typ an. SidTypeComputer – Gibt eine SID für einen Computer an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.226 Win32_SystemBIOS GroupComponent PartComponent
Die Referenz »GroupComponent« stellt das Win32_ComputerSystem dar, das das BIOS enthält. Die Referenz »PartComponent« stellt das Win32_BIOS dar, das im Computersystem enthalten ist.
732
Anhang B: WMI Klassenreferenz
B.227 Win32_SystemBootConfiguration Element
Die Referenz »Element« stellt das Computersystem dar, das die Startkonfiguration verwendet. Die Referenz »Setting« stellt eine Startkonfiguration für das Computersystem dar.
Setting
B.228 Win32_SystemDesktop Element Setting
Die Referenz »Element« stellt das Computersystem mit der Desktopkonfiguration dar. Die Referenz »Setting« stellt eine Desktopkonfiguration auf dem Computersystem dar.
B.229 Win32_SystemDevices GroupComponent PartComponent
Die Referenz »GroupComponent« stellt die Eigenschaften des Computersystems mit dem logischen Gerät dar. Die Referenz »PartComponent« stellt die Eigenschaften des logischen Geräts auf dem Computersystem dar.
B.230 Win32_SystemDriver result as Integer = StartService
Die Methode »StartService« startet den Dienst. Folgende Werte werden zurückgegeben: 0 – Die Anforderung wurde angenommen. 1 – Die Anforderung wird nicht unterstützt. 2 – Der Benutzer verfügt nicht über die erforderlichen Zugriffsrechte. 3 – Der Dienst kann nicht angehalten werden, da aktive Dienste von ihm abhängig sind. 4 – Der angeforderte Steuerungscode ist ungültig oder wird nicht angenommen. 5 – Der angeforderte Steuerungscode kann nicht an den Dienst gesendet werden, da der Dienststatus (Win32_BaseService:State) 0, 1 oder 2 ist. 6 – Der Dienst wurde nicht gestartet. 7 – Der Dienst hat nicht rechtzeitig auf die Startanforderung reagiert. 8 – Beim Starten des Dienstes ist ein unbekannter Fehler aufgetreten. 9 – Der Verzeichnispfad zur ausführbaren Datei wurde nicht gefunden. 10 – Der Dienst wird bereits ausgeführt. 11 – Die Datenbank zum Hinzufügen eines neuen Dienstes ist gesperrt. 12 – Eine für den Dienst erforderliche Abhängigkeit wurde vom System entfernt. 13 – Der für einen abhängigen Dienst erforderliche Dienst konnte nicht gefunden werden. 14 – Der Dienst wurde deaktiviert. 15 – Der Dienst verfügt nicht über die zum Ausführen erforderliche Authentifizierung. 16 – Der Dienst wurde entfernt. 17 – Für den Dienst ist kein Ausführungsthread vorhanden. 18 – Ringabhängigkeiten beim Starten des Dienstes.
B.230 Win32_SystemDriver
result as Integer = StopService
result as Integer = PauseService
result as Integer = ResumeService
result as Integer = InterrogateService
result as Integer = UserControlService (ControlCode as Integer)
733
19 – Ein Dienst mit dem gleichen Namen wird bereits ausgeführt. 20 – Ungültige Zeichen im Dienstnamen. 21 – An den Dienst wurden ungültige Parameter übergeben. 22 – Das Konto, unter dem der Dienst ausgeführt wird, ist ungültig oder verfügt nicht über die erforderlichen Rechte. 23 – Der Dienst ist in der Dienstdatenbank des Systems vorhanden. 24 – Der Dienst wurde angehalten. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|StartService Die Methode »StopService« hält den Dienst an. Der Wert 0 wird zurückgegeben, wenn der Dienst einwandfrei angehalten wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ControlService|dwControl|SERVICE_ CONTROL_STOP Die Methode »PauseService« hält den Dienst an. Der Wert 0 wird zurückgegeben, wenn die Anforderung angenommen wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ControlService|dwControl|SERVICE_ CONTROL_PAUSE Die Methode »ResumeService« setzt den Dienst fort. Der Wert 0 wird zurückgegeben, wenn die Anforderung angenommen wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ControlService|dwControl|SERVICE_ CONTROL_CONTINUE Die Methode »InterrogateService« erfordert, daß der Dienststatus aktualisiert wird. Der Wert 0 wird zurückgegeben, wenn die Anforderung angenommen wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ControlService|dwControl|SERVICE_ CONTROL_INTERROGATE Die Methode »UserControlService« sendet einen benutzerdefinierten Steuerungscode an einem Dienst. Der Wert 0 wird zurückgegeben, wenn die Anforderung angenommen wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|CreateService|dwDesiredAccess|SERVICE_ USER_DEFINED_CONTROL
734
Anhang B: WMI Klassenreferenz
result as Integer = Create (DesktopInteract as Boolean, DisplayName as String, ErrorControl as Integer, LoadOrderGroup as String, LoadOrderGroupDependencies as String, Name as String, PathName as String, ServiceDependencies as String, ServiceType as Integer, StartMode as String, StartName as String, StartPassword as String) ValueMap = Array: 0=Boot 1=System 2=Automatic 3=Manual 4=Disabled result as Integer = Change (DesktopInteract as Boolean, DisplayName as String, ErrorControl as Integer, LoadOrderGroup as String, LoadOrderGroupDependencies as String, PathName as String, ServiceDependencies as String, ServiceType as Integer, StartMode as String, StartName as String, StartPassword as String) ValueMap = Array: 0=Boot 1=System 2=Automatic 3=Manual 4=Disabled result as Integer = ChangeStartMode (StartMode as String) ValueMap = Array: 0=Boot 1=System 2=Automatic 3=Manual 4=Disabled
Die Methode »Create« erstellt einen neuen Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst einwandfrei erstellt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Der Parameter »Win32_LoadOrderGroup« stellt eine Gruppierung der Systemdienste dar, die die Ausführungsabhängigkeiten definieren. Die Dienste müssen in der in der Ladegruppe angegebenen Reihenfolge initialisiert werden, da sie voneinander abhängig sind. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|CreateService
Die Methode »Change« ändert einen Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst einwandfrei erstellt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Der Parameter »Win32_LoadOrderGroup« stellt eine Gruppierung der Systemdienste dar, die die Ausführungsabhängigkeiten definieren. Die Dienste müssen in der in der Ladegruppe angegebenen Reihenfolge initialisiert werden, da sie voneinander abhängig sind. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ChangeServiceConfig
Die Methode »ChangeStartMode« ändert den Startmodus für einen Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst geändert wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Service Functions|ChangeServiceConfig|dwStartType
B.230 Win32_SystemDriver result as Integer = Delete
AcceptPause
AcceptStop
Caption CreationClassName
Description DesktopInteract
DisplayName
ErrorControl
ExitCode
735
Die Methode »Delete« löscht einen vorhandenen Dienst. Der Wert 0 wird zurückgegeben, wenn der Dienst gelöscht wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Befehl wird von folgender API-Funktion bereitgestellt: Win32API|Service Functions|ChangeServiceConfig|DeleteService Die Eigenschaft »AcceptPause« gibt an, ob der Dienst angehalten werden kann. Werte: TRUE oder FALSE. TRUE gibt an, daß der Dienst angehalten werden kann. Die Eigenschaft »AcceptStop« gibt an, ob der Dienst beendet werden kann. Werte: TRUE oder FALSE. TRUE gibt an, daß der Dienst beendet werden kann. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DesktopInteract« gibt an, ob der Dienst mit Fenstern auf dem Desktop kommunizieren bzw. diese erstellen kann. Werte: TRUE oder FALSE. TRUE gibt an, daß der Dienst mit Fenstern auf dem Desktop kommunizieren oder diese erstellen kann. Die Eigenschaft »DisplayName« gibt den angezeigten Namen des Dienstes an. Die Zeichenfolge darf aus maximal 256 Zeichen bestehen. Für den Namen muß die Groß-/Kleinschreibung beachtet werden. Für den Vergleich von angezeigten Namen muß die Groß-/Kleinschreibung nicht beachtet werden. Einschränkungen: Akzeptiert den gleichen Wert wie die Eigenschaft »Name«. Beispiel: Atdisk. Wenn der Dienst nicht gestartet wird, wird in der Eigenschaft »ErrorControl« der Schweregrad des Fehlers angegeben. Der Wert gibt den Startvorgang an, wenn ein Fehler auftritt. Alle Fehler werden vom Computersystem protokolliert. Der Benutzer wird bei normalen Fehlern benachrichtigt (nicht bei Fehlern die ignoriert werden können). Bei schwerwiegenden Fehlern wird das System mit der letzten funktionierenden Konfiguration neu gestartet. Bei kritischen Fehlern wird versucht, das System mit einer funktionierenden Konfiguration neu zu starten. Die Eigenschaft »ExitCode« gibt einen Win32-Fehlercode an, der beim Starten oder Anhalten des Dienstes aufgetretene Probleme definiert. Der Wert der Eigenschaft ist ERROR_SERVICE_SPECIFIC_ERROR (1066), wenn der Fehler eindeutig von dieser Klasse dargestellt wird. Fehlerinformationen sind im Mitglied »ServiceSpecificExitCode« verfügbar. Der Dienst setzt den Wert auf »NO_ERROR«, wenn er ausgeführt oder ordnungsgemäß beendet wird.
736
Anhang B: WMI Klassenreferenz
InstallDate Name
PathName
ServiceSpecificExitCode
ServiceType Started StartMode
StartName
State Status
Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« gibt den Dienst und die verwalteten Funktionen an. Die Funktionen werden in der Eigenschaft »Description« des Objekts genauer beschrieben. Die Eigenschaft »PathName« enthält den vollqualifizierten Pfad zur binären Datei, die den Dienst implementiert. Beispiel: \SystemRoot\System32\drivers\afd.sys Die Eigenschaft »ServiceSpecificExitCode« gibt einen dienstspezifischen Fehlercode für Fehler an, die beim Starten oder Anhalten des Dienstes auftreten. Der Beendigungscode wird vom Dienst definiert, der von dieser Klasse dargestellt wird. Dieser Wert wird nur festgelegt, wenn der Wert in der Eigenschaft »ExitCode« ERROR_SERVICE_SPECIFIC_ERROR, 1066 ist. Die Eigenschaft »ServiceType« gibt den Diensttyp für aufrufende Prozeß an. Der boolesche Wert »Started« gibt an, ob der Dienst gestartet (TRUE) oder angehalten (FALSE) wurde. Die Eigenschaft »StartMode« gibt den Startmodus des Win32-Basisdienstes an. »Boot« gibt einen vom Ladeprogramm des Betriebssystems gestarteten Gerätetreiber an. Dieser Wert ist nur für Treiberdienste gültig. »Automatisch« gibt einen Dienst an, der vom Dienststeuerungs-Manager während des Systemstarts gestartet wird. »Manuell« gibt einen Dienst an, der vom DienststeuerungsManager gestartet wird, wenn die Funktion »StartService« aufgerufen wird. »Deaktiviert« gibt einen Dienst an, der nicht mehr gestartet werden kann. Die Eigenschaft »StartName« gibt den Kontonamen an, unter dem der Dienst ausgeführt wird. Abhängig vom Diensttyp kann der Kontoname folgendes Format haben: »Domänenname\Benutzername«. Der Dienstprozeß wird beim Ausführen mit einem dieser Formate protokolliert. Wenn das Konto zu einer integrierten Domäne gehört, kann ».\Benutzername« angegeben werden. Wenn NULL angegeben ist, wird der Dienst als lokales Systemkonto angemeldet. Für Kernel- -der Systemtreiber enthält »StartName« den Treiberobjektnamen (\Dateisystem\Rdr oder \Treiber\Xns), den das E/A-System verwendet, um die Gerätetreiber zu laden. Wenn NULL angegeben ist, wird der Treiber mit dem vom E/A-System basierend auf dem Dienstnamen erstellten Standardobjektnamen ausgeführt. Beispiel: DWDOM\Admin. Die Eigenschaft »State« gibt den aktuellen Status des Basisdienstes an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.231 Win32_SystemDriverPNPEntity SystemCreationClassName SystemName TagId
737
Der Typname des Systems, auf dem sich der Dienst befindet. Der Name des Systems, auf dem sich der Dienst befindet. Die Eigenschaft »TagId« gibt einen eindeutigen Tagwert für diesen Dienst in der Gruppe an. Der Wert 0 gibt an, daß dem Dienst kein Tag zugeordnet wurde. Ein Tag kann zum Anfordern eines Dienststarts in einer Ladegruppe verwendet werden, indem ein Taganforderungsvektor in der Registrierung unter folgender Adresse angegeben wird: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrde rList. Tags werden nur für Kerneltreiber und Dateisystemtreiber im Startoder Systemmodus ausgewertet.
B.231 Win32_SystemDriverPNPEntity Antecedent Dependent
Die Referenz »Antecedent« stellt das Plug & Play-Gerät dar, das vom Treiber gesteuert wird. Die Referenz »Dependent« stellt den Treiber dar, der das Plug & Play-Gerät unterstützt.
B.232 Win32_SystemEnclosure result as Integer = IsCompatible (ElementToCheck???)
AudibleAlarm BreachDescription
CableManagementStrategy
Caption ChassisTypes CreationClassName
Die Methode »IsCompatible« gibt an, ob das physikalische Element im physikalischen Paket enthalten ist oder hinzugefügt werden kann. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Boolescher Wert, der angibt, ob der Rahmen mit einem hörbaren Alarm ausgestattet ist. Die formfreie Zeichenfolge »BreachDescription« enthält weitere Informationen, wenn die Eigenschaft »SecurityBreach« eine Sicherheitsverletzung oder ein anderes sicherheitsbezogenes Ereignis anzeigt. Die formfreie Zeichenfolge »CableManagementStrategy« gibt an, wie die verschiedenen Kabel verbunden und gebündelt sind. Für viele Netzwerkund Stromkabel ist die Kabelverwaltung komplex. Diese Eigenschaft enthält Informationen, die bei der Montage des Rahmens hilfreich sind. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Eine Aufzählung, die den Typ des Chassis angibt. »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden.
738
Anhang B: WMI Klassenreferenz
CurrentRequiredOrProduced
Depth Description HeatGeneration Height HotSwappable
InstallDate
LockPresent Manufacturer Model Name
NumberOfPowerCords OtherIdentifyingInfo
PartNumber
PoweredOn
Vom Chassis erforderlicher Strom bei 120V. Wenn die Energie vom Chassis zur Verfügung gestellt wird (z.B. von einer USV), gibt diese Eigenschaft die Stromstärke als negative Zahl an. Die Tiefe des physikalischen Pakets in Zoll. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die vom Chassis generierte Wärme in BTU/Stunde. Die Höhe des physikalischen Pakets in Zoll. Ein physikalisches Paket kann in Betrieb ausgetauscht werden, wenn es durch ein physikalisch unterschiedliches, aber gleichwertiges, ersetzt werden kann, während der Container eingeschaltet ist. Ein Laufwerkpaket das mit SCA-Steckverbindungen eingefügt wird, ist z.B. in Betrieb austauschbar. Alle in Betrieb austauschbaren Pakete sind ersetzbar. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Boolescher Wert, der angibt, ob der Rahmen durch eine Sperre geschützt ist. Der Name der Organisation, die für die Herstellung des physikalischen Elements verantwortlich ist. Der Name der physikalischen Komponente. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Ganze Zahl, die die Anzahl der Stromkabel angibt, die mit dem Chassis verbunden sein müssen, damit alle Komponenten funktionieren. »OtherIdentifyingInfo« erfaßt außer Bestandskennzeichnungsinformationen auch Daten, die dazu verwendet werden können, physikalische Elemente zu identifizieren. Ein Beispiel dafür sind Barcodedaten, die mit einem Element verbunden sind, das auch über eine Bestandskennzeichnung verfügt. Hinweis: Wenn nur Barcodedaten verfügbar sind, die allein als Elementschlüssel verwendet werden können, ist diese Eigenschaft NULL und die Barcodedaten werden in der Eigenschaft »Tag« als Klassenschlüssel verwendet. Die Einzelteilnummer, die von der Organisation, die für die Produktion und Herstellung des physikalischen Elements verantwortlich ist, zugewiesen wurde. Boolescher Wert, der angibt, ob die physikalische Komponente eingeschaltet (TRUE) oder ausgeschaltet (FALSE) ist.
B.232 Win32_SystemEnclosure Removable
Replaceable
SecurityBreach
SecurityStatus SerialNumber ServiceDescriptions
ServicePhilosophy
SKU SMBIOSAssetTag Status
739
Ein physikalisches Paket ist austauschbar, wenn es aus seinem physikalischen Container entfernt werden kann, ohne die Funktion des Gesamtpakets zu beeinträchtigen. Ein Paket ist auch austauschbar, wenn das Gerät bei der Entnahme ausgeschaltet sein muß. Wenn das Gerät bei der Entnahme eingeschaltet sein kann, ist das Element in Betrieb austauschbar. Eine zusätzliche Batterie in einem Laptop ist z.B. austauschbar, und ein Laufwerkpaket, das mit SCA-Steckverbindungen eingefügt wird, ist in Betrieb austauschbar. Ein Laptopbildschirm und eine nicht redundante Stromversorgung sind nicht austauschbar. Wenn diese Komponenten entfernt werden, werden die Funktionen des Gesamtpakets beeinträchtigt. Ein physikalisches Paket ist austauschbar, wenn sie durch ein physikalisch unterschiedliches Element ersetzt (oder aktualisiert) werden kann. Bei einigen Computersystemen ist es z.B. möglich, den Hauptprozessorchip durch einen Chip mit einer höheren Taktfrequenz zu ersetzen. Ein weiteres Beispiel ist ein Energieversorgungspaket auf Gleitschienen. Alle austauschbaren Pakete sind durch Vererbung ersetzbar. Die Eigenschaft »SecurityBreach« gibt an, ob eine physikalische Sicherheitsverletzung nicht erfolgreich (Wert=4) oder erfolgreich (5) war. Es können auch die Werte »Unbekannt«, »Andere« oder »Keine Sicherheitsverletzung« angegeben werden. Die Eigenschaft »SecurityStatus« gibt die Sicherheitseinstellung für die externe Eingabe, z.B. über eine Tastatur, an. Eine Herstellernummer zum Identifizieren des physikalischen Elements. Formfreie Zeichenfolgen mit genaueren Erklärungen zu den Einträgen im Datenfeld »ServicePhilosophy«. Jeder Eintrag in diesem Array bezieht sich auf den Eintrag im Datenfeld »ServicePhilosophy« unter dem gleichen Index. »ServicePhilosophy« gibt an, ob das Rahmengehäuse von oben (Wert=2), von vorne (3), von hinten (4) oder von der Seite (5) bedienbar ist, ob es über Schiebefächer (6) oder entfernbare Seiten (7) verfügt und/oder ob es z.B. mit Rollen verschoben (8) werden kann. Die SKU-Nummer für das physikalische Element. Die Eigenschaft »SMBIOSAssetTag« gibt das Bestandskennzeichen des Systemgehäuses an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
740
Anhang B: WMI Klassenreferenz
Tag TypeDescriptions
Version VisibleAlarm Weight Width
Die Eigenschaft »Tag« enthält eine Zeichenfolge, die das Systemgehäuse eindeutig kennzeichnet. Beispiel: Systemgehäuse 1 Formfreie Zeichenfolgen mit weiteren Informationen zu den Einträgen im Datenfeld »ChassisTypes«. Jeder Eintrag in diesem Array bezieht sich auf den Eintrag im Datenfeld »ChassisTypes« unter dem gleichen Index. Eine Zeichenfolge, die die Version des physikalischen Elements angibt. Boolescher Wert, der angibt, ob der Rahmen mit einem sichtbaren Alarm ausgestattet ist. Das Gewicht des physikalischen Pakets in Pfund. Die Breite des physikalischen Pakets in Zoll.
B.233 Win32_SystemLoadOrderGroups GroupComponent PartComponent
Die Referenz »GroupComponent« stellt das Computersystem dar, das die Ladegruppe enthält. Die Referenz »PartComponent« stellt eine Ladegruppe auf dem Computersystem dar.
B.234 Win32_SystemLogicalMemoryConfiguration Element
Setting
Die Referenz »Element« stellt das Win32-Computersystem mit den Eigenschaften des Computersystems dar, auf dem sich die logische Speicherkonfiguration befindet. Die Referenz »Setting« stellt die logische Win32-Speicherkonfiguration dar, die die logische Speicherkonfiguration auf dem Computersystem enthält.
B.235 Win32_SystemMemoryResource Caption CreationClassName
CSCreationClassName CSName Description EndingAddress
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Der Erstellungsklassenname des bereichsdefinierenden Computersystems. Der Name des bereichsdefinierenden Computersystems. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »EndingAddress« enthält die letzte Adresse der im Speicher abgebildeten E/A.
B.236 Win32_SystemNetworkConnections InstallDate
Name
StartingAddress
Status
741
Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »StartingAddress« enthält die erste Adresse der im Speicher abgebildeten E/A. Dieser Wert sollte für die Hardwareressourcenkennung verwendet werden, um den abgebildeten E/A-Ressourcenschlüssel zu erstellen. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.236 Win32_SystemNetworkConnections GroupComponent PartComponent
Die Referenz »GroupComponent« stellt das mit dem Netzwerk verbundene Computersystem dar. Die Referenz »PartComponent« stellt die Netzwerkverbindung mit diesem Computersystem dar.
B.237 Win32_SystemOperatingSystem GroupComponent PartComponent PrimaryOS
Die Referenz »GroupComponent« stellt die Eigenschaften des Computersystems dar, auf dem das Betriebssystem installiert ist. Die Referenz »PartComponent« stellt die Eigenschaften des auf diesem Computersystem ausgeführten Betriebssystems dar. Boolescher Wert, der angibt, daß das Betriebssystem das Standardbetriebssystem ist.
742
Anhang B: WMI Klassenreferenz
B.238 Win32_SystemPartitions GroupComponent PartComponent
Die Referenz »GroupComponent« stellt das Win32-Computersystem mit den Eigenschaften des Computersystems dar, auf dem sich die Partition befindet. Die Referenz »PartComponent« stellt die Win32-Datenträgerpartition mit den Eigenschaften einer Datenträgerpartition auf dem Computersystem dar.
B.239 Win32_SystemProcesses GroupComponent PartComponent
Die Referenz »GroupComponent« stellt das Computersystem dar, auf dem der Prozeß ausgeführt wird. Die Referenz »PartComponent« stellt den Prozeß dar, der auf dem Computersystem ausgeführt wird.
B.240 Win32_SystemProgramGroups Element Setting
Die Referenz »Element« stellt das Computersystem dar, das die logische Programmgruppe enthält. Die Referenz »Setting« stellt eine logische Programmgruppe auf dem Computersystem dar.
B.241 Win32_SystemResources GroupComponent PartComponent
Die Referenz »GroupComponent« stellt das Computersystem dar, das die Ressource enthält. Die Referenz »PartComponent« stellt die auf dem Computersystem verfügbare Ressource (z.B. E/A-Dienste, Speicherressourcen) dar.
B.242 Win32_SystemServices GroupComponent PartComponent
Die Referenz »GroupComponent« stellt das Win32-Computersystem mit den Eigenschaften des Computersystems dar, auf dem sich der Dienst befindet. Die Referenz »PartComponent« stellt den Win32-Dienst mit dem Dienst dar, der sich auf dem Computersystem befindet.
B.243 Win32_SystemSetting
743
B.243 Win32_SystemSetting Element Setting
Die Referenz »Element« stellt die Eigenschaften des Computersystems dar, für das die Einstellung übernommen werden kann. Die Referenz »Setting« stellt die Eigenschaften der Einstellung dar, die für das Computersystem übernommen werden kann.
B.244 Win32_SystemSlot Caption ConnectorPinout ConnectorType CreationClassName
CurrentUsage Description HeightAllowed InstallDate
LengthAllowed Manufacturer MaxDataWidth Model Name
Number
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Eine formfreie Zeichenfolge, die die Pinkonfiguration und die Signalverwendung einer physikalischen Steckverbindung beschreibt. Die Eigenschaft »ConnectorType« gibt die physikalischen Attribute der Steckverbindung für den Steckplatz an. Beispiel: 2 25 (Male RS-232) »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Die Eigenschaft »CurrentUsage« gibt an, ob der Systemsteckplatz verwendet wird. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Maximale Höhe der Adapterkarte, die in den Steckplatz eingesteckt werden kann, in Zoll. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Maximale Länge der Adapterkarte, die in den Steckplatz eingesteckt werden kann, in Zoll. Der Name der Organisation, die für die Herstellung des physikalischen Elements verantwortlich ist. Maximale Busbreite der Adapterkarten, die in den Steckplatz eingesteckt werden können, in Bits. Der Name der physikalischen Komponente. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Die Eigenschaft »Number« gibt die Anzahl der physikalischen Steckplätze an. Dieser Wert kann als Index in einer Systemsteckplatztabelle verwendet werden, unabhängig davon ob der Steckplatz belegt ist oder nicht.
744
Anhang B: WMI Klassenreferenz
OtherIdentifyingInfo
PartNumber
PMESignal
PoweredOn PurposeDescription
SerialNumber Shared
SKU SlotDesignation SpecialPurpose
Status
SupportsHotPlug
»OtherIdentifyingInfo« erfaßt außer Bestandskennzeichnungsinformationen auch Daten, die dazu verwendet werden können, physikalische Elemente zu identifizieren. Ein Beispiel dafür sind Barcodedaten, die mit einem Element verbunden sind, das auch über eine Bestandskennzeichnung verfügt. Hinweis: Wenn nur Barcodedaten verfügbar sind, die allein als Elementschlüssel verwendet werden können, ist diese Eigenschaft NULL und die Barcodedaten werden in der Eigenschaft »Tag« als Klassenschlüssel verwendet. Die Einzelteilnummer, die von der Organisation, die für die Produktion und Herstellung des physikalischen Elements verantwortlich ist, zugewiesen wurde. Die Eigenschaft »PMESignal« gibt an, ob das PCI-Bus PME-Signal (Power Management Enabled) von diesem Steckplatz unterstützt wird. Die Eigenschaft ist FALSE für Nicht-PCI-Steckplätze. TRUE gibt an, daß das PMESignal unterstützt wird. Boolescher Wert, der angibt, ob die physikalische Komponente eingeschaltet (TRUE) oder ausgeschaltet (FALSE) ist. Eine formfreie Zeichenfolge, die beschreibt, daß der Steckplatz physikalisch eindeutig ist und möglicherweise spezielle Hardwaretypen enthält. Diese Eigenschaft ist nur gültig, wenn die entsprechende boolesche Eigenschaft »SpecialPurpose« TRUE ist. Eine Herstellernummer zum Identifizieren des physikalischen Elements. Die Eigenschaft »Shared« gibt an, ob mindestens zwei Steckplätze einen freigegebenen Steckplatz (z.B. einen PCI/EISA-Steckplatz) auf dem Motherboard gemeinsam verwenden. Werte: TRUE oder FALSE. TRUE gibt an, daß der Steckplatz freigegeben ist. Die SKU-Nummer für das physikalische Element. Die Eigenschaft »SlotDesignation« enthält eine SMBIOS-Zeichenfolge, die den Systemsteckplatz auf dem Motherboard angibt. Beispiel: PCI-1 Boolescher Wert, der angibt, daß dieser Steckplatz physikalische eindeutig ist und möglicherweise spezielle Hardwaretypen enthält; z.B. einen Steckplatz für Grafikprozessoren. TRUE gibt an, daß die Eigenschaft »PurposeDescription« den Steckplatz beschreibt. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Boolescher Wert, der angibt, ob das Austauschen von Adapterkarten während des Betriebs unterstützt wird.
B.245 Win32_SystemSystemDriver Tag ThermalRating VccMixedVoltageSupport Version VppMixedVoltageSupport
745
Die Eigenschaft »Tag« gibt den Systemsteckplatz an, der von einer Instanz dieser Klasse dargestellt wird. Beispiel: Systemsteckplatz 1 Maximale thermale Ableitung des Steckplatzes in Milliwatt. Ein Array mit ganzen Zahlen, das die von diesem Steckplatz unterstützte VCC-Spannung angibt. Eine Zeichenfolge, die die Version des physikalischen Elements angibt. Ein Array mit ganzen Zahlen, das die von diesem Steckplatz unterstützte VPP-Spannung angibt.
B.245 Win32_SystemSystemDriver GroupComponent PartComponent
Die Referenz »GroupComponent« stellt die Eigenschaften des Computersystems dar, auf dem der Treiber ausgeführt wird. Die Referenz »PartComponent« stellt den auf dem Computersystem ausgeführten Systemtreiber dar.
B.246 Win32_SystemTimeZone Element Setting
Die Referenz »Element« stellt das Computersystem dar, das die Zeitzone für das System überwacht. Die Referenz »Setting« die Eigenschaften der Zeitzone dar, die vom Computersystem überwacht wird.
B.247 Win32_SystemUsers GroupComponent PartComponent
Die Referenz »GroupComponent« stellt das Computersystem dar, das das Benutzerkonto enthält. Die Referenz »PartComponent« stellt das Benutzerkonto auf dem Computersystem dar.
746
Anhang B: WMI Klassenreferenz
B.248 Win32_TapeDrive result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Capabilities Funktionen des Geräts für den Medienzugriff. Wenn das Gerät z.B. »Zufälliger Zugriff«, »Austauschbare Medien« und »Automatische Reinigung« unterstützt, werden die Werte 3, 7 und 9 in das Datenfeld geschrieben. CapabilityDescriptions Formfreie Zeichenfolgen mit genaueren Erklärungen zu den im Datenfeld »Capabilities« angezeigten Funktionen des Geräts für den Medienzugriff. Jeder Eintrag in diesem Array bezieht sich auf den Eintrag im Datenfeld »Capabilities« unter dem gleichen Index. Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Compression Die Eigenschaft »Compression« gibt an, ob die Hardwarekomprimierung aktiviert oder deaktiviert ist. Werte: 1 (TRUE) oder 2 (FALSE). TRUE gibt an, daß die Hardwarekomprimierung aktiviert ist.
B.248 Win32_TapeDrive CompressionMethod
ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName DefaultBlockSize Description DeviceID ECC
EOTWarningZoneSize ErrorCleared ErrorDescription
ErrorMethodology FeaturesHigh FeaturesLow Id InstallDate
LastErrorCode Manufacturer MaxBlockSize MaxMediaSize MaxPartitionCount
747
Eine formfreie Zeichenfolge, die den Algorithmus oder das Programm angibt, der bzw. das die Komprimierung unterstützt. Wenn es nicht möglich ist, das Komprimierungsschema zu beschreiben, wird Folgendes angegeben: »Unbekannt«, wenn nicht bekannt ist, ob das Gerät die Komprimierung unterstützt. »Komprimiert«, wenn das Gerät die Komprimierung unterstützt, aber das Komprimierungsschema unbekannt ist. »Nicht komprimiert«, wenn das Gerät die Komprimierung nicht unterstützt. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Standardblockgröße für das Gerät in Byte. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das Bandlaufwerk von anderen Geräten im System unterscheidet. Die Eigenschaft »ECC« gibt an, ob das Gerät die Hardwarefehlerkorrektur unterstützt. Werte: 1 (True) oder 0 (False). True gibt an, daß die Hardwarefehlerkorrektur unterstützt wird. Die Eigenschaft »EOTWarningZoneSize » gibt die Zonengröße für die EOT-Warnung (End Of Tape) an. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die formfreie Zeichenfolge »ErrorMethodology« beschreibt den Typ der Fehlererkennung und -korrektur, der von diesem Gerät unterstützt wird. Die Eigenschaft »FeaturesHigh« gibt die hohen 32 Bits des Gerätefunktionsflags an. Die Eigenschaft »FeaturesLow« gibt die niedrigen 32 Bits des Gerätefunktionsflags an. Die Eigenschaft »Id« gibt den Herstellernamen des Win32 CD-ROMLaufwerks an. Beispiel: PLEXTOR CD-ROM PX-12CS 1.01 Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des Win32 CDROM-Laufwerks an. Beispiel: PLEXTOR Maximale Größe in Byte des Mediums, auf das zugegriffen wird. Maximale Größe in KB des vom Gerät unterstützten Mediums. Die Eigenschaft »MaxPartitionCount« gibt die maximale Partitionsanzahl für das Bandlaufwerk an.
748
Anhang B: WMI Klassenreferenz
MediaType MinBlockSize Name
NeedsCleaning
NumberOfMediaSupported
Padding
PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
ReportSetMarks
Die Eigenschaft »MediaType« gibt den Medientyp an, der von diesem Gerät verwendet wird. In dieser Klasse ist der Wert »Bandlaufwerk«. Minimale Größe in Byte des Mediums, auf das zugegriffen wird. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Boolescher Wert, der angibt, daß das Laufwerk gereinigt werden muß. In der Eigenschaft »Capabilities« wird angegeben, ob eine automatische oder manuelle Reinigung möglich ist. Wenn das Gerät für den Medienzugriff mehrere individuelle Medien unterstützt, gibt diese Eigenschaft die maximale Medienanzahl an, die unterstützt oder eingelegt werden kann. Wenn das Gerät für den Medienzugriff mehrere individuelle Medien unterstützt, gibt diese Eigenschaft die maximale Medienanzahl an, die unterstützt oder eingelegt werden kann. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die Eigenschaft »ReportSetMarks« gibt an, ob Markierungsmeldungen aktiviert sind. Die Markierungsmeldung verwendet ein spezialisiertes Element, das keine Benutzerdaten enthält. Dieses Element enthält ein Segmentierungsschema, das den Dateimarkierungen hierarchisch übergeordnet ist. Markierungsmeldungen ermöglichen schnelleres Positionieren auf Bändern mit hoher Kapazität. Werte: 1 (True) oder 0 (False). True gibt an, daß Markierungsmeldungen aktiviert sind.
B.249 Win32_TemperatureProbe Status
StatusInfo
SystemCreationClassName
SystemName
749
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
B.249 Win32_TemperatureProbe result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
750
Anhang B: WMI Klassenreferenz
Accuracy
Availability
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName CurrentReading Description DeviceID ErrorCleared ErrorDescription
InstallDate
IsLinear LastErrorCode LowerThresholdCritical
LowerThresholdFatal
LowerThresholdNonCritical
Gibt die Sensorgenauigkeit für die gemessene Eigenschaft plus/minus einem Hunderstel Prozent an. Der Wert der gemessenen physikalischen Eigenschaft wird anhand der Toleranz, der Auflösung und Genauigkeit berechnet. Die Genauigkeit ist davon abhängig, ob das Gerät linear über seinem dynamischen Bereich liegt. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Der aktuelle vom Sensor angegebene Wert. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den Temperaturtest kennzeichnet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Gibt an, daß der Sensor linear über seinem dynamischen Bereich liegt. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert.
B.249 Win32_TemperatureProbe MaxReadable MinReadable Name
NominalReading NormalMax NormalMin PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
Resolution
Status
751
»MaxReadable« gibt den größten Wert der gemessenen Eigenschaft an, der vom numerischen Sensor gelesen werden kann. »MinReadable« gibt den kleinsten Wert der gemessenen Eigenschaft an, der vom numerischen Sensor gelesen werden kann. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. »NominalReading« gibt den normalen bzw. erwarteten Wert für den numerischen Sensor an. »NormalMax« gibt den normalen maximalen Bereich für den numerischen Sensor an. »NormalMin« gibt den normalen minimalen Wert für den numerischen Sensor an. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. »Resolution« gibt die Sensorfunktion zum Beheben von Unterschieden in der gemessenen Eigenschaft an. Dieser Wert ist davon abhängig, ob das Gerät linear über seinem dynamischen Bereich liegt. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
752
Anhang B: WMI Klassenreferenz
StatusInfo
Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Gibt die Sensortoleranz für die gemessene Eigenschaft an. Der Wert der gemessenen physikalischen Eigenschaft wird anhand der Toleranz, der Auflösung und Genauigkeit berechnet. Die Toleranz ist davon abhängig, ob das Gerät linear über seinem dynamischen Bereich liegt. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert.
SystemCreationClassName
SystemName
Tolerance
UpperThresholdCritical
UpperThresholdFatal
UpperThresholdNonCritical
B.250 Win32_Thread Caption CreationClassName
CSCreationClassName CSName Description ElapsedTime ExecutionState
Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. »CreationClassName« gibt den Namen der Klasse oder Teilklasse an, die beim Erstellen einer Instanz verwendet wird. Wenn diese Eigenschaft mit anderen Schlüsseleigenschaften dieser Klasse verwendet wird, können alle Instanzen der Klasse und der Teilklassen eindeutig erkannt werden. Der Erstellungsklassenname des bereichsdefinierenden Computersystems. Der Name des bereichsdefinierenden Computersystems. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »ElapsedTime« gibt die Ausführungszeit für den Thread seit der Erstellung an. Gibt den aktuellen Zustand des Threads an. Mögliche Werte sind: Bereit (2), wird ausgeführt (3) und blockiert (4).
B.250 Win32_Thread Handle
InstallDate
KernelModeTime Name
OSCreationClassName OSName Priority
PriorityBase
ProcessCreationClassName ProcessHandle
StartAddress
Status
753
Die Eigenschaft »Handle« gibt ein Handle für einen Thread an. Das Handle hat standardmäßig volle Zugriffsrechte. Das Handle kann mit dem korrekten Sicherheitszugriff in jeder Funktion verwendet werden, die ein Threadhandle akzeptiert. Abhängig vom angegebenen Vererbungsflag, kann dieses Handle von untergeordneten Prozessen geerbt werden. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Zeit im Kernelmodus in Millisekunden. Wenn diese Informationen nicht verfügbar sind, verwenden Sie den Wert 0. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Der Erstellungsklassenname des bereichsdefinierenden Betriebssystems. Der Name des bereichsdefinierenden Betriebssystems. Die Eigenschaft »Priority« gibt die dynamische Priorität des Threads an. Jeder Thread besitzt eine dynamische Priorität, die der Planungsdienst verwendet, um zu bestimmen, welcher Thread ausgeführt wird. Ursprünglich ist die dynamische Priorität eines Threads identisch mit seiner Basispriorität. Das System kann die dynamische Priorität erhöhen oder verringern, um sicherzustellen, daß er reagiert. Die Priorität von Threads mit einer Basispriorität zwischen 16 und 31 wird nicht erhöht; nur die Priorität von Threads mit einer Basispriorität zwischen 0 und 15. Höhere Werte geben höhere Prioritäten an. Die Eigenschaft »PriorityBase« gibt die aktuelle Basispriorität eines Threads an. Das Betriebssystem kann die dynamische Priorität über die Basispriorität des Threads erhöhen, wenn der Thread die Benutzereingabe verarbeitet, oder verringern. Die Eigenschaft »PriorityBase« kann einen Wert zwischen 0 und 31 enthalten. Der Erstellungsklassenname des bereichsdefinierenden Prozesses. Die Eigenschaft »ProcessHandle« gibt den Prozeß an, der den Thread erstellt hat. Der Inhalt dieser Eigenschaft kann von Win32 API-Komponenten verwendet werden. Die Eigenschaft »StartAddress« gibt die Startadresse des Threads an. Da eine Anwendung mit dem entsprechenden Zugriff den Threadkontext ändern kann, ist dieser Wert nur eine ungefähre Angabe der Startadresse. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
754
Anhang B: WMI Klassenreferenz
ThreadState
ThreadWaitReason
UserModeTime
Die Eigenschaft »ThreadState« gibt den aktuellen Ausführungsstatus des Threads an. Ein Thread kann einen von acht Werten besitzen: Initialisiert (vom Microkernel erkannt), Bereit (zum Ausführen auf dem nächsten verfügbaren Prozessor vorbereitet), Wird ausgeführt, Standby (nur ein Thread kann sich in diesem Status befinden), Abgebrochen, Warten (nicht für den Prozessor bereit), Übergang (wartet auf andere Ressourcen) und Unbekannt. Die Eigenschaft »ThreadWaitReason« gibt die Ursache für den Wartezustand des Threads an. Der Wert ist nur gültig, wenn das Mitglied »ThreadState« auf Warten gesetzt ist. Mögliche Ursachen: Der Thread wartet auf das Ausführen (0 oder 7), auf eine freie Seite (1 oder 8), auf eine eingehende Seite (2 oder 9), auf eine Poolzuordnung (3 oder 10), auf eine Ausführungsverzögerung (4 oder 11), auf das Anhalten (5 oder 12), auf eine Benutzeranforderung (6 oder 13), auf ein High-Ereignispaar (14), auf ein Low-Ereignispaar (15), auf einen LPC-Empfang (16), auf eine LPC-Antwort (17), auf virtuellen Speicher (18) oder auf eine ausgehende Seite (19). Ereignispaare ermöglichen die Kommunikation mit geschützten Teilsystemen. Zeit im Benutzermodus in Millisekunden. Wenn diese Informationen nicht verfügbar sind, verwenden Sie den Wert 0.
B.251 Win32_TimeZone Bias
Caption DaylightBias
DaylightDay DaylightDayOfWeek DaylightHour DaylightMillisecond DaylightMinute
Die Eigenschaft »Bias« gibt den aktuellen Zeitunterschied für lokale Zeitübersetzungen an. Der Zeitunterschied ist der Unterschied zwischen UTC (Coordinated Universal Time) und der lokalen Zeit. Die Übersetzungen zwischen UTC und der lokalen Zeit (UTC) basieren auf folgendem Format: UTC = lokale Zeit + Zeitunterschied. Dieses Mitglied ist erforderlich. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Die Eigenschaft »DaylightBias« gibt einen Zeitunterschiedswert für lokale Zeitübersetzungen an, wenn die Sommerzeit aktiv ist. Dieses Mitglied wird ignoriert, wenn für »DaylightDay« kein Wert angegeben ist. Der Wert dieses Mitglieds wird zum Mitglied »Bias« hinzugefügt, um den Zeitunterschied während der Sommerzeit anzugeben. In den meisten Zeitzonen ist dieser Wert -60. Die Eigenschaft »DaylightDay« gibt den Tag an, an dem das Betriebssystem von Normalzeit auf Sommerzeit umgestellt wird. Beispiel: 15 Die Eigenschaft »DaylightDayOfWeek« gibt den Wochentag an, an dem das Betriebssystem von Normalzeit auf Sommerzeit umgestellt wird. Beispiel: 1 Die Eigenschaft »DaylightHour« gibt die Stunde an, zu der das Betriebssystem von Normalzeit auf Sommerzeit umgestellt wird. Beispiel: 2 Die Eigenschaft »DaylightMillisecond« gibt die Millisekunde an, zu der das Betriebssystem von Normalzeit auf Sommerzeit umgestellt wird. Die Eigenschaft »DaylightMinute« gibt die Minute an, zu der das Betriebssystem von Normalzeit auf Sommerzeit umgestellt wird. Beispiel: 59
B.252 Win32_Trustee DaylightMonth DaylightName
DaylightSecond DaylightYear Description SettingID StandardBias
StandardDay StandardDayOfWeek StandardHour StandardMillisecond StandardMinute StandardMonth StandardName StandardSecond StandardYear
Die Eigenschaft »DaylightMonth« gibt den Monat an, in dem das Betriebssystem von Normalzeit auf Sommerzeit umgestellt wird. Beispiel: 1 = Januar Die Eigenschaft »DaylightName« gibt den Namen der Zeitzone an, die angezeigt wird, wenn die Sommerzeit aktiv ist. Beispiel: EDT = Eastern Sommerzeit. Die Eigenschaft »DaylightSecond« gibt die Sekunde an, zu der das Betriebssystem von Normalzeit auf Sommerzeit umgestellt wird. Beispiel: 59 Die Eigenschaft »DaylightYear« gibt das Jahr an, wenn die Sommerzeit aktiv ist. Dieses Mitglied ist nicht erforderlich. Beispiel: 1997 Eine Textbeschreibung des Objekts »CIM_Setting«. Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »StandardBias« gibt einen Zeitunterschiedswert für lokale Zeitübersetzungen an, wenn die Sommerzeit nicht aktiv ist. Dieses Mitglied wird ignoriert, wenn für »StandardDay« kein Wert angegeben ist. Der Wert dieses Mitglieds wird zum Mitglied »Bias« hinzugefügt, um den Zeitunterschied während der Normalzeit anzugeben. Beispiel: 0 Die Eigenschaft »StandardDay« gibt den Tag an, an dem das Betriebssystem von Sommerzeit auf Normalzeit umgestellt wird. Beispiel: 31 Die Eigenschaft »StandardDayOfWeek« gibt den Wochentag an, an dem das Betriebssystem von Sommerzeit auf Normalzeit umgestellt wird. Beispiel: 1 Die Eigenschaft »StandardHour« gibt die Stunde an, zu der das Betriebssystem von Sommerzeit auf Normalzeit umgestellt wird. Beispiel: 11 Die Eigenschaft »StandardMillisecond« gibt die Millisekunde an, zu der das Betriebssystem von Sommerzeit auf Normalzeit umgestellt wird. Die Eigenschaft »StandardMinute« gibt die Minute an, zu der das Betriebssystem von Sommerzeit auf Normalzeit umgestellt wird. Beispiel: 59 Die Eigenschaft »StandardMonth« gibt die Monat an, in dem das Betriebssystem von Sommerzeit auf Normalzeit umgestellt wird. Beispiel: 12 Die Eigenschaft »StandardName« gibt den Namen der Zeitzone an, die angezeigt wird, wenn die Normalzeit aktiv ist. Beispiel: EST = Eastern Normalzeit. Die Eigenschaft »StandardSecond« gibt die Sekunde an, zu der das Betriebssystem von Sommerzeit auf Normalzeit umgestellt wird. Beispiel: 59 Die Eigenschaft »StandardYear« gibt das Jahr an, wenn die Normalzeit aktiv ist. Dieses Mitglied ist nicht erforderlich. Beispiel: 1997
B.252 Win32_Trustee Domain Name SID SidLength SIDString
755
Der Domänenteil des Kontos. Der Namensteil des Kontos. Die SID des Vertrauensnehmers. Die Länge der SID in Byte. Die SID des Vertrauensnehmers im Zeichenfolgenformat (z.B. S-1-1-0)
756
Anhang B: WMI Klassenreferenz
B.253 Win32_TypeLibraryAction result as Integer = Invoke
ActionID Caption Cost Description Direction
Language LibID Name SoftwareElementID SoftwareElementState TargetOperatingSystem Version
Die Methode »Invoke« führt einen bestimmten Vorgang aus. Die Ausführungsdetails hängen von der Implementierung ab. Die Ergebnisse der Methode basieren auf dem Rückgabewert. Der Wert 0 wird zurückgegeben, wenn die Bedingung erfüllt wurde. Der Wert 1 wird zurückgegeben, wenn die Methode nicht unterstützt wird. Jeder andere Wert zeigt an, daß die Bedingung nicht erfüllt wurde. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Die Eigenschaft »ActionID« ist eine eindeutige Kennung, die einem bestimmten Vorgang für eine Softwarekomponente zugeordnet ist. Eine Beschreibung des Objekts. Die Eigenschaft »Direction« gibt an, ob ein CIM_Action-Objekt Teil einer Vorgangssequenz ist, um in den nächsten Status, z.B. »Installieren«, der aktuellen Softwarekomponente zu wechseln oder um sie zu entfernen, z.B. »Deinstallieren«. Sprache der Typenbibliothek. Die GUID für die Bibliothek. Der Name zum Identifizieren der Softwarekomponente. »SoftwareElementID« gibt eine ID für die Softwarekomponente an. »SoftwareElementState« gibt den Status der Softwarekomponente an. »TargetOperatingSystem« gibt das Zielbetriebssystem der Softwarekomponente an. Versionsformat: .. oder .
B.254 Win32_USBController result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
B.254 Win32_USBController result as Integer = Reset
Availability
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID ErrorCleared ErrorDescription
InstallDate
LastErrorCode Manufacturer MaxNumberControlled Name
PNPDeviceID
757
Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den USBController von anderen Geräten im System unterscheidet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »Manufacturer« gibt den Hersteller des USB-Controllers an. Beispiel: Acme Maximale Anzahl der direkt adressierbaren Einheiten, die vom Controller unterstützt werden. Wenn der Wert unbekannt ist, geben Sie 0 ein. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
758
Anhang B: WMI Klassenreferenz
PowerManagementCapabilities
PowerManagementSupported
ProtocolSupported Status
StatusInfo
SystemCreationClassName
SystemName
TimeOfLastReset
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Das vom Controller zum Zugriff auf gesteuerte Geräte verwendete Protokoll. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »TimeOfLastReset« gibt an, wann der Controller zuletzt zurückgesetzt (ausgeschalten oder erneut initialisiert) wurde.
B.255 Win32_USBControllerDevice
759
B.255 Win32_USBControllerDevice AccessState
Antecedent Dependent NegotiatedDataWidth
NegotiatedSpeed
NumberOfHardResets NumberOfSoftResets
Die Eigenschaft »AccessState« gibt an, ob der Controller das Gerät steuert oder darauf zugreift (Wert=1) oder nicht (Wert=2). Es kann auch der Wert »Unbekannt« (0) definiert werden. Diese Informationen sind erforderlich, wenn ein logisches Gerät von mehreren Controllern gesteuert werden kann. Die Referenz »CIM_USBController« stellt den USB-Controller (Universal Serial Bus) für das Gerät dar. Die Referenz »Dependent« stellt das POTS-Modem dar, das den seriellen Anschluß verwendet. Wenn mehrere Bus- und/oder Verbindungsdatenbreiten möglich sind, definiert die Eigenschaft »NegotiatedDataWidth« die verwendete Datenbreite in Bits. Wenn die Datenbreite nicht ausgehandelt wurde oder diese Informationen nicht verfügbar sind, sollte der Wert der Eigenschaft 0 sein. Wenn mehrere Bus- und/oder Verbindungsgeschwindigkeiten möglich sind, definiert die Eigenschaft »NegotiatedSpeed« die verwendete Geschwindigkeit in Bits pro Sekunde. Wenn die Verbindungs- oder Busgeschwindigkeit nicht ausgehandelt wurde oder diese Informationen nicht verfügbar sind, sollte der Wert der Eigenschaft 0 sein. Anzahl der vom Controller ausgelösten Kaltstarts. Anzahl der vom Controller ausgelösten Warmstarts.
B.256 Win32_UninterruptiblePowerSupply result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer = Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
760
Anhang B: WMI Klassenreferenz
ActiveInputVoltage
Availability
BatteryInstalled
CanTurnOffRemotely
Caption CommandFile ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID ErrorCleared ErrorDescription
EstimatedChargeRemaining EstimatedRunTime
FirstMessageDelay
»ActiveInputVoltage« gibt den aktuellen Eingangsspannungsbereich an. Mit den Werten 3, 4 oder 5 können die Bereiche 1 und 2 bzw. beide Bereiche festgelegt werden. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »BatteryInstalled« legt fest, ob eine Batterie im Gerät installiert ist. Werte: TRUE oder FALSE. TRUE gibt an, daß eine Batterie installiert ist. Die Eigenschaft »CanTurnOffRemotely« bestimmt, ob die Energieversorgung remote ausgeschaltet werden kann. Werte: TRUE oder FALSE. TRUE gibt an, daß die Energieversorgung remote ausgeschaltet werden kann. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »CommandFile« gibt den Namen der Befehlsdatei an, die unmittelbar vor dem Herunterfahren ausgeführt wird. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die das USV-Gerät von anderen Geräten im System unterscheidet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Geschätzte Restladung einer USV, die Batterien verwendet, in Prozent. »EstimatedRunTime« schätzt, wie lange es noch dauert, bis die Batterie und der Generator unter der gegenwärtigen Belastung leer sind, wenn die Stromversorgung unterbrochen oder abgeschaltet ist. Die Eigenschaft »FirstMessageDelay« gibt den Zeitraum zwischen dem ursprünglichen Stromausfall und der ersten an den Benutzer gesendeten Meldung an. Wenn die Stromversorgung innerhalb des in »FirstMessageDelay« angegebenen Zeitraums wiederhergestellt wird, wird keine Meldung gesendet, obwohl das Ereignis protokolliert wird.
B.256 Win32_UninterruptiblePowerSupply InstallDate
IsSwitchingSupply LastErrorCode LowBatterySignal
MessageInterval Name
PNPDeviceID PowerFailSignal
PowerManagementCapabilities
PowerManagementSupported
Range1InputFrequencyHigh Range1InputFrequencyLow Range1InputVoltageHigh
761
Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Boolescher Wert. Die Energieversorgung erfolgt mittels eines Schaltnetzteils; nicht linear. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Eigenschaft »LowBatterySignal« gibt an, ob die Energieversorgung bei niedrigem Batteriestatus ein Signal ausgibt. Werte: TRUE oder FALSE. TRUE gibt an, daß ein Signal ausgegeben wird. Die Eigenschaft »MessageInterval« gibt den Zeitraum zwischen den Meldungen an, die bei Stromausfall angezeigt werden. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Die Eigenschaft »PowerFailSignal« gibt an, ob die Energieversorgung bei Stromausfall ein Signal ausgibt. Werte: TRUE oder FALSE. TRUE gibt an, daß ein Signal ausgegeben wird. Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Die hohe Frequenz (in Hertz) im Eingangsfrequenzbereich 1 der Energieversorgung. Der Wert Null gibt DC an. Die niedrige Frequenz (in Hertz) im Eingangsfrequenzbereich 1 der Energieversorgung. Der Wert Null gibt DC an. Wenn die Spannung (in Millivolts) über den in der Eigenschaft »Range1InputVoltageHigh« angegebenen Wert ansteigt, wird sie von der UPS ausgeglichen. Der Wert 0 gibt an, daß die Spannung unbekannt ist.
762
Anhang B: WMI Klassenreferenz
Range1InputVoltageLow
Range2InputFrequencyHigh Range2InputFrequencyLow Range2InputVoltageHigh
Range2InputVoltageLow
RemainingCapacityStatus
Status
StatusInfo
SystemCreationClassName
SystemName
Wenn die Spannung (in Millivolts) unter den in der Eigenschaft »Range1InputVoltageLow« angegebenen Wert fällt, wird sie von der UPS ausgeglichen. Der Wert 0 gibt an, daß die Spannung unbekannt ist. Die hohe Frequenz (in Hertz) im Eingangsfrequenzbereich 2 der Energieversorgung. Der Wert Null gibt DC an. Die niedrige Frequenz (in Hertz) im Eingangsfrequenzbereich 2 der Energieversorgung. Der Wert Null gibt DC an. Wenn die Spannung (in Millivolts) über den in der Eigenschaft »Range2InputVoltageHigh« angegebenen Wert ansteigt, wird sie von der UPS ausgeglichen. Der Wert 0 gibt an, daß die Spannung unbekannt ist. Wenn die Spannung (in Millivolts) unter den in der Eigenschaft »Range2InputVoltageLow« angegebenen Wert fällt, wird sie von der UPS ausgeglichen. Der Wert 0 gibt an, daß die Spannung unbekannt ist. Zeigt die verbleibende Kapazität der USV-Batterien und des Generators an. Der Wert »Normal« (2) gibt an, daß die geschätzte Restlaufzeit über dem niedrigen Energiestatus von zwei Minuten liegt. Der Wert »Niedrig« (3) gibt an, daß die Restlaufzeit unter dem von USV definierten niedrigen Energiestatus liegt. Der Wert »Leer« (4) bedeutet, daß die USV die gegenwärtige Belastung nicht aufrechterhalten kann, wenn die Stromversorgung entweder verloren oder gegenwärtig unterbrochen ist. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
B.257 Win32_UserAccount TimeOnBackup
TotalOutputPower TypeOfRangeSwitching
UPSPort
763
»TimeOnBackup« gibt den Zeitraum in Sekunden an, der seit dem letzten Umschalten der UPS zu Batterie- bzw. Generatorbetrieb oder seit dem letzten Neustart der UPS verstrichen ist. Der Wert Null wird zurückgegeben, wenn die UPS aktiv ist. Stellt die gesamte Ausgabeleistung der Energieversorgung in Milliwatts dar. Der Wert 0 bedeutet unbekannt. »TypeOfRangeSwitching« beschreibt den in dieser Energieversorgung implementierten Eingangsspannungswechsel. Es kann z.B. der Wert 4 »Automatisch wechseln« angegeben werden. Die Eigenschaft »UPSPort« gibt den seriellen Anschluß an, mit dem die UPS verbunden ist. Beispiel: COM1:
B.257 Win32_UserAccount AccountType
Caption Description Disabled
Domain FullName InstallDate
Lockout
Die Eigenschaft »AccountType« enthält Flags, die die Merkmale eines Win32Benutzerkontos beschreiben: UF_TEMP_DUPLICATE_ACCOUNT – Lokales Benutzerkonto für Benutzer, deren primäres Konto sich in einer anderen Domäne befindet. Dieses Konto gewährt den Zugriff auf diese Domäne, aber nicht auf Domänen, die dieser Domäne vertrauen. UF_NORMAL_ACCOUNT – Standardkontotyp eines typischen Benutzers. UF_INTERDOMAIN_TRUST_ACCOUNT – Konto für eine Systemdomäne, die anderen Domänen vertraut. UF_WORKSTATION_TRUST_ACCOUNT – Konto für einen Windows NT/Windows 2000-Computer, der ein Mitglied dieser Domäne ist. UF_SERVER_TRUST_ACCOUNT – Konto für einen Reservedomänencontroller, der ein Mitglied dieser Domäne ist. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »Disabled« legt fest, ob das Win32-Benutzerkonto deaktiviert ist. Werte: TRUE oder FALSE. TRUE gibt an, daß das Benutzerkonto deaktiviert ist. Die Eigenschaft »Domain« gibt die Namen der Windows-Domäne an, zu der das Benutzerkonto gehört. Beispiel: NA-SALES Die Eigenschaft »FullName« gibt den vollständigen Namen des lokalen Benutzers an. Beispiel: Thomas Williams Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »Lockout« legt fest, ob das Benutzerkonto auf dem Win32System gesperrt ist. Werte: TRUE oder FALSE. TRUE gibt an, daß das Benutzerkonto gesperrt ist.
764
Anhang B: WMI Klassenreferenz
Name
PasswordChangeable
PasswordExpires
PasswordRequired
SID
SIDType
Status
Die Eigenschaft »Name« gibt den Namen des Win32-Benutzerkontos in der Domäne an, der vom Domänenmitglied der Klasse definiert wurde. Beispiel: thomasw Die Eigenschaft »PasswordChangeable« gibt an, ob das Kennwort für das Win32-Benutzerkonto geändert werden kann. Werte: TRUE oder FALSE. TRUE gibt an, daß das Kennwort geändert werden kann. Die Eigenschaft »PasswordExpires« gibt an, ob das Kennwort für das Win32Benutzerkonto abläuft. Werte: TRUE oder FALSE. TRUE gibt an, daß das Kennwort abläuft. Die Eigenschaft »PasswordRequired« gibt an, ob ein Kennwort für das Win32-Benutzerkonto erforderlich ist. Werte: TRUE oder FALSE. TRUE gibt an, daß ein Kennwort erforderlich ist. Die Eigenschaft »SID« enthält die SID (Security Identifier) für dieses Konto. Eine SID ist ein variabler Zeichenfolgenwert zum Identifizieren eines Vertrauensnehmers. Jedes Konto besitzt eine von einer Autorität (z.B. einer Windows-Domäne) ausgestellte eindeutige SID, die in einer Sicherheitsdatenbank gespeichert wird. Wenn sich ein Benutzer anmeldet, wird seine SID aus der Datenbank abgefragt und in das Zugriffstoken eingetragen. Anhand der SID im Zugriffstoken wird der Benutzer in allen nachfolgenden Interaktionen mit Windows-Sicherheit identifiziert. Wenn eine SID als eindeutige Kennung für einen Benutzer oder eine Gruppe verwendet wurde, kann sie nicht für einen anderen Benutzer bzw. eine andere Gruppe verwendet werden. Die Eigenschaft »SIDType« enthält Werte, die den SID-Typ angeben: SidTypeUser – Gibt eine Benutzer-SID an. SidTypeGroup – Gibt eine GruppenSID an. SidTypeDomain – Gibt eine Domänen-SID an. SidTypeAlias – Gibt eine Alias-SID an. SidTypeWellKnownGroup – Gibt eine SID für eine bekannte Gruppe an. SidTypeDeletedAccount – Gibt eine SID für ein gelöschtes Konto an. SidTypeInvalid – Gibt eine ungültige SID an. SidTypeUnknown – Gibt einen unbekannten SID-Typ an. SidTypeComputer – Gibt eine SID für einen Computer an. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMARTaktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.
B.258 Win32_UserDesktop
765
B.258 Win32_UserDesktop Element Setting
Die Referenz »Element« stellt das Benutzerkonto dar, dessen Desktop von der Eigenschaft »Settings« dieser Klasse angepaßt werden kann. Die Referenz »Setting« stellt die Desktopeinstellungen dar, mit denen der Desktop eines Benutzerkontos angepaßt wird.
B.259 Win32_VideoConfiguration ActualColorResolution AdapterChipType AdapterCompatibility
AdapterDACType AdapterDescription AdapterRAM AdapterType BitsPerPixel
Caption ColorPlanes
ColorTableEntries
Description
Die Eigenschaft »ActualColorResolution« gibt die aktuelle Farbtiefe der Videoanzeige an. Die Eigenschaft »AdapterChipType« enthält den Namen des Adapterchips. Beispiel: s3 Die Eigenschaft »AdapterCompatibility« gibt den Namen des Adapterherstellers an. Mit diesem Namen kann die Gerätekompatibilität mit den Anforderungen des Computersystems verglichen werden. Die Eigenschaft »AdapterDACType« gibt den Namen des im Adapter verwendeten DAC-Chips an. Die Eigenschaft »AdapterDescription« beschreibt den Videoadapter. Die Eigenschaft »AdapterRAM« gibt die Speichergröße des Videoadapters an. Beispiel: 16777216 Die Eigenschaft »AdapterType« gibt den Typ des Videoadapters an. Zeichensatz: Alphanumerisch Die Eigenschaft »BitsPerPixel« gibt die Anzahl der Bits pro Pixel für die Anzeige an. Dieser Wert kann zur aktuellen benutzerdefinierten Videoeinstellung (Eigenschaft »ActualColorResolution«) skaliert werden. Beispiel: 8 Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Die Eigenschaft »ColorPlanes« gibt die aktuelle Anzahl der für die Videowiedergabe verwendeten Farbebenen an. Eine Farbebene ist eine Methode zum Darstellen der Pixelfarben. Anstatt jedem Pixel einen RGB-Wert zuzuweisen, wird die Grafik in die primären Farbkomponenten (Rot, Grün, Blau) aufgeteilt und in separaten Ebenen gespeichert. Diese Methode ermöglicht größer Farbtiefen auf 8- und 16-Bit-Videosystemen. Die meisten Grafiksysteme verfügen über eine Bitbreite, die zum Speichern von Farbtiefeninformationen ausreicht; d.h. es ist nur eine Farbebene erforderlich. Beispiel: 1 Die Eigenschaft »ColorTableEntries« gibt die Anzahl der Farbindizes für eine Videoanzeige an. Diese Eigenschaft wird verwendet, wenn das Gerät eine Farbtiefe von höchstens 8 Bit pro Pixel hat. Für Geräte mit größeren Farbtiefen wird -1 zurückgegeben. Beispiel: 256 Eine Textbeschreibung des Objekts »CIM_Setting«.
766
Anhang B: WMI Klassenreferenz
DeviceSpecificPens
DriverDate HorizontalResolution InfFilename InfSection InstalledDisplayDrivers MonitorManufacturer MonitorType Name PixelsPerXLogicalInch PixelsPerYLogicalInch RefreshRate ScanMode ScreenHeight ScreenWidth SettingID SystemPaletteEntries
VerticalResolution
Die Eigenschaft »DeviceSpecificPens« gibt die aktuelle Anzahl der gerätespezifischen Pens an. Der Wert 0xFFFFFFFF zeigt an, daß Pens nicht unterstützt werden. Pens werden verwendet, um die Linien eines Polygons zu zeichnen. Beispiel: 3 Die Eigenschaft »DriverDate« gibt das Datum und die Uhrzeit der Installation des aktuellen Videotreibers an. Die Eigenschaft »HorizontalResolution« gibt die aktuelle Pixelanzahl der Anzeige in horizontaler Richtung (X-Achse) an. Beispiel: 1024 Die Eigenschaft »InfFilename« gibt den Pfad zur INF-Datei des Videotreibers an. Beispiel: C:\WINNT\SYSTEM32\DRIVERS Die Eigenschaft »InfSection« gibt den Abschnitt in der INF-Datei an, der die Win32-Videoinformationen enthält. Die Eigenschaft »InstalledDisplayDrivers« gibt den Namen des installierten Videotreibers an. Die Eigenschaft »MonitorManufacturer« gibt den Namen des Bildschirmherstellers an. Example: NEC Die Eigenschaft »MonitorType« gibt den Modellnamen des Bildschirms an. Beispiel: NEC 5FGp Die Eigenschaft »Name« enthält den Namen der Videokonfigurationsklasse. Die Eigenschaft »PixelsPerXLogicalInch« gibt die Anzahl der Pixel pro logischem Zoll entlang der X-Achse (horizontal) an. Die Eigenschaft »PixelsPerYLogicalInch« gibt die Anzahl der Pixel pro logischem Zoll entlang der Y-Achse (vertikal) an. Die Eigenschaft »RefreshRate« gibt die Aktualisierungsrate der Videokonfiguration an. Die Werte 0 oder 1 geben eine Standardrate an. Beispiel: 72 Die Eigenschaft »ScanMode« legt den Modus für den Bildschirm fest. Die Eigenschaft »ScreenHeight« gibt die Höhe des physikalischen Bildschirms an. Die Eigenschaft »ScreenWidth« gibt die Breite des physikalischen Bildschirms an. Die Kennung für das Objekt »CIM_Setting«. Die Eigenschaft »SystemPaletteEntries« gibt die aktuelle Anzahl der Farbindexeinträge an, die für das System reserviert sind. Dieser Wert ist nur für Einstellungen gültig, die eine indizierte Palette verwenden. Indizierte Paletten werden nicht für Farbtiefen über 8 Bits pro Pixel verwendet. Wenn die Farbtiefe 8 Bits pro Pixel überschreitet, ist dieser Wert Null. Beispiel: 20 Die Eigenschaft »VerticalResolution« gibt die aktuelle Pixelanzahl der Anzeige in vertikaler Richtung (Y-Achse) an. Beispiel: 768
B.260 Win32_VideoController
767
B.260 Win32_VideoController result as Integer =SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnerDate/Time) giesparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. result as Integer =Reset Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. AcceleratorCapabilities Ein Array mit ganzen Zahlen, das die Grafik- und 3-D-Funktionen des Videocontrollers angibt. AdapterCompatibility Die Eigenschaft »AdapterCompatibility« enthält die allgemeinen Chips für den Controller, um Kompatibilitäten mit dem System zu vergleichen. AdapterDACType Die Eigenschaft »AdapterDACType« enthält eine Zeichenfolge des Namens oder der Kennung des DAC-Chips (Digital-to-Analog Converter). Zeichensatz: Alphanumerisch. AdapterRAM Die Eigenschaft »AdapterRAM« gibt die Speichergröße des Videoadapters an. Beispiel: 64000 Availability Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. CapabilityDescriptions Formfreie Zeichenfolgen mit genaueren Erklärungen zu den im Datenfeld »Capabilities« angezeigten Videobeschleunigungsfunktionen. Jeder Eintrag in diesem Array bezieht sich auf den Eintrag im Datenfeld »Capabilities« unter dem gleichen Index. Caption Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an.
768
Anhang B: WMI Klassenreferenz
ColorTableEntries
ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName CurrentBitsPerPixel CurrentHorizontalResolution CurrentNumberOfColors CurrentNumberOfColumns CurrentNumberOfRows CurrentRefreshRate
CurrentScanMode CurrentVerticalResolution Description DeviceID DeviceSpecificPens
DitherType
DriverDate DriverVersion ErrorCleared ErrorDescription
Die Eigenschaft »ColorTableEntries« gibt die Größe der Systemfarbtabelle an. Die Farbtiefe des Geräts darf 8 Bits pro Pixel nicht überschreiten, da die Eigenschaft sonst nicht festgelegt wird. Beispiel: 256. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Die Anzahl der zum Anzeigen der Pixel verwendeten Bits. Aktuelle Anzahl der horizontalen Pixel. Anzahl der von der aktuellen Auflösung unterstützten Farben. Im Textmodus wird die Anzahl der Spalten für den Videocontroller angegeben. Geben Sie ansonsten 0 ein. Im Textmodus wird die Anzahl der Zeilen für den Videocontroller angegeben. Geben Sie ansonsten 0 ein. Die Eigenschaft »CurrentRefreshRate« gibt die Bildwiederholfrequenz des Videocontrollers an. Der Wert 0 gibt an, daß die Standardfrequenz und 0xFFFFFFFF gibt an, daß die optimale Frequenz verwendet wird. Aktueller Scanmodus. »Zeilensprung« (Wert=3) oder »Ohne Zeilensprung« (4) kann definiert werden. Aktuelle Anzahl der vertikalen Pixel. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine eindeutige Kennung für den Videocontroller. Die Eigenschaft »DeviceSpecificPens« gibt die aktuelle Anzahl der gerätespezifischen Pens an. 0xffff gibt an, daß das Gerät keine Pens unterstützt. Beispiel: 3 Die Eigenschaft »DitherType« gibt den Farbmischungstyp des Videocontrollers an. Diese Eigenschaft kann vordefinierte Werte oder treiberdefinierte Werte größer als oder gleich 256 enthalten. Wenn die S/WFarbmischung gewählt wird, verwendet der Controller eine Methode zum Definieren der Grenzen zwischen Schwarz-, Weiß- und Grauskalierungen. Die S/W-Farbmischung kann nicht auf Bilder (z.B. gescannte Fotos) mit kontinuierlichen Farbverläufen angewendet werden. Die Eigenschaft »DriverDate« gibt das Datum und die Uhrzeit der letzten Änderung des installierten Videotreibers an. Die Eigenschaft »DriverVersion« gibt die Versionsnummer des Videotreibers an. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge.
B.260 Win32_VideoController ICMIntent
ICMMethod
InfFilename InfSection InstallDate
InstalledDisplayDrivers LastErrorCode MaxMemorySupported MaxNumberControlled MaxRefreshRate MinRefreshRate Monochrome Name
NumberOfColorPlanes NumberOfVideoPages PNPDeviceID
769
Die Eigenschaft »ICMIntent« gibt den Wert einer der drei möglichen ICM-Methoden an, die standardmäßig verwendet werden sollten. Diese Eigenschaft wird hauptsächlich für Nicht-ICM-Anwendungen verwendet und kann einen vordefinierten oder einen treiberdefinierten Wert größer als oder gleich 256 enthalten. Farbanpassung basierend auf Sättigung ist die beste Methode für Geschäftsgrafiken, wenn keine Farbmischung verwendet werden kann. Farbanpassung basierend auf Kontrast ist die beste Methode für gescannte Bilder oder Fotos, wenn Farbmischung verwendet wird. Die für die exakte Farbwiedergabe optimierte Farbanpassung ist die beste Methode für Firmenlogos und andere Bilder, für die genaue Farben erforderlich sind. Die Eigenschaft »ICMMethod« gibt die Verwendung von ICM an. Für Nicht-ICM-Anwendungen gibt diese Eigenschaft an, ob ICM aktiviert ist. Für ICM-Anwendungen wird dieses Mitglied überprüft, um die ICMUnterstützung zu bestimmen. Diese Eigenschaft kann einen vordefinierten oder einen treiberdefinierten Wert größer als oder gleich 256 enthalten. Die Werte legen fest, welches System die Farbanpassung verarbeitet. Die Eigenschaft »InfFilename« gibt den Pfad zur INF-Datei des Videoadapters an. Beispiel: C:\WINNT\SYSTEM32\DRIVERS Die Eigenschaft »InfSection« gibt den Abschnitt mit den Win32Videoinformationen in der INF-Datei an. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Die Eigenschaft »InstalledDisplayDrivers« gibt den Namen des installierten Bildschirmtreibers an. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Maximal unterstützter Speicher in Bytes. Maximale Anzahl der direkt adressierbaren Einheiten, die vom Controller unterstützt werden. Wenn der Wert unbekannt ist, geben Sie 0 ein. Maximale Aktualisierungsrate des Videocontrollers in Hertz. Minimale Aktualisierungsrate des Videocontrollers in Hertz. Die Eigenschaft »Monochrome« gibt an, ob Bilder in Graustufen oder Farbe angezeigt werden. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. Aktuelle Anzahl der Farbebenen. Geben Sie 0 ein, wenn der Wert für die aktuelle Videokonfiguration nicht verwendbar ist. Anzahl der Videoseiten, die von der aktuellen Auflösung und dem verfügbaren Speicher unterstützt werden. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b
770
Anhang B: WMI Klassenreferenz
PowerManagementCapabilities
PowerManagementSupported
ProtocolSupported ReservedSystemPaletteEntries
SpecificationVersion Status
StatusInfo
SystemCreationClassName
Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. Das vom Controller zum Zugriff auf gesteuerte Geräte verwendete Protokoll. Die Eigenschaft »ReservedSystemPaletteEntries« gibt die aktuelle Anzahl der Farbindexeinträge an, die für das System reserviert sind. Dieser Wert ist nur für Einstellungen gültig, die eine indizierte Palette verwenden. Indizierte Paletten werden nicht für Farbtiefen über 8 Bits pro Pixel verwendet. Wenn die Farbtiefe 8 Bits pro Pixel überschreitet, ist dieser Wert Null. Beispiel: 20 Die Eigenschaft »SpecificationVersion« gibt die Versionsnummer der Initialisierungsdatenspezifikation an, auf der die Struktur basiert. Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft.
B.261 Win32_VideoSettings SystemName
SystemPaletteEntries
TimeOfLastReset VideoArchitecture VideoMemoryType VideoMode VideoModeDescription
VideoProcessor
771
Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Eigenschaft »SystemPaletteEntries« gibt die aktuelle Anzahl der Farbindexeinträge an, die für das System reserviert sind. Dieser Wert ist nur für Einstellungen gültig, die eine indizierte Palette verwenden. Indizierte Paletten werden nicht für Farbtiefen über 8 Bits pro Pixel verwendet. Wenn die Farbtiefe 8 Bits pro Pixel überschreitet, ist dieser Wert Null. Beispiel: 20 Die Eigenschaft »TimeOfLastReset« gibt an, wann der Controller zuletzt zurückgesetzt (ausgeschalten oder erneut initialisiert) wurde. Die Videoarchitektur, z.B. können VGA (Wert=5) oder PC-98 (160) angegeben werden. Eine Aufzählung, die den Typ des Videospeichers angibt. Aktueller Videomodus. Die Eigenschaft »VideoModeDescription« gibt die aktuelle Auflösung, die Farbe und die Scanmoduseinstellungen des Videocontrollers an. Beispiel: 1024x768, 256 Farben. Eine formfreie Zeichenfolge, die den Videoprozessor beschreibt.
B.261 Win32_VideoSettings Element Setting
Die Referenz »Element« stellt den Win32-Videocontroller dar, der die Eigenschaften des Videocontrollers enthält, für den eine Videoeinstellung verwendet werden kann. Die Referenz »Setting« stellt eine CIM-Videocontrollerauflösung dar, die die Einstellungen für den Videocontroller enthält.
B.262 Win32_VoltageProbe result as Integer = SetPowerState »SetPowerState« definiert den gewünschten Energiestatus und den Zeitpunkt, zu dem das Gerät in diesen Status versetzt wird, indem für den Pa(PowerState as Integer, Time as rameter »PowerState« folgende Werte festgelegt werden: 1=»Kein EnergieDate/Time) sparmodus«, 2=»Energiesparmodus – Niedriger Energiestatus«, 3=»Energiesparmodus – Standby«, 4=»Energiesparmodus – Standby«, 5=»Energiezyklus« oder 6=»Ausschalten«. Der Parameter »Time« gibt für alle Statusänderungen, außer 5 »Energiezyklus«, den Zeitpunkt zum Aktivieren des Energiestatus als Datum-/Uhrzeit PowerState« auf 5 »Energiezyklus« gesetzt ist, gibt der Parameter »Time« den Zeitpunkt zum Reaktivieren des Geräts an. Das Ausschalten erfolgt unmittelbar. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an.
772
Anhang B: WMI Klassenreferenz
result as Integer = Reset
Accuracy
Availability
Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName CurrentReading Description DeviceID ErrorCleared ErrorDescription
InstallDate
IsLinear LastErrorCode LowerThresholdCritical
LowerThresholdFatal
Fordert das Zurücksetzen eines logischen Geräts an. Der Wert 0 wird zurückgegeben, wenn die Anforderung einwandfrei ausgeführt wurde, der Wert 1, wenn die Anforderung nicht unterstützt wird. Andere Werte zeigen einen Fehler an. Gibt die Sensorgenauigkeit für die gemessene Eigenschaft plus/minus einem Hunderstel Prozent an. Der Wert der gemessenen physikalischen Eigenschaft wird anhand der Toleranz, der Auflösung und Genauigkeit berechnet. Die Genauigkeit ist davon abhängig, ob das Gerät linear über seinem dynamischen Bereich liegt. Die Verfügbarkeit und der Status des Geräts. Die Eigenschaft »Availability« gibt z.B. an, daß das Gerät aktiv ist und sich nicht im Energiesparmodus (Wert=3) befindet. Die Energiesparmodi sind wie folgt definiert: Der Wert 13 (»Energiesparmodus – Unbekannt«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber der genaue Status unbekannt ist; 14 (»Niedriger Energiestatus«) gibt an, daß sich das Gerät im Energiesparmodus befindet, aber noch funktioniert und die Leistung verringert ist; 15 (»Standby«) gibt an, daß das Gerät nicht funktioniert, aber schnell reaktiviert werden kann; 17 (»Warnung«) gibt an, daß sich das Gerät sowohl in einem Warnungs- als auch in einem Energiesparmodus befindet. Die Eigenschaft »Caption« gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an. Gibt den Fehlercode des Win32-Konfigurations-Managers an. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Gibt an, ob das Gerät eine benutzerdefinierte Konfiguration verwendet. Der aktuelle vom Sensor angegebene Wert. Die Eigenschaft »Description« gibt eine Textbeschreibung des Objekts an. Die Eigenschaft »DeviceID« enthält eine Zeichenfolge, die den Spannungstest kennzeichnet. Die Eigenschaft »ErrorCleared« ist ein boolescher Wert, der angibt, daß der in der Eigenschaft »LastErrorCode« angezeigte Fehler behoben ist. Die formfreie Zeichenfolge »ErrorDescription« enthält Informationen über den in der Eigenschaft »LastErrorCode« angezeigten Fehler und eventuelle Korrekturvorgänge. Die Eigenschaft »InstallDate« gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein. Gibt an, daß der Sensor linear über seinem dynamischen Bereich liegt. »LastErrorCode« gibt den letzten Fehlercode des logischen Geräts an. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert.
B.262 Win32_VoltageProbe LowerThresholdNonCritical
MaxReadable MinReadable Name
NominalReading NormalMax NormalMin PNPDeviceID PowerManagementCapabilities
PowerManagementSupported
Resolution
773
Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert. »MaxReadable« gibt den größten Wert der gemessenen Eigenschaft an, der vom numerischen Sensor gelesen werden kann. »MinReadable« gibt den kleinsten Wert der gemessenen Eigenschaft an, der vom numerischen Sensor gelesen werden kann. Die Eigenschaft »Name« definiert die Objektbezeichnung. Wenn sich diese Eigenschaft in einer Teilklasse befindet, kann sie als Schlüsseleigenschaft überschrieben werden. »NominalReading« gibt den normalen bzw. erwarteten Wert für den numerischen Sensor an. »NormalMax« gibt den normalen maximalen Bereich für den numerischen Sensor an. »NormalMin« gibt den normalen minimalen Wert für den numerischen Sensor an. Gibt die Win32 Plug & Play-Gerätekennung des logischen Geräts an. Beispiel: *PNP030b Gibt die energiespezifischen Funktionen des logischen Geräts an. Die Werte 0=»Unbekannt«, 1=»Nicht unterstützt« und 2=»Deaktiviert« können angegeben werden. Der Wert 3=»Aktiviert« gibt an, daß die Energieverwaltungsfunktionen aktiviert sind, aber die exakte Funktion unbekannt ist oder die Informationen nicht verfügbar sind. »Automatische Energiesparmodi« (4) gibt an, daß ein Gerät seinen Energiestatus basierend auf dem Energieverbrauch oder anderen Kriterien ändern kann. »Energiestatus einstellbar« (5) gibt an, daß die Methode »SetPowerState« unterstützt wird. »Energiezyklus unterstützt« (6) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) ausgeführt werden kann. »Geplante Reaktivierung unterstützt« (7) gibt an, daß die Methode »SetPowerState« mit dem Parameter »PowerState« 5 (»Energiezyklus«) und dem Parameter »Time« ausgeführt werden kann. Gibt an, daß die Energieverwaltung für das Gerät verfügbar ist (es kann z.B. in den Standbymodus versetzt werden). Dieser boolesche Wert zeigt an, daß die Energie des logischen Geräts verwaltet werden kann, nicht, daß die Energieverwaltungsfunktionen aktiviert sind. »Resolution« gibt die Sensorfunktion zum Beheben von Unterschieden in der gemessenen Eigenschaft an. Dieser Wert ist davon abhängig, ob das Gerät linear über seinem dynamischen Bereich liegt.
774
Anhang B: WMI Klassenreferenz
Status
StatusInfo
SystemCreationClassName
SystemName
Tolerance
UpperThresholdCritical
UpperThresholdFatal
UpperThresholdNonCritical
Die Eigenschaft »Status« gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände definiert werden. Betriebsbereite Zustände sind »OK«, »Heruntergestuft« und »Künftiger Fehler«. »Künftiger Fehler« gibt an, daß ein Element ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite Zustände sind »Fehler«, »Starten«, »Beenden« und »Dienst«. »Dienst« kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Die Zeichenfolge »StatusInfo« gibt den Gerätestatus an: »Aktiviert« (Wert = 3), »Deaktiviert« (4), »Andere« (1) oder »Unbekannt« (2). Der Wert 5 (»Nicht anwendbar«) wird verwendet, wenn diese Eigenschaft nicht auf das logische Gerät zutrifft. Gibt die Sensortoleranz für die gemessene Eigenschaft an. Der Wert der gemessenen physikalischen Eigenschaft wird anhand der Toleranz, der Auflösung und Genauigkeit berechnet. Die Toleranz ist davon abhängig, ob das Gerät linear über seinem dynamischen Bereich liegt. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert. Die Schwellenwerte des Sensors geben die Bereiche (min. und max. Werte) an, mit denen bestimmt wird, ob der Sensor unter normalen, unkritischen, kritischen oder sehr kritischen Bedingungen funktioniert.
B.263 Win32_WMIElementSetting Element Setting
Die Referenz »Element« in »Win32_WMIElementSetting« stellt den Win32-Dienst dar, der WMI-Eigenschaften verwendet. Die Referenz »Setting« in »Win32_WMIElementSetting« stellt die für den Win32-Dienst verfügbaren WMI-Einstellungen dar.
B.264 Win32_WMISetting
775
B.264 Win32_WMISetting ASPScriptDefaultNamespace
ASPScriptEnabled
AutorecoverMofs
AutoStartWin9X BackupInterval BackupLastTime BuildVersion Caption DatabaseDirectory DatabaseMaxSize Description EnableAnonWin9xConnections
EnableEvents
EnableStartupHeapPreallocation
Die Eigenschaft »ASPScriptDefaultNamespace« enthält den Namespace, der von API-Scriptaufrufen verwendet wird, wenn kein Namespace angegeben wird. Die Eigenschaft »ASPScriptEnabled« gibt an, ob WMI-Scripting auf (ASP) verwendet werden kann. Diese Eigenschaft ist nur für Windows NT 4.0-Systeme gültig. Für Windows 2000-Systeme ist WMI-Scripting auf ASP immer zugelassen. Die Eigenschaft »AutoRecoverMofs« enthält eine Liste der vollqualifizierten MOF-Dateinamen, die zum Initialisieren und Wiederherstellen des WMI-Repository verwendet werden. Die Liste legt die Reihenfolge fest, in der die MOF-Dateien kompiliert werden. Die Eigenschaft »AutoStartWin9X« gibt an, wann WMI auf Win9XSystemen gestartet wird. Die Eigenschaft »BackupInterval« gibt den Zeitraum zwischen den WMI-Datenbanksicherungen an. Die Eigenschaft »BackupLastTime« gibt an, wann die letzte Sicherung ausgeführt wurde. Die Eigenschaft »BuildVersion« enthält die Versionsinformationen des installierten WMI-Dienstes. Eine kurze Textbeschreibung (eine Zeile) des Objekts »CIM_Setting«. Die Eigenschaft »DatabaseDirectory« gibt den Pfad zum Verzeichnis mit dem WMI-Repository an. Die Eigenschaft »DatabaseMaxSize« gibt die maximale Größe des WMIRepository an. Eine Textbeschreibung des Objekts »CIM_Setting«. Die Eigenschaft »EnableAnonWin9xConnections« gibt an, ob der Remotezugriff ohne Sicherheitsüberprüfung erlaubt ist (nur für Windows 95- und Windows 98-Systeme). Die Eigenschaft »EnableEvents« gibt an, ob das WMI-Ereignisteilsystem aktiviert ist. Werte: TRUE oder FALSE, TRUE gibt an, daß das Ereignisteilsystem aktiviert ist. Die Eigenschaft »EnableStartupHeapPreallocation« gibt an, ob WMI mit einem reservierten Heap gestartet wird. Werte: TRUE oder FALSE. TRUE gibt an, daß beim Initialisieren von WMI ein reservierter Heap in der von »LastStartupHeapPreallocation« angegebenen Größe erstellt wird.
776
Anhang B: WMI Klassenreferenz
HighThresholdOnClientObjects
HighThresholdOnEvents
InstallationDirectory
LastStartupHeapPreallocation LoggingDirectory LoggingLevel LowThresholdOnClientObjects
LowThresholdOnEvents
Die Eigenschaft »HighThresholdOnClientObjects« gibt die maximale Rate an, mit der von Anbieter erstellte Objekte an Clients gesendet werden. Um Geschwindigkeitsunterschiede zwischen Anbietern und Clients auszugleichen, werden Objekte vor dem Senden von WMI in Warteschlangen aufgenommen. Das Hinzufügen von neuen Objekten in die Warteschlange wird verlangsamt, wenn der niedrige Schwellenwert erreicht wird. Wenn der von dieser Eigenschaft angegebene hohe Schwellenwert erreicht wird, werden von Anbietern keine Objekte mehr angenommen und »WBEM_E_OUT_OF_MEMORY« wird an die Clients zurückgegeben. Die Eigenschaft »HighThresholdOnEvents« gibt die maximale Rate an, mit der Ereignisse an Clients gesendet werden. Um Geschwindigkeitsunterschiede zwischen Anbietern und Clients auszugleichen, werden Ereignisse vor dem Senden von WMI in Warteschlangen aufgenommen. Das Hinzufügen von neuen Ereignissen in die Warteschlange wird verlangsamt, wenn der niedrige Schwellenwert erreicht wird. Wenn der von dieser Eigenschaft angegebene hohe Schwellenwert erreicht wird, werden von Anbietern keine Ereignisse mehr angenommen und »WBEM_E_OUT_OF_MEMORY« wird an die Clients zurückgegeben. Die Eigenschaft »InstallationDirectory« enthält den Pfad zum Verzeichnis, in dem die WMI-Software installiert wurde. Standardverzeichnis: \system32\wbem. Die Eigenschaft »LastStartupHeapPreallocation« gibt die Größe des reservierten Heaps an, der von WMI während der Initialisierung erstellt wird. Die Eigenschaft »LoggingDirectory« gibt den Pfad zum Verzeichnis mit dem WMI-Systemprotokolldateien an. Die Eigenschaft »LoggingLevel« gibt an, ob die Ereignisprotokollierung und die ausführliche Protokollierung aktiviert sind. Die Eigenschaft »LowThresholdOnClientObjects« gibt die Rate an, mit der das Erstellen von neuen Objekten für Clients verlangsamt wird. Um Geschwindigkeitsunterschiede zwischen Anbietern und Clients auszugleichen, werden Objekte vor dem Senden von WMI in Warteschlangen aufgenommen. Wenn die maximale Anforderungsrate überschritten wird, wird das Erstellen von neuen Objekten stufenweise verlangsamt. Dieser Vorgang beginnt, wenn die Rate, mit der Objekte erstellt werden, den Wert dieser Eigenschaft überschreitet, und wird fortgesetzt, bis die Rate ausgeglichen ist oder der hohe Schwellenwert erreicht wird. Die Eigenschaft »LowThresholdOnEvents« gibt die Rate an, mit der das Senden von neuen Ereignissen verlangsamt wird. Um Geschwindigkeitsunterschiede zwischen Anbietern und Clients auszugleichen, werden Ereignisse vor dem Senden von WMI in Warteschlangen aufgenommen. Wenn die Größe der Warteschlange überschritten wird, wird das Senden von Ereignissen stufenweise verlangsamt. Dieser Vorgang beginnt, wenn die Rate, mit der Ereignisse generiert werden, den Wert dieser Eigenschaft überschreitet, und wird fortgesetzt, bis die Rate ausgeglichen ist oder der hohe Schwellenwert erreicht wird.
B.264 Win32_WMISetting MaxLogFileSize MaxWaitOnClientObjects
MaxWaitOnEvents
MofSelfInstallDirectory
SettingID
777
Die Eigenschaft »MaxLogFileSize« gibt die maximale Größe der vom WMI-Dienst erstellten Protokolldateien an. Die Eigenschaft »MaxWaitOnClientObjects« gibt den Zeitraum an, bis ein neu erstelltes Objekt vom Client verwendet wird, bevor es verworfen oder ein Fehlerwert zurückgegeben wird. Die Eigenschaft »MaxWaitOnEvents« gibt an, wie lange sich ein an den Client gesendetes Ereignis in der Warteschlange befindet, bevor es verworfen wird. Die Eigenschaft »MofSelfInstallDirectory« enthält den Verzeichnispfad für Anwendungen, die MOF-Dateien im CIM-Repository installieren. WMI kompiliert automatisch alle MOF-Dateien in diesem Verzeichnis und verschiebt diese anschließend in das Unterverzeichnis »good« oder »bad«. Wenn »Automatisch wiederherstellen« einbezogen ist, wird der vollqualifizierte Dateiname in die Liste »AutorecoverMofs« hinzugefügt, wenn das Repository von WMI initialisiert oder wiederhergestellt wird. Die Liste legt die Reihenfolge fest, in der die MOF-Dateien kompiliert werden. Die Kennung für das Objekt »CIM_Setting«.
779
Stichwortverzeichnis
% 288 %COMSPEC% 77 .VBS 28 _Application 64 _Global 64 <SCRIPT>-Tag 179 <TITLE>-Tag 179 0x80004 321 0x80005 318 0x8007 319 2 GB Bug 96 32bit ODBC Datenquellen 303
A Abfrage-Eigenschaften 150 Access Datenbanken 292 Active Directory 308 Active Directory Service Interface 307 ActiveX Control 182 ActiveX-Komponenten 35 AdapterDACType 378 AdapterRAM 378 Add 347, 352 AddressBar 172 ADO DB 279 ADO DB Versionsdschungel 281 ADODB.Connection 286, 302 Adreßleiste 172 ADSI 307 ADSI-Fehler 318 ADSI-Pfad 371 ADsPath 349 Akku-Ladestand 53 Aktuelles Objekt 50
alert-Methode 32 Alias 49, 189 Alter 299 Anführungsstriche 289 Anruferkennung 166 Anwendungsdaten 138 API-Befehle 188 Application 69 Application Setup Wizard 199 Application.Documents.Add 66 Arbeitsgruppen 309 Arbeitsplatz 138 Argumente 74 Arguments 74 Array 310 ASC 288 AskForNumber 187 AtEndOfLine 116 AtEndOfStream 116 Attribut Schreibgeschützt 282 Attributes 102, 110 Audioformat 166 Aufträge eines Druckers sichtbar machen 372 Aufzählungen 62 Ausführungszeit 85 AuthenticationLevel 392 Author 148 AUTO_UNIQUE_VALUE 301 AutoNumber 290 Autor 165 Autorennamen auflisten 146 Autostart 138 AutoUnlockInterval 312 AvailableSpace 96
780
Stichwortverzeichnis
B Battery 53 BatteryStatus 53 Befehle 51 Beginnend mit Befehlen 51 Benutzer aus einer Gruppe entfernen 352 Benutzerdatenbank 350 Benutzer-DSN 304 Benutzer-Flags 340 Benutzergruppe 316 Benutzergruppen löschen 352 Benutzerkonten 307 Benutzerkonten eines Computers auflisten 327 Benutzerkonten verwalten 327 Benutzerkonto 316 Benutzerprofil 139 Berechtigungen 338 Besitzer einer Datei 153 Bildaufbau 174 Binärdateien 114 Binärobjekt 152 Bitfelder 372 BorderStyle 198 BrowseForFolder 132, 137 Bug 96 Build 282 BuildPath 90 BuildVersion 69 Business Logic 279 BYTE 298
C CanStartStopService 120 Caption 193 CascadeWindows 120 CD-ROM-Schublade 188 CD-Schublade steuern 39 Centered Screen 198 CHAR 301 Child-Prozesse 418 Class 317
Close 116 CoClass 49 CoClasses 48 Code eingeben 186 Collection 66 Column 116 COLUMN_SIZE 301 COMCTL32.DLL 121 Command 302 Comments 148 COM-Objekt testen 186 COM-Objekte 47, 181 COM-Objekte direkt weitergeben 199 Computer 315, 316 Computer auflisten 309 Computer herunterfahren 404 Computer im Netzwerk 316 Computer neu starten 405 Computer sehen, die gerade online sind 324 Computerverwaltung 308, 377 Connection 302 Connection-Objekt 302 ConnectObject 81 ConnectServer 386 ConnectTime 367 Container 315 Containment 315 Continue 354 ControlPanelItem 120 Cookies 138 Copy 102, 110 CopyFile 90 CopyFolder 90 CopyHere 162, 318 Copyright 165 Count 62, 66 COUNTER 298 Create 318, 329, 350 Create Time/Date 148 CreateFolder 60, 365 CreateObject 33, 81
Stichwortverzeichnis CreateTextFile 102 CSCRIPT.EXE 31, 70 CSCRIPT-Modus 75 CSID 166 CURRENCY 298
D DateCreated 102, 110 Datei- und Druckerfreigabedienst 316 Dateien 27, 41, 69, 89, 119, 131, 181, 201, 279, 307, 377, 403, 427, 429 Dateien managen 109 Datei-Info 145 DateLastAccessed 102, 110 DateLastModified 102, 110 Daten in die Datenbank schreiben 288 Datenbank auslesen 282 Datenbanken 279 Datenbankergebnis sortieren 288 Datenbankschema 292 Datenbanksprache SQL 287 Datenbankverbindung herstellen 286 Datenebene 279 Datenquellen 303 Datensatz eindeutig identifiziert 290 DATETIME 298 DCOMCNFG 384 DCOM-Update 381 Debugger 28 DEBUGGER9x 28 DEBUGGERNT.EXE 28 Declare 189 Delete 102, 110, 318, 330 DELETE 290 Delete-Befehl 35 DeleteFile 90 DeleteFolder 90 DESC 288 Description 374 Desktop 138 Details der Benutzerkonten 339
781
Dialogfenster 188 Dialogfenster entwerfen 190 Dictionary 48 Dienst 352 Dienst starten oder beenden 360 Dienste 353 DIR 79 DIRCMD 79 DisconnectObject 81 DismissedWebViewBarricade 162 DispInterface 49 document 32, 174 document-Objekt 32 Domain 316 Domänen 309 Domänen-Admins 338 Domänen-Informationen ausfragen 312 Domänen-Objekt 310 DOS-Fenster 70, 75 DOS-Kommandozeilen-Interpreter 77 DOUBLE 298 Drag & Drop 74 Dreischichten-Modell 279 Drive 102, 110 DriveExists 90 DriveLetter 96 Drive-Objekt 100 DriveType 96 Druckaufträge managen 368 Drucker 138, 326 Drucker im Netzwerk auflisten 326 Druckerwarteschlange 316, 369 Druckerwarteschlange komplett löschen 374 Druckumgebung 138 DSN-los 286
E Echo 74, 80 Eigene Bilder 138 Eigene Dateien 138 Eigene Tabellen anlegen 296
782
Stichwortverzeichnis
Eigentümer 165 eigentümliche WMI-Datumsformat 404 EjectPC 120 Element 493 Empfängername 166 Empfängernummer 166 Encoder 48 Entwicklungsumgebung 186 Enum 49, 50 err.clear 323 Error 303 ErrorLookup 303 Event abhören 418 Eventlog 418 Event-Mitteilung 418 Events 81 Event-Spion 418 Eventüberwachung 420 Exchange-Server 308 ExecNotificationQuery 417 Execute 287 Exemplar-Rate 166 Explore 120 Explorer 171, 175 ExtendedProperty 144
F FAT-Dateisystem 153 Favoriten 46, 50, 138 Fehlerhandling 337 Feldnamen 290 Fenstergröße 172 Ferngesteuert auf WMI zugreifen 382 FileExists 90 File-Objekt 109 FileRun 120 files 34 Files 60, 62, 102 FileService 316 FileShare 366 Files-Objekt 109
FileSystem 96 Filter 310, 316, 318 FindComputer 120 FindFiles 120 FindPrinter 120 FMTID 149 FocusedItem 175 Fokus 177 Folder 175 FolderExists 90 FolderItem-Objekt 134, 144 FolderItems 156 Folder-Objekt 99, 131, 132, 161 Fonts 138 for each...next 62, 66 Form 191 Form Layout 182 FreeSpace 96 Freigabe rückgängig machen 366 Freigegebene Ordner verwalten 362 FullName 69, 70
G Gast 342 Gast-Logins 342 Gemeinsame Dateien 139 Gesperrte Konten 342 GetAbsolutePathName 90 GetBaseName 90 GetDetailsOf 151, 162 GetDriveName 90 GetExtensionName 90 GetFileName 90 GetFileVersion 54, 90 GetFolder 60, 144, 154 GetFolder.Title 136 GetFolders 34 Get-Funktion 313 GetItem 135 GetLink 144 GetObject 33, 81, 84, 318
Stichwortverzeichnis GetParentFolderName 90 GetSpellingSuggestion 64 GetStandardStream 54 GetSystemInformation 120 GetTempName 90 GetTime 404 Globale Benutzerkonten 328 Grafikkarten 378 Größe des Audioexemplars 166 Größe des Videoexemplars 166 Group 315, 316 Groups 347 Gruppen 345 Gruppen-Objekt 347 Gruppen-Verwaltung 345 GUID 177 GUIDs 141
H Hardware-Inventurliste 325 Hauptbenutzer 350 HaveToShowWebViewBarricade 162 Height 172 Heimatverzeichnis 340 Help 120 Hersteller 45 Hide 197 Hilfe 56 Hilfedateien 56 HostPrintQueue 374 HTA-Dateien 37 HTML Document 174 HTMLDocument 32 HTML-Dokumente 178 HTMLWindow 33 HTMLWindow2 33
I IDENTITY 298 IdleTime 367 ID-Wert 290
IFileCollection 61 IFileSystem3 47 IFileSystemObject 54 IIS: 308 In HTML-Dokumente eingreifen 178 Informationen über Computer 324 Informations-Provider 308 Inhalt einer Datenbank auflisten 283 Inkompatibilitäten 279 innerHTML 179 In-Process 45 Input 48 InputBox 187, 190 Insellösungen 279 INSERT INTO 288 InstallDate 404 InstancesOf 386 Integer 557 Interactive 85 Interdomain Trust Konto 340 Interface 50 Internet Explorer 82, 138 als Scripthost 31 Sicherheit 35 Internet Information Server 352 InternetExplorer.Application 83 InvokeVerb 144, 156 InvokeVerbEx 144 IsBrowsable 144 IsFileSystem 144 IsFolder 144 isFolder 154 IShellFolderViewDual 174 IShellFolderViewDual-Objekt 175 IsLink 144 IsMember 347, 349 IsReady 96 IsRestricted 120 IsRootFolder 102 IsServiceRunning 120 Item 62
783
784
Stichwortverzeichnis
Items 162 Items-Eigenschaft 134 IWebBrowser2 171 ixsso.util 152
J JavaScript 179 Jokerzeichen 288 Jscript.dll 55
K Kanäle 166 Kategorie 165 Kennwortänderung erzwingen 344 Kennwortänderungen verbieten 344 Kennwörter ändern 331 Kerberos-Authentifizierung 392 Keywords 148 Klasse 47 Kommentar 165 Kompilieren 186 Kontextmenü 156 Konto sperren 341
L LanmanServer-Objekt 362 Last Printed 148 Last Saved By 148 Last Saved Time/Date 148 LastBootUpTime 404 LastLogin 338 LDAP: 308 Left 172 Letzter Zugriff 165 LIKE 287 Line 116 LITERAL_PREFIX 301 LITERAL_SUFFIX 301 LocalDateTime 404 LockoutObservationInterval 312 Logbuchdatei 73, 420 LoginHours 335
LONG 298 LONGTEXT 298
M Major 282 Make 186 MandatoryProperties 315 Markieren 176 Markierten Eintrag ins Blickfeld rücken 177 Markierung entfernen 176 MaxBadPasswordsAllowed 312 MaxPasswordAge 312 mciSendStringA 189 MDAC 281 Members 347, 348 MenuBar 172 Menüleiste 172 Microsoft Data Access Components 281 Microsoft Office 279 Microsoft Word 64 MinimizeAll 120 Minor 282 MinPasswordAge 312 MinPasswordLength 312, 314 Mit Eingabeaufforderung öffnen 31 ModifyDate 144 Modul aussuchen 46 Modulbeschreibung 165 Module 51 Modulversion 166 Move 102, 110 MoveFile 90 MoveFolder 90 MoveHere 162, 318 MS Access 283 MSDADC.DLL 281 MsgBox 190 MSVBVM50.EXE 199
N n/a 45 Name 69, 70, 102, 110, 144
Stichwortverzeichnis Name der Firma 165 Name of Creating Application 148 Name-Eigenschaft 184 Namenskonflikte 350 NameSpace 132 NDS: 308 NET HELPMSG 319 Netzwerk 307 Netzwerk- und DFÜ-Verbindungen 139 Netzwerkdrucker 316, 368 Netzwerkumgebung 138 neue Benutzergruppe anlegen 349 Neue Funktionen 54 neuen freigegebenen Ordner anlegen 365 neues Benutzerkonto anlegen 329 neues Projekt 189 NewFolder 162 Notbremse 86 Notify 374 NotifyPath 374 NT4-Domäne 392 NTFS-Dateisystem 153 NTLM-Authentifizierung 392 Number of Characters 148 Number of Pages 148 Number of Words 148 NWCOMPAT: 308
O Objekte 33 OCX-Datei 199 Offline Folder 169 OfflineStatus 162 OLEDB32.DLL 281 OLEERR 322 OLE-Subsystem 321 on error goto 0 323 on error resume next 323 onQuit-Event 82 Open 120, 286 open 157 OpenAsTextStream 110
Optionale Parameter 188 OptionalProperties 315 Optionskästchen 192 ORDER BY 288 Ordner managen 99 OSR2 381 Out-of-Process 45, 85 Output 48
P PagesPrinted 374 Papierkorb 138 Papierkorb-Details 150 Parameter 302 Parent 144, 162 ParentFolder 102, 110, 136, 162 parentWindow 32, 33 ParseName 135, 162 PasswordAge 336 PasswordAttributes 312 PasswordExpired 344 PasswordHistoryLength 312 Path 69, 70, 96, 102, 110, 144 Pause 354, 371 PID 149 Piping 76, 78 PopupItemMenu 175 Position 374 PowerState 522 Präsentationsebene 279 print 157 PrintJob-Objekt 374 PrintQueue 316, 369 PrintQueue-Objekt 369, 370 Priorität einzelner Druckaufträge 374 Priority 374 Produktname 166 Produktversion 166 ProgIDs 43, 51 Programme 63, 138 Programme ferngesteuert starten 406 Programmstarts protokollieren 418
785
786
Stichwortverzeichnis
Project Explorer 182 Project1 183 Projekt 189 Properties Window 182 Provider 308 Purge 371, 374
Q Qfe 282 Quit 66, 83, 85, 172
R Rahmenrate 166 Rahmenzähler 166 RAM-DAC 378 Read 116 ReadAll 116 ReadLine 116 ReadyState 174 Reboots 405 Recent 138 Rechtschreibprüfung 64 Record 50, 302 RecordSet 302 Recordset-Objekt 302 Referenzen 190 RefreshMenu 120 REGEDIT 29 Register Datei-Info 145 REGSVR32 199 Remove 347, 352 Resizable 172 Resource-Objekt 366, 367 Resume 371 Revision Number 148 Röntgen 47 root\cimv2 383 RootFolder 96 Routing 166 Runtime-Bibliothek 199
S SAMPLE.MDB 283 Schaltfläche 193 Schema 292, 314 Schema-Objekt 314 Schreibgeschützt 282 Schreibschutz 282 SchubladeAuf 190 SchubladeZu 190 SCID 149 Script automatisch beenden 86 maximale Laufzeit 86 Script-Debugger 28 ScriptFullName 72, 286 Scripting Host installieren 28 Scripting Hosts 31 Scripting Spy 42 Scripting.FileSystemObject 33 ScriptName 72 Scripts als DOS-Befehle 75 Scripts anhalten 85 Scripts ändern 28 bearbeiten 28 Scriptstart 28 SCRRUN.DLL 45 SDK 190 Security 148 Seiten 165 SELECT 287 SelectedItems 175 SelectItem 175 Self 135, 162 Sendername 166 Sendezeit 166 SendTo 138 SerialNumber 96, 398 Seriennummer 382 Server Trust Konto 340
Stichwortverzeichnis Service 316 Service Pack 381 Service-Objekt 354 Services 352 ServiceStart 120 ServiceStop 120 Session 366 Set 33 Set-Befehl 33 SetInfo 314, 350 SetPassword 354 SetTime 120 Setup-Pakete schnüren 199 ShareName 96 Shell.Application 52, 119, 131 SHELL32.DLL 120 Shell-Details 150, 152 ShellExecute 120 SHLWAPI.DLL 121 SHORT 298 ShortName 102, 110 ShortPath 102, 110 ShowBrowserBar 120 Shutdown 57 ShutdownWindows 57, 120 Sicherheitseinstellungen 35 Sicherheitsinformationen 358 Sicherheitsrichtlinien 342 Sicherheitsrisiko Uralt-Konten 339 SINGLE 298 Size 102, 110, 144, 374 Size-Eigenschaft 151 Skip 116 SkipLine 116 Sleep 82, 85 sortieren 288 Sperr-Mechanismus 342 Spiellänge 166 Spionagetool 41 SQL 287 SQL Server-Datenbank 298 SQL-Befehle 287
787
SQL-Dialekte 288 Standardeigenschaften 150 Standardinterface 48 Standardnamen 157 Start 354 Startmenü 138 StartTime 374 Startverhalten von Diensten 361 Status 354, 371 StatusBar 172 Statusleiste 172 StdErr 74, 76 StdIn 74, 76 StdOut 74, 76 STE51DE.EXE 28 Steuerelement für Kodak-Bildbearbeitung 45 Stop 354 Storage-Eigenschaften 150 Stream 303 Struktur Ihrer Datenbankzugriffe 301 SubFolders 102 Subject 148 Suchen 50 Suchfunktion 50 Suspend 120 Symbolleisten 172 Synchronize 162 SysInfo.SysInfo 53 System-DSN 303 System-Ereignisse 416 Systemsteuerung 138, 140 Systemtabellen 292
T Tabellen in der Datenbank auflisten 292 Tabellen in einer Datenbank löschen 296 TABLE_NAME 294 TABLE_TYPE 294 Template 148 temporäre Konten einrichten 334 Temporary Internet Files 138 TEXT 298
788
Stichwortverzeichnis
Textstream-Objekt 114 Thema 165 Thumbnail 148 TileHorizontally 120 TileVertically 120 TimeElapsed 374 Timeout 29, 85 TimeSubmitted 374 Titel 165 Titelleiste 179 Title 148, 162 ToolBar 172 Toolbox 182 Top 172 Total Editing Time 148 TotalPages 374 TotalSize 96 TrayProperties 120 TSID 166 Type 110, 144 TypeLib 49 TypeName 33, 135
U Umbenennen 176 UNC-Netzwerkpfade 141 UndoMinimizeALL 120 Union 50 Unload 197 Unterordner 63 UntilTime 374 User 315, 316, 374 UserControl1 184 UserPath 374
V Variablentypen 291 Variablentypen auflisten 300 VB CCE kennenlernen 182 VBScript.dll 55 VBSFile 29 Verbs 144
vergessene Kennwörter reparieren 333 Verlauf 138 Verschiedenes-Eigenschaften 150 Version 69 Videokomprimierung 166 View Code 182 View Object 193 ViewOptions 175 Virtuelle Ordner 138 Visible 83, 172 Visual Basic Control Creation Edition 181 Volume-Eigenschaften 150 VolumeName 96 Vorlagen 138 vorübergehendes Konto 340
W WBEM 377 WBEMCNTL.EXE 381 WBEMScripting.SWbemLocator 386 WBEMScripting.SWBEMSink 417 Web Based Enterprise Management 377 Webserver 352 WHERE 287 Width 172 Win32_NTLogEvent 417 Win32_OperatingSystem 385 Win32_Process 393 Win32-Fehler 319 Windows Management Instrumentation 377 Windows SDK 190 Windows-API 188 Windows-Dienste verwalten 352 WinMgmt.exe 377 WINMGMT.EXE 385 winmm.dll 189 WinNT: 308 WinNT-Provider 308 WMI 377, 429 WMI nachrüsten 380 WMI startklar machen 379 WMI und Sicherheit 380
Stichwortverzeichnis WMI9X.EXE 381 WMI-Dienst 387 WMINT4.EXE 381 Word.Application 64 Workstation Trust Konto 340 WQL-Syntax 410 Write 116 WriteBlankLines 116 WriteLine 116 write-Methode 32 WScript 69 WSCRIPT //H CSCRIPT 75 WSCRIPT 75 WScript.CreateObject 82 WScript.Echo 75
WSCRIPT.EXE 29, 69 WScript.exe 55 WScript.Network 51 WScript.ScriptFullName 32 WScript.Shell 52, 139 WScript-Objekt 32, 69 Wsh 69 WSH 2.0 54 WSH installieren 28 WSH-Version 69
X XE 309
Z Zusatzinfos 145
789