System-Administration mit Microsofts PowerShell Teil 8
Verwendung des Component Object Models (COM)
![]() |
In dieser achten Ausgabe der PowerShell-Artikelserie zeigt SearchNetworking, wie die PowerShell auf COM-Objekte zugreifen kann. Über COM-Schnittstellen können Anwendungen ferngesteuert und Funktionsbibliotheken, wie die des WSHs, genutzt werden.
Nicht nur Funktionsbibliotheken sind mit einer COM-Schnittstelle versehen, sondern auch ganze Applikationen. Dazu gehören etwa die Microsoft Office-Anwendungen und der Internet Explorer aber auch Microsoft-fremde Programme, wie Lotus Notes. Über diese Schnittstellen lassen sich die Anwendungen steuern, und das ohne Tastatureingaben oder Mausklicks zu simulieren. Ein Beispiel: Von der PowerShell aus wird Excel gestartet, um damit eine XLS-Datei zu öffnen und Zellenwerte auszulesen. Mit diesen sollen dann Benutzerkonten im
Die Steuerung der Applikationen kann dabei sogar versteckt erfolgen, indem das Benutzerinterface, also das Anwendungsfenster, nicht dargestellt wird.
Voraussetzungen zum Einsatz von COM-Objekten
Jede COM-Klasse verfügt über eine eindeutige Bezeichnung, die sprechend sein kann, wie „Excel.Application“, oder nur aus einer GUID bestehen. Dieser Name muss bekannt sein, um ein entsprechendes Objekt anzulegen. Am besten ist es, eine ausführliche Dokumentation der COM-Klassen zu verwenden, doch nicht immer ist diese verfügbar. Die Klassen, die von Microsoft zur Verfügung gestellt werden, sind in einer Library dokumentiert. Der Link zur Library ist am Ende des Artikels angegeben.
Gibt es keine Dokumentation, kann der „OLE/COM Object Viewer“ zu Rate gezogen werden. Dieses kostenlose Tool von Microsoft (Link am Ende), lädt die nötigen Angaben aus der Systemregistrierung (siehe Abbildung 1). Für PowerShell-Anwender wichtige Informationen sind unter Object Classes/AllObjects zu finden. Dort sind sämtliche Klassen ersichtlich. Ist die gewünschte Klasse gefunden und markiert, erscheinen im rechten Teil des Fensters Informationen, wobei die „VersionIndependentProgID“ für den gesuchten Bezeichner der Klasse steht.
Eigenschaften und Methoden
Neben dem Bezeichner ist es aber auch noch notwendig, die von den Klassen bereitgestellten Eigenschaften und Methoden zu kennen. Es gibt hier zwar auch ein Tool, um diese von einem beliebigen Objekt zu ermitteln, doch ist das oft nicht ausreichend, denn eine Beschreibung der Befehle und der zugehörigen Parameterauswirkungen fehlt meist. Das Tool nennt sich Object Browser bzw. Objekt-Katalog und ist in den Entwicklungsumgebungen von Microsoft integriert, etwa im Visual Studio oder auch der VBA-Entwicklungsumgebung der Office-Anwendungen (siehe Abbildung 2).
COM-Objekte erstellen mit new-object
Mit dem Cmdlet new-object werden COM-Objekte angelegt. Die Klassenbezeichnung wird dabei mit dem Parameter -comobject übergeben. Folgender Befehl lädt etwa Microsoft Word:
$w = new-object -comobject „Word.Application“
Über die Variable $w kann nun Word ferngesteuert werden. Da das Benutzerinterface noch nicht sichtbar ist, kann dies mittels der Eigenschaft Visible eingeschaltet werden:
$w.Visible = $true
Diese Eigenschaft ist meinst bei den Anwendungen vorhanden. Mit den beiden folgenden Befehlen wird ein neues Dokument angelegt und ein Text eingefügt:
$w.Documents.Add()
$w.Selection.TypeText(„SearchNetworking zeigt PowerShell“)
Wie schon erwähnt können auch die Klassen des WSHs eingesetzt werden. Dieser stellt etwa die Klasse WScript.Network mit der Methode MapNetworkDrive bereit, um Netzwerklaufwerke anzulegen. Mit der PowerShell könnte der Aufruf wie folgt aussehen:
$n = new-object -comobject „WScript.Network“
$n.MapNetworkDrive(„X:“, „\\server\share“)
Im nächsten Teil der PowerShell-Artikelserie zeigt SearchNetworking, wie mit der PowerShell auf das Active Directory zugegriffen werden kann, um beispielsweise Benutzerkonten und Organisationseinheiten zu verwalten.
Microsoft Deutschland GmbH
Firmenprofil
Kontakt
-
WPA-PSK + WPA2-PSK gleichzeitig einstellen?
posted am 10.03.2010 um 09:33 von Hans-Dieter
-
RE: Kein Ruhezustand mehr bei Vista???
posted am 09.03.2010 um 23:41 von nicht registrierter User
-
ZyWall 35 - Wrong product Model
posted am 09.03.2010 um 17:58 von nicht registrierter User
-
RE: 3GP-Videos in Windows Mediaplayer abspielen?
posted am 09.03.2010 um 15:12 von Fachwirt
-
RE: UMTS/3G im Ausland?
posted am 09.03.2010 um 08:53 von JoeCool
Follow us!



















(nicht registrierter User)
Kommentar abschicken