Methoden und Eigenschaften der Objekte

Die PowerShell Extensions for Ivanti DSM arbeiten - wie Sie es von der PowerShell allgemein kennen - vollständig objektorientiert. Das bedeutet, dass Ihnen sämtliche Eigenschaften der Objekte aus der DSMDB auch in der PowerShell zur Verfügung stehen und Sie diese Eigenschaften abfragen und in der Regel auch setzen können.


Darüber hinaus haben diese Objekte auch Methoden, also Aktionen, die ausgeführt werden, wenn Sie die Methode eines Objekts aufrufen.


Für die wichtigsten  Methoden haben wir Cmdlets implementiert, sodass Sie die Aktionen direkt auf Objekte der PowerShell-Pipeline ausführen können. Diese Cmdlets stellen jedoch nur einen kleinen Teil der verfügbaren Aktionen dar. Möchten Sie Aktionen auf die Objekte ausführen, für die kein Cmdlet zur Verfügung steht, so können Sie an einem Objekt die entsprechende Methode aufrufen.


Beispielsweise gibt es kein Cmdlet, um einen Computer aus der DSMDB zu löschen - es "fehlt" also ein Cmdlet wie "Remove-EmdbComputer". Nichtsdestotrotz haben nahezu alle Objekte in der DSMDB eine Delete()-Methode, sodass das Löschen eines Computers über das Aufrufen der Delete()-Methode realisiert wird.


$MyComputer = Get-EmdbComputer "emdb:\rootDSE\Managed Users & Computers\solys.local\Chicago\ITService\Workstations\XP01"

$MyComputer.Delete()


Eigenschaften eines Objekts können, sofern Sie in der DSMDB nicht als "volatile" (also "flüchtig") deklariert sind, abgefragt werden. Dazu lesen Sie einfach die Eigenschaft des entsprechenden Objektes aus:


$MyComputer = Get-EmdbComputer "emdb:\rootDSE\Managed Users & Computers\solys.local\Chicago\ITService\Workstations\XP02"

Write-Host Der Typ dieses Computers ist $MyComputer.ComputerType


Indem Sie einer - nicht schreibgeschützten - Eigenschaft einen gültigen Wert zuweisen und anschließend die Update()-Methode aufrufen, wird der Wert dieser Eigenschaft gesetzt. Um beispielsweise einen Computer als virtuelle Maschine zu klassifizieren, weisen Sie der ComputerType-Eigenschaft den Wert "Virtual Machine" zuweisen.


$MyComputer = Get-EmdbComputer "emdb:\rootDSE\Managed Users & Computers\solys.local\Chicago\ITService\Workstations\XP02"

$MyComputer.ComputerType = "Virtual Machine"

$MyComputer.Update()


Tipp: Sie können in aller Regel den Anzeigewert, wie er in der DSMC verwendet wird, in der Zuweisung des Eigenschaftswerts verwenden und brauchen nicht den internen Wert zu kennen.


Welche Methoden und Eigenschaften ein Objekt besitzt, ermitteln Sie - wie in PowerShell üblich - indem Sie ein Objekte des Sie interessierenden Typs an das Get-Member Cmdlet pipen. Über das folgende Beispiel erhalten Sie also alle verfügbaren Methoden und Eigenschaften eines Computer-Objekts:


$MyComputer = Get-EmdbComputer "emdb:\rootDSE\Managed Users & Computers\solys.local\Chicago\ITService\Workstations\XP02"

$MyComputer | Get-Member


Wie Sie sehen, verfügen Computer-Objekte über jede Menge Methoden und Eigenschaften, die Sie in Ihren Scripts nutzen können. Natürlich haben auch allen anderen Objekttypen in der DSMDB entsprechende Auflistungen, die Sie jederzeit ermitteln können.


Wenn Sie einmal nicht wissen, was eine Eigenschaft "bedeutet" beziehungsweise enthält, so können Sie sich von einem entsprechenden Beispiel-Objekt alle Werte anzeigen lassen. Durch Eingabe von


$MyComputer = Get-EmdbComputer "emdb:\rootDSE\Managed Users & Computers\solys.local\Chicago\ITService\Workstations\XP02"

$MyComputer | Format-List *


werden alle Eigenschaften des Objekts mit ihrem aktuellen Wert als Liste ausgegeben.