New in version 3.4


The current release 3.4 of the PowerShell Extensions is a compatibility-release.  As the internal object-model of DSM has changed significantly both in 2015.2 as well as again in 2016.1 has, older versions of the PowerShell Extension are not able to connect to this DSM releases. Release version 3.4 reestablishes this compatibility and thus allows to access your DSM 2016.1 environment as you are used to in prior releases. Furthermore, new object-types, properties and data types were implemented, in order to provide complete compatibility.


Changes, enhancements and optimizations in detail:

  • The logic for EmdbPolicyInstance.GetAssignedObjectID()was changed (also applies to EmdbPolicyInstance.GetAssignedObject()and EmdbPolicyInstance.AssignedObjectName):
    • Old: Software-object or -ID respectively, based on the assigned configuration.
    • New:
      1. Software-object or -ID respectively based on the desired configuration. If there is no desired configuration, then
      2. Software-object or -ID respectively based on the assigned configuration. If there ist no assigned configuration then
      3. Software-object or -ID respectively based on the corresponding policy (AssignedObjectID of the policy).

  • The logic for EmdbPolicyInstance.GetInstalledPackageID() was changed (also applies to EmdbPolicyInstance.GetInstalledPackage()):
    • Old: Software-object or -ID respectively based on the installed configuration.
    • New:
      1. Software-object or -ID respectively based on the installed configuration. If there is no installed configuration, then
      2. Software-object or -ID respectively based on the last executed configuration.

  • Additional parameter -Priority for New-EmdbPolicy, specifying the priority for a new policy.
    Possible values are dedicated numbers, or Lowest, Highest and Default, resulting in a calculation of the priority-value the way the DSM console does. If this parameter is omitted, a default value is assigned.
    There are several different possibilities of specifying the Priority-parameter:
    • <Numerical value with or without sign>: The priority of the newly created policy is set the value provided.
    • Lowest: The newly created policy receives a lower priority as the lowest priority (=highest numerical value) of all policies of the same type that have been created until now for any revision of the package in question. The highest available value of any of these policies is increased by 100.
    • Highest: The newly created policy receives a higher priority as the highest priority (=lowest numerical value) of all policies of the same type that have been created until now for any revision of the package in question. The lowest available value of any of these policies is decreased by 100.
      Note: Despite the behaviour of the DSM console, PSX tries to achieve a positive value. That means, if the highest priority-value so far is smaller than 100, instead of setting a negative value, the average ist set to 0.
    • Lowest:<Index>: The priority-value of the newly created policy is inserted into the list of the priority-values available until now (see above Lowest) at the position specified with <index> - starting with the lowest priority. That means, the value specified for <index> equals the number of priorities, that should be lower. Consequently Lowest:0 is equivalent to Lowest.
    • Highest:<Index>: The priority-value of the newly created policy is inserted into the list of the priority-values available until now (see above Highest) at the position specified with <index> - starting with the highest priority. That means, the value specified for <index> equals the number of priorities, that should be higher. Consequently Highest:0 is equivalent to Highest.
    • Default: The behaviour is equivalent to Lowest with the following exceptions:
      • For some policy-types a priority-value of 1000 is enforced by the BLS – those types are: Job-Policy, Software-Set-Component-Policy and Citrix-Farm-Policy.
      • For Deny-policies, as done by the DSM console, the fixed value -2147483648 is applied.

Note: By using the parameter-value Default, the user has the option of specifying a priority-value that adheres to the system's standards. On the other hand, he or she is not prevented from setting non-valid values - that means, it's the BLS's decision and not the decision of New-EmdbPolicy, if for example a Job-policy with a priority-value of 999 can be created or not.

    • Parameter is omitted: a default numerical value is used: -2147483648 for Deny-policies, 1000 for other policy-types.

  • Additional parameter -InstanceCreationMode for New-EmdbPolicy, specifying the mode how new policy-instances of the policy are created.
    Possible values are: Automatically, OnDemand, NoLonger.
    Note: for DSM 2015.2 and higher environments, when specifying the value SwShopPolicy for the PolicyType-parameter, the type is converted to SwPolicy and for the property InstanceCreationMode the value OnDemand is assumed. Additionally a warning is displayed.

  • Additional parameter -AllowByEndUser for New-EmdbPolicy, corresponding to the „…allowed by end user“-options of the newly created policy.
    Possible values are: Cancel, Install, Reinstall, Repair, Uninstall, Update, All and combinations of these values.

  • Additional parameter -WakeUpMode for New-EmdbPolicy.
    Possible values are: None, Installer and ComputerAndInstaller.

  • Additional parameter -WakeUpTimeSpan for New-EmdbPolicy.
    Valid parameter-values are all values that can be converted into a TimeSpan-object. For example „1:30:00“ (1 hour and 30 mins) or any numerical value between 1 and 1000000, resulting in the corresponding minute-count.

  • Additional method PrepareDistribution for objects of type EmdbSoftwarePackage.
    Note: this method is calling the corresponding SOAP API for preparing the distribution. As the required changes in the file system are not executed by the BLS, the execution of the call is rejected with an error message. To enforce execution, the (optional) parameter customDepotManagement has to be used (see also Delete()-method of EmdbSoftwarePackage-objects).

  • Additional object-types there were introduced in DSM 2016.1:
    • EmdbDeviceControlPolicy
    • EmdbDeviceClass
    • EmdbWindowsDeviceClass
    • EmdbDeviceAssignmentObject
    • EmdbEScriptRedistributablePackage
    • EmdbLPRUnixPatchCatalog
    • EmdbLPRUnixPatchPackage
    • EmdbUniversalScriptPatchCatalog
    • EmdbUniversalScriptPatchPackage
    • EmdbUniversalScriptRedistributablePackage

  • Additional properties that were implemented in DSM 2016.1:
    • InstalledOSVersion in propertygroup BasicInventory
    • PositionInTimeSpan,
    • AdminWakeUpTime,
    • AdminWakeUpMode and
    • CalculatedWakeUpTime all in propertygroup Computer
    • WindowsDeviceClass and
    • DeviceClass both in propertygroup Device
    • Checksum in propertygroup FilesetProps
    • PolicyId and
    • ComputerId both in propertygroup HEATSMAssignmentInfo
    • ExecutionDateIsLocalTime in propertygroup Job
    • OSPlatform in propertygroup PatchCategoryObject
    • WakeUpMode and
    • WakeUpTimeSpan both in propertygroup Policy
    • ReplacementId and
    • SoftwareTags both in propertygroup Software

  • Additional data type for properties introduced in DSM 2016.1:
    • Version (used for property BasicInventory.InstalledOSVersion)

  • Properties renamed in PSX 3.4:
    • DisplayOrderId to DisplayOrder for object of type EmdbVariable and EmdbVariableGroup (for compatibility reasons the propertyname used up to now is kept).

  • Properties removed in PSX 3.4:
    • WakeUpForExecution for objects of type Policy – replaced with WakeUpMode (for compatibility reasons the old property used up to now is kept)