Bereits seit Ende Januar 2017 ist die neue Version 4.0 unserer PowerShell Extensions for HEAT Client Management verfügbar - leider komme ich erst jetzt dazu, einen Blog-Artikel darüber zu schreiben, der die Neuerungen und Verbesserungen gegenüber der Vorgängerversion verdeutlicht. Neben 40 komplett neuen Cmdlets wurden sowohl zusätzliche Parameter für bereits bestehende Cmdlets, zusätzliche Methoden für Objekte und Performance-Verbesserungen implementiert. Außerdem wurden einige (wenige) interne Fehler behoben.

Dieser Blog-Artikel listet die Veränderungen im Detail.

Neue Cmdlets

Die auffälligste Neuerung sind sicherlich die 40 neuen Cmdlets, die den Umgang mit den Objekten der DSM Umgebung noch einfacher und effizienter machen.

Die erste Kategorie betrifft das Handling der DSM Powershell-Laufwerke, das in der Vergangenheit über die Standard-Cmdlets New-PSDrive, Get-PSDrive und Remove-PSDrive durchgeführt werden musste. Dabei war es stets erforderlich, den PowerShell-Provider BlsEmdb anzugeben. Mit PSX 4.0 haben wir nun mit dedizierten Cmdlets die Möglichkeit geschaffen, solche "Emdb-Laufwerke" leichter zu verwalten. Es stehen dafür New-EmdbDrive, Get-EmdbDrive und Remove-EmdbDrive zur Verfügung.

Die zweite große Kategorie und mit 34 Cmdlets auch die größte Gruppe sind Test-Cmdlets, die auf bestimmte Dinge wie Existenz von Objekten, Gruppenmitgliedschaft, Compliance, Variablen- und Parameterwerte oder ähnliches prüfen. Die Parameter dieser Cmdlets entsprechen jenen der zugehörigen Get-... Cmldets und sie liefern $true, wenn die angegebenen Bedingungen für die gesamte angeforderte Ergebnismenge zutreffen. Wird bei den Test-Cmdlets zusätzlich der Parameter -Any angegenben, so wird $true zurückgegeben, wenn mindestens ein Element der angeforderten Ergebnismenge den angegebenen Bedingungen entspricht.

Beispiele:
Test-EmdbComputer COMPUTER01, COMPUTER02
Liefert $true, wenn COMPUTER01 und COMPUTER02 vorhanden sind

Test-EmdbComputer COMPUTER01, COMPUTER02 -Any
Liefert $true, wenn mindestens COMPUTER01 oder COMPUTER02 vorhanden sind

Der Vollständigkeit halber sind noch die drei neuen Cmdlets Get-EmdbComplianceState, Get-EmdbItem und Add-EmdbRelatedItem zu nennen. Get-EmdbComplianceState liefert Compliance-Statuswerte für Computer, Policies, Policy-Instanzen und Zuweisungsziele. Get-EmdbItem liefert jede Art von EmdbItem-Objekt, was insbesondere bei der interaktiven Arbeit mit den PSX in der PowerShell Console oder der PowerShell ISE nützlich sein kann und Tipparbeit erspart. Uns schließlich sorgt Add-EmdbRelatedItem dafür, dass zugehörige Objekte für gegebene Objekte - z.B. zugewiesene Software und Zuweisungsziele für Policy-Instanz-Objekte - möglichst effizient ermittelt werden.

Details zur Verwendung der neuen Cmdlets und Beispiele für den Einsatz finden Sie im jeweiligen Abschnitt der Online-Hilfe.

Neue Parameter

Für New-EmdbDrive und New-PSDrive gibt es den zusätzlichen Parameter -BlsClientName, mit dem der Anwendungsname angegeben werden kann, der beispielsweise im IIS-Log (als User-Agent) und im bls_AdministrationWebService.log zu finden ist. Damit kann in diesen Logs eindeutig identifiziert werden, welche Aktionen über PSX ausgeführt wurden beziehungsweise welche nicht. Optional kann eine Version angegeben werden, die separat abgelegt wird, im Format "<Name><Leerzeichen><Version>", die dann auch über die Eigenschaft BlsEmdbDriveInfo.ClientInfo verfügbar sind.

Die Cmdlets Get-EmdbRole und Get-EmdbPermission haben neue Parameter erhalten, die es ermöglichen, Berechtigungen zu ermitteln. Für Get-EmdbRole sind dies die Parameter -Permission, -Grantee, -OnObject, -OnGlobal, -Drive, -EffectiveRoleOwners und -ReturnAssociations, für Get-EmdbPermission sind es -Role, -Grantee, -OnObject, -OnGlobal, -Drive, -EffectiveRoleOwners und -ReturnAssociations. Zusätzliche wurden für Get-EmdbPermission die Parameter -LoggedOnUser und -ReturnTags implementiert, die es ermöglichen, Berechtigungen des aktuell am BLS angemeldeten Benutzerkontos zu ermitteln.

Änderungen an Parametern

Der in der PSX-Version 3.1 eingeführte Parameter -ItemId an den Get-Cmdlets akzeptiert jetzt auch eine Liste von Objekten beziehungsweise IDs.

Online-Hilfe

Seit PowerShell 3.0 gibt es das Cmldet Update-Help, das die Aktualisierung der in der Shell und der ISE verfügbaren Online-Hilfe über das Internet erlaubt. Mit PSX 4.0 haben wir nun auch die Möglichkeit geschaffen, die Hilfe über das Internet von unserem Webserver zu aktualisieren. Der hierzu notwendige Befehl lautet Update-Help -Module PSX7

Zusätzliche Methoden

Zusätzliche Skript-Methoden

Zusätzliche Skript-Eigenschaften

Weggefallene Skript-Methoden

Sonstiges

Errata

Aufgrund der Möglichkeit des Online-Updates der Hilfe ist nicht, wie in der mitgelieferten Online-Hilfe aufgeführt, Version 2.0 der PowerShell Mindestvoraussetzung, sondern PowerShell Version 3.0 - zumindest wenn Sie die PSX, wie mittlerweile allgemein üblich, als Module per Import-Module laden. Versuchen Sie dies mit PowerShell 2.0 erhalten Sie einen Fehler.