NWC Services Blog
PSX-Version 4.0 verfügbar
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
- EmdbPolicy.NewPolicyInstance(<EmdbComputer>)
Erzeugt eine neue Instanz von EmdbPolicyInstance (Anlegen auf BLS mit EmdbPolicyInstance.Create()) - BlsEmdbDriveInfo.UpdateEmdbItems(<Liste von EmdbItem>)
Aktualisiert alle angegebenen Objekte bei einem Aufruf. Vorteil gegenüber .Update() für jedes einzelne Objekt: Nutzt (wenn anwendbar) die SOAP-APIs für Objektlisten, Nachteil (oder Feature, je nachdem): Fehler, und damit keine Änderungen, wenn die Aktualisierung eines Listenelements fehlschlägt - EmdbGroup.GetMemberCount()
Liefert die Anzahl der Gruppenmitglieder - EmdbExternalGroup.GetMemberCount()
Liefert die Anzahl der Gruppenmitglieder - EmdbSoftware.GetReplaceables(…)
Liefert die Revisionen dieser Software und andere Software mit übereinstimmender Replacement-ID. Ein optionaler Parameter ermöglicht Einschränkungen der Ergebnismenge - EmdbPolicy.UpdateTo(…)
Aktualisiert die Policy auf eine andere Revision oder eine andere Software mit übereinstimmender Replacement-ID. Mehrere Varianten mit unterschiedlichen Parametersätzen - EmdbObject.GetVariableValue
EmdbObject.GetVariableValues
Ermitteln Variablenwerte - EmdbObject.SetVariableValue
EmdbObject.SetVariableValues
Setzen Variablenwerte - EmdbAssociation.GetSourceObject
Ersetzt die gleichnamige Skript-Methode (Unterschied: Objekt wird zwischengespeichert) - EmdbAssociation.GetTargetObject
Ersetzt die gleichnamige Skript-Methode (Unterschied: Objekt wird zwischengespeichert) - EmdbPolicyInstance.GetTargetObject
Ersetzt die gleichnamige Skript-Methode (Unterschied: Objekt wird zwischengespeichert) - EmdbPolicy.GetTargetObjects
Ersetzt die gleichnamige Skript-Methode (Unterschied: Objekte werden zwischengespeichert) - EmdbItem.GetDereferencedPropertyValue
Liefert die referenzierten Objekte zur angegebenen Eigenschaft - EmdbItem.GetLocalizedPropertyValue
Liefert den Wert der angegebenen Eigenschaft als LocalizedString Objekt - EmdbItem.SetLocalizedPropertyValue
Setzt den LocalizedString Objekt Wert der angegebenen Eigenschaft
Zusätzliche Skript-Methoden
- EmdbPolicy.ActivateAllInstances
Setzt 'IsActive = $true' für alle (nicht aktiven) Policy-Instanzen der Policy - EmdbPolicy.DeactivateAllInstances
Setzt 'IsActive = $false' für alle (aktiven) Policy-Instanzen der Policy - EmdbPolicy.GetReplaceableSoftware
Verwendet EmdbSoftware.GetReplaceables der zugewiesenen Software
Zusätzliche Skript-Eigenschaften
- EmdbExternalGroup.ExternalGroupType
Liefert den Wert von "ExternalGroup.GroupType" (im Gegensatz dazu liefert .GroupType den Wert von Object.GroupType)
Weggefallene Skript-Methoden
- EmdbSoftwareInstallationConfiguration.GetSoftwareObject
Überflüssig, da es bereits eine Methode EmdbSoftwareInstallationConfiguration.GetSoftware() gibt
Sonstiges
- Umbenennung der Skript-Methode EmdbPolicyInstance.GetShoppedByItem zu Skript-Methode EmdbPolicyInstance.GetShoppedByItems
- Fehlerbehebung Skript-Methode EmdbPolicyInstance.GetShoppedByItem bzw. .GetShoppedByItems
Fehler beim Aufruf, da PolicyInstanceClient.ShoppedBy wie ein einzelner Int32-Wert behandelt wird - Fehlerbehebung Skript-Methode EmdbEffectiveRoleOwners.GetOriginalTargetObject
Liefert das Objekt zur Eigenschaft TargetObjectId (anstatt zur Eigenschaft OriginalTargetSchemaTag)
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.
When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.
Kommentare