Powershell: Anzeigen und Ändern einer Collection

Hallo die Herrschaften!

heute beginnen wir das Thema Scripting damit, dass wir erst einmal eine bestehende Collection auslesen:

$MyCollection = Get-WmiObject -Namespace root\sms\site_001 -ComputerName localhost -Query "Select * from SMS_Collection where name='My Test Collection"
Write-Host $MyCollection.Name

Nehmen wir die Zeilen mal auseinander. Wir haben folgende Komponenten:

1. Zeile:

$MyCollection Variable, die hinterher das Objekt der ausgelesenen Collection enthält
Get-WmiObject Powershell-Befehl, der ein oder mehrere WMI-Objekt(e) ausliest
-Namespace root\sms\site_001 legt fest, dass der Befehl gegen den Namespace "root\sms\site_001" arbeitet.Dabei stellt die "001" den Sitecode der Site dar, die wir gerade auslesen wollen
-ComputerName localhost Definiert den Computer, auf dem die WMI-Abfrage ausgeführt werden soll
-Query "Select * ... Hier wird die eigentliche Abfrage angegeben. In diesem Fall wollen wir alle Felder der Klasse Collection bekommen von der Collection, die "My Test Collection" heisst.

2. Zeile:

Write-Host Powershell-Befehl, der etwas an der Konsole ausgibt
$MyCollection.Name Hier wird auf den Namen des ausgelesenen Collection-Objektes referenziert.

Die Ausgabe wird in diesem Fall einfach "My Test Collection" sein, da wir ja genau diese Collection gesucht haben.

Nachdem wir jetzt das Objekt haben, wollen wir den Kommentar verändern:

$MyCollection.Comment = "This is my new comment."
$MyCollection.put()

Schauen wir wieder, was die Zeilen bedeuten:

1. Zeile:

$MyCollection.Comment Hier wird das Attribut des Objektes angegeben, das verändert werden soll
"This is my new comment." Dies ist der Text, der in das Attribut geschrieben wird.

2. Zeile:

$MyCollection().Put Mit dieser Standard-Objekt-Methode wird das Objekt auf den Server zurück geschrieben.

Dies soll uns für den ersten Einstieg genügen. Beim nächsten Mal werden wir dann schauen, wie wir eine neue Collection erstellen und diese auch wieder löschen können.

Viel Spaß beim Ausprobieren,

Jean