New in version 3.1


In version 3.1 one new and several modified and extended cmdlets were implemented to further help and assist you in managing and using the new objects, functions and possibilities of DSM 2015.1. A total of 103 cmdlets is now available at your convenience:


Executing changes:



Further changes and optimizations:

  • The product name was changed to "PowerShell Extensions for Ivanti DSM". As a consequence, the registry value LicensePath, which can be used to specify the path to a centrally stored licensefile, is now expected to be found in HKEY_LOCAL_MACHINE\Software\NWC Services GmbH\PowerShell Extensions for Ivanti DSM. Further information can be found in chapter Central Licensefile Store.

  • Starting with DSM 2015.1 there is the possibility to execute single Policy-Instances. This new feature was taken as the opportunity to implement the new cmdlet Initialize-EmdbFastInstall (see above) that creates a FastInstall-Job. Together with this command additional script-methods in NwcServices.BlsAdministration.TypeData.ps1xml were defined that are calling Initialize-EmdbFastInstall accordingly:
    • ExecuteChanges on objects of type EmdbComputer (corresponds to the menu-entry "Execute Changes" in a computer's context menu in the DSM console)
    • ExecuteNow on objects of type EmdbPolicyInstance  (corresponds to the menu-entry "Execute policy instance now" in a Policy-Instance's context menu in the DSM console)


  • The additional switch -SingleItemExpected was introduced for the Get-... and Remove-... cmdlets (with the exception of Get-/Remove-EmdbInstallationParameter, ...-EmdbVariableGroup, ...-EmdbVariable, ...-EmdbPolicy, ...-EmdbPolicyInstance). This parameter limits the resultset to one object maximum. If more than one object is returned, a corresponding error is raised.

  • The additional parameter -ItemID (alias -ID) for retrieving objects via their DSM-database ID was introduced for the Get-... and Remove-... cmdlets (with the exception of: Get-/Remove-EmdbInstallationParameter, Get-/Remove-EmdbVariableGroup, Get-/Remove-EmdbVariable, Remove-EmdbPolicy, Remove-EmdbPolicyInstance).

    When using with Get-EmdbPolicy and Get-EmdbPolicyInstance it is also possible to supply ID-lists.

  • The additional option Boolean was defined for the parameter -ValueType of the Update-EmdbObjectSchema cmdlet. This enables creating Schema Extensions of type "Boolesch".

  • The new parameter -NoDefaultValue was added to the Update-EmdbObjectSchema cmdlet. This enables resetting the default value of an existing Schema Extension to "not defined" (NULL). The -NoDefaultValue-parameter is only available in conjunction with -ModifyProperty. When creating a new Schema Extension, omitting the -DefaultValue-parameter leads to the same result.


  • Starting with DSM 2015.1, the SOAP API CreateImageFromComputerState is dropped. This directly affects the New-EmdbStateImage cmdlet. When a DSM version of at least 2015.1 is recognized during calling, a warning is displayed and the call is cancelled. Using the -TryAnyway-parameter the execution can be enforced and an error is raised.

  • There are new methods for objects of type EmdbComputer, EmdbUser and EmdbSoftware (Software packages) for modifying membership in Static Groups and Software-Categories:
    • AddTo:                Add one or several memberships (thus two variants of the method)
    • RemoveFrom:        Remove one or several memberships (thus two variants of the method)

  • Additional methods for objects of type EmdbGroup and EmdbSoftwareCategory for modifying memberships:
    • AddMembers:        Add several memberships (besides AddMember for one membership)
    • RemoveMembers:        Remove several memberships (besides RemoveMember for one membership)

  • The Add-EmdbGroupMember and Remove-EmdbGroupMember cmdlets only accept EmdbGroup-objects for the -Group-parameter and EmdbObject-objects for the -Member-parameter or the respective paths to those objects. EmdbItem-objects are rejected. This way, not matching objects are filtered or ignored via PowerShell (outside the command).

  • A new possibility was implemented of updating dedicated single object-properties. Therefore the new method UpdateProperties was introduced for the basetypes EmdbObject, EmdbAssociation and EmdbPolicy. The method expects a list with the names of the properties to be updated. The propertygroup names can be supplied - format: <propertygroup>.<propterty>. Additional variants of UpdatePropterties are defined according the update()-method.

    When using UpdateProperties please pay attention to the fact that during the update process the values of not affected properties are refreshed. That means "change of property A -> change of property B -> update property A -> update property B" does not work, as the action "update property A" resets the "update property B" change.

    Instead one of the following processes should be used:
    1. "change of property A -> update property A -> change of property B -> update property B" or
    2. "change of property A -> change of property B -> update properties A and B".

  • New properties have been implemented for the DSM PowerShell-drive (type BlsEmdbDriveInfo):
    • ClientInfo:        Identification of the BLS-client, consisting of name and version, that is part of every SOAP-request. The default value is "BlsEmdb" and the version number of the DLL.
                     This information is for example visible in the bls_AdministrationWebService.log and can be modified for easier differentiation of client applications.
    • UserInfo:        Contains information on the identified executing user (-object). Besides the DSM-internal ID the following attributes IsAnonymous, IsSystem and IsSupervisor

  • Some object types, (script-) properties and (script-) methods, that were in place for compatibility reasons with DSM versions before 2013.2 were deleted. When calling some methods that are deprecated, a warning is issued saying that these methods will be removed in future versions. 15 object types, 36 script-properties and 11 script-methods have been removed.

  • BugFix: the GetChildItem()-method of Software-folders (EmdbSoftwareLibrary and EmdbSoftwareFolder) didn't return subordinate Software-folders if the parameter allRevisions is deactivated (default). Effect: if this method was used in the past, now additional Software-folder objects may be returned in the resultset (possibly unexpectedly but correctly).