Login

Blog

Hier blogge ich über Themen, die mich - und vielleicht auch andere - interessieren (könnten)

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.

 

 

User Centric Management in DSM
Selbst-Extrahierendes Archiv mit 7Zip erstellen

Related Posts

 

Comments

No comments made yet. Be the first to submit a comment
Already Registered? Login Here
Guest
Sunday, 08 December 2019

Captcha Image