Neu in Version 3.1


In Version 3.1 wurde 1 neues Cmdlet definiert und etliche bestehende Cmdlets erweitert, um Ihnen die Verwaltung von und den Umgang mit den neuen Objekten, Funktionen und Möglichkeiten von DSM 2015.1 zu erleichtern. Damit stehen Ihnen nun insgesamt 103 Cmdlets für Ihre Scripting-Aufgaben zur Verfügung:


Ausführen von Änderungen:



Weitere Änderungen, Verbesserungen und Optimierungen:

  • Die Bezeichnung wurde zu "PowerShell Extensions for Ivanti DSM" geändert. Damit wird der Registrierungswert LicensePath, mit dem Pfad zur Lizenzdatei, jetzt im Registrierungsschlüssel HKEY_LOCAL_MACHINE\Software\NWC Services GmbH\PowerShell Extensions for Ivanti DSM erwartet. Weitere Informationen erhalten Sie im Abschnitt Zentrale Ablage der Lizenzdatei


  • Mit DSM 2015.1 gibt es die Möglichkeit, Policy-Instanzen einzeln ausführen zu lassen. Das wurde zum Anlass genommen, das zusätzliche Cmdlet Initialize-EmdbFastInstall einzuführen (siehe oben), das einen FastInstall-Job erzeugt. Zusammen mit diesem Kommando wurden auch zusätzliche Skript-Methoden in NwcServices.BlsAdministration.TypeData.ps1xml definiert, die Initialize-EmdbFastInstall entsprechend aufrufen:
    • ExecuteChanges an Objekten vom Typ EmdbComputer (entspricht dem Menüpunkt "Änderungen ausführen" im Computer-Kontextmenü in der DSM Konsole)
    • ExecuteNow an Objekten vom Typ EmdbPolicyInstance (entspricht dem Menüpunkt "Policy-Instanz sofort ausführen" im Kontextmenü von Policy-Instanzen in der DSM Konsole)


  • Der zusätzliche Schalter -SingleItemExpected wurde für die Get-... und Remove-... Cmdlets definiert (Ausnahmen: Get-/Remove-EmdbInstallationParameter, ...-EmdbVariableGroup, ...-EmdbVariable, ...-EmdbPolicy, ...-EmdbPolicyInstance). Der Parameter beschränkt die zulässige Ergebnismenge auf maximal ein Objekt. Bei mehr als einem Objekt wird eine entsprechende Fehlermeldung erzeugt.

  • Der zusätzliche Parameter -ItemID (alias -ID), zur Ermittlung von Objekten über ihre DSM-Datenbank ID, wurde für die Get-... und Remove-... Cmdlets definiert (Ausnahmen: Get-/Remove-EmdbInstallationParameter, Get-/Remove-EmdbVariableGroup, Get-/Remove-EmdbVariable, Remove-EmdbPolicy, Remove-EmdbPolicyInstance).

    Bei Get-EmdbPolicy und Get-EmdbPolicyInstance ist auch die Angabe von ID-Listen möglich.

  • Für den Parameter -ValueType des Cmdlets Update-EmdbObjectSchema wurde die zusätzliche Option Boolean definiert. Diese ermöglicht es, Schemaerweiterungen vom Typ „Boolesch“ zu erstellen.

  • Für das Cmdlet Update-EmdbObjectSchema wurde der zusätzliche Parameter -NoDefaultValue definiert. Dieser ermöglicht es, den Vorgabewert einer Schemaerweiterung auf „Nicht angegeben“ (NULL) zurückzusetzen. Der Parameter -NoDefaultValue ist nur zusammen mit -ModifyProperty verfügbar. Beim Erstellen einer Schemaerweiterung hat das Weglassen des Parameters -DefaultValue die gleiche Wirkung.


  • Mit DSM 2015.1 ist die SOAP API CreateImageFromComputerState entfallen. Davon betroffen ist das Cmdlet New-EmdbStateImage. Wird beim Aufruf eine DSM Version größer gleich 2015.1 festgestellt, dann wird eine hinweisende Warnung angezeigt, und der Vorgang wird abgebrochen. Mit dem Parameter -TryAnyway kann man die Ausführung erzwingen, und ggfs. auf die entsprechende DSM SOAP Fehlermeldung reagieren.

  • Zusätzliche Methoden für Objekte vom Typ EmdbComputer, EmdbUser und EmdbSoftware (Softwarepakete etc.) zur Anpassung der Mitgliedschaften in statischen Gruppen bzw. Software-Kategorien:
    • AddTo:                Eine oder mehrere Mitgliedschaften hinzufügen (dafür zwei Varianten der Methode)
    • RemoveFrom:        Eine oder mehrere Mitgliedschaften entfernen (dafür zwei Varianten der Methode)

  • Zusätzliche Methoden für Objekte vom Typ EmdbGroup und EmdbSoftwareCategory zur Anpassung der Mitgliedschaften:
    • AddMembers:        Mehrere Mitgliedschaften hinzufügen (neben AddMember für eine Mitgliedschaft)
    • RemoveMembers:        Mehrere Mitgliedschaften entfernen (neben RemoveMember für eine Mitgliedschaft)

  • Bei Add-EmdbGroupMember und Remove-EmdbGroupMember werden als Werte für die -Group und -Member Parameter statt EmdbItem- nur noch EmdbGroup- bzw. EmdbObject-Objekte bzw. -Pfade zu solchen Objekte akzeptiert. Damit werden unpassende Objekte bereits von PowerShell (außerhalb des Kommandos) zurückgewiesen bzw. ignoriert.

  • Es wurde eine Möglichkeit geschaffen, gezielt einzelne Eigenschaften eines Objektes zu aktualisieren. Dafür wurde die zusätzliche Methode UpdateProperties für die Basistypen EmdbObject, EmdbAssociation und EmdbPolicy definiert. Eingabeparameter ist jeweils eine Liste der Namen der zu aktualisierenden Eigenschaften. Dabei kann die Eigenschaftengruppe angegeben werden - Format: <Gruppe>.<Eigenschaft>. Zusätzlichen Varianten von UpdateProperties sind jeweils entsprechend zu den Varianten der Methode Update definiert.

    Bei der Verwendung von UpdateProperties ist zu beachten, dass beim Aktualisierungsvorgang die Werte der nicht betroffenen Eigenschaften neu eingelesen werden. Das heißt "Änderung Eigenschaft A -> Änderung Eigenschaft B -> Aktualisierung Eigenschaft A -> Aktualisierung Eigenschaft B" funktioniert nicht, da mit "Aktualisierung Eigenschaft A" die vorgenommene "Änderung Eigenschaft B" überschrieben wird.

    Stattdessen sollte nach
    1. "Änderung Eigenschaft A -> Aktualisierung Eigenschaft A -> Änderung Eigenschaft B -> Aktualisierung Eigenschaft B" oder nach
    2. "Änderung Eigenschaft A -> Änderung Eigenschaft B -> Aktualisierung Eigenschaften A und B" vorgegangen werden.

  • Für das DSM PowerShell-Laufwerk (Typ BlsEmdbDriveInfo) wurden zusätzliche Eigenschaften definiert:
    • ClientInfo:        Identifikation des BLS-Clients, bestehend aus Name und Version, die bei jeder SOAP-Anfrage mitgesendet wird. Vorbelegt mit "BlsEmdb" und der Versionsnummer der DLL.
                     Die Information taucht z.B. im bls_AdministrationWebService.log auf und kann dafür zur Unterscheidung von Client-Anwendungen angepasst werden.
    • UserInfo:        Enthält Informationen zum identifizierten ausführenden Benutzer(-objekt). Neben der DSM-Datenbank ID die Attribute IsAnonymous, IsSystem und IsSupervisor.

  • Diverse Objekttypen, (Skript-)Eigenschaften und (Skript-)Methoden, die aus Gründen der Abwärtskompatibilität zu DSM Versionen vor 2013.2 noch vorhanden waren, wurden entfernt. Beim Aufruf einiger Methoden, die nicht mehr verwendet werden sollen, wird eine entsprechende Warnmeldung ausgegeben, die ankündigt, dass diese Methoden in absehbarer Zeit nicht mehr vorhanden sein werden. Entfernt wurden 15 Objekttypen, 36 Skript-Eigenschaften und 11 Skript-Methoden.

  • BugFix: Die GetChildItem()-Methode von Software-Ordnern (EmdbSoftwareLibrary und EmdbSoftwareFolder) lieferte keine untergeordneten Software-Ordner, wenn der Parameter allRevisions deaktiviert ist (Standardwert). Konsequenz: wurde diese Methode in der Vergangenheit verwendet, werden jetzt (vielleicht unerwartet aber korrekterweise) zusätzlich Software-Ordner-Objekte in der Ergebnismenge geliefert.