Windows-Administration: Programme mit PowerShell und COM-Objekten automatisieren

Viele Anwendungen wie Dateiexplorer, Excel oder Outlook lassen sich unter Windows über deren COM-Schnittstellen automatisieren. Wir zeigen die Grundlagen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 80 Kommentare lesen

(Bild: Shutterstock.com / Trismegist San)

Lesezeit: 14 Min.
Von
  • Christian Imhorst
Inhaltsverzeichnis

Bevor das .NET-Framework erfunden wurde, diente das Component Object Model (COM) von Microsoft als Konzept für plattformübergreifende und wiederverwendbare Software. Bereits geschriebener Code konnte, in Objekte gekapselt, leicht in andere Programme eingebaut werden, ohne dass er in die Anwendung kompiliert werden musste. Das Wissen um COM hilft manchem Windows-Admin heute noch bei der Arbeit: Möchte man etwa mit der PowerShell grundlegende Funktionen von Windows oder MS-Office automatisieren, muss man dazu nach wie vor COM-Objekte ansprechen. Wie das geht, zeigen wir in diesem Artikel in mehreren kleinen Praxisbeispielen.

PowerShell meistern: Mehr zu Microsofts Kommandozeile

Das Component Object Model wurde 1992 zusammen mit Windows 3.1 unter dem Namen Objekt Linking Embedding (OLE) eingeführt und 1997 von Microsoft in COM umgetauft. OLE verbesserte die Zusammenarbeit zwischen verschiedenen Programmen. So konnte man unter anderem Excel-Tabellen in eine Textverarbeitung wie Word einbinden und die Tabellen trotzdem weiter mit Excel bearbeiten. Neben OLE baut auch ActiveX auf das COM-Modell auf, das vor allem im Internet Explorer Anwendung fand.

COM-Komponenten werden unter Windows von Laufzeitmodulen (DLLs) oder ausführbaren Dateien (EXE) zur Verfügung gestellt, aber auch in Dateien mit ActiveX-Steuerelementen (OCX). Das COM-Framework definiert nur einen binären Schnittstellenstandard, mit dem sich Bibliotheken erstellen lassen, auf die von verschiedenen Sprachen aus zugegriffen werden kann. Vor COM benötigte jede Programmiersprache ihren eigenen Satz an Bibliotheken: So konnte etwa Basic nur Bibliotheken verwenden, die für Basic geschrieben wurden, C nur solche, die in C geschrieben wurden. COM erlaubt, dass laufende Anwendungen Schnittstellen freigeben, über die sie von externen Programmen ferngesteuert werden können. Möglich machen das zwei Schnittstellen zur Außenwelt: Einmal IUnkown, über die man die COM-Komponente abfragen kann und Idispatch, worüber das Skripting läuft.

Das war die Leseprobe unseres heise-Plus-Artikels "Windows-Administration: Programme mit PowerShell und COM-Objekten automatisieren". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.