Managing the Global Software Library

Unfortunately access to the Global Software Library is somewhat restricted. The SOAP interface, that is exploited by the PowerShell Extensions for Ivanti DSM, does not support the filesystem operations, that are necessary for most operations in the Global Software Library. These operations are executed by the DSM Management Console directly. Nevertheless creating software folders, software categories and to a certain extend the creation of  Software Packages is implemented. Releasing software packages, performing pilot installations and assigning software packages to clients and a few more operations are supported.   


Change to the root directory of the Global Software Library by executing the command


cd "emdb:\rootDSE\Global Software Library"


Managing Software Folders and Software Categories

The cmdlet New-EmdbSoftwareFolder can be used to create new folders. Create a new software folder by executing the command


New-EmdbSoftwareFolder "Software Set Library"


Next create a software category. Software categories are the Global Software Library's companion piece to groups in the context of the Organization Directory. Therefore creating and managing such objects is similar. As an example create the static software category "Tools & Utilities"  and make the software package named "Adobe Reader 9.0" a member of this category:


$MySWCategory = New-EmdbSoftwareCategory -Path "Tools & Utilities"

$MyPackage = Get-EmdbSoftwarePackage "emdb:\rootDSE\Global Software Library\Application Library\Adobe\Adobe Reader\Adobe Reader 9.0"

$MySWCategory.AddMember($MyPackage)


Hint: For a successful execution of the above commands make sure a software package named "Adobe Reader 9.0" exists in the folder "Application Library\Adobe\Adobe Reader".


Analogical to Dynamic Groups in the context of the Organization Directory, a dynamic software category is created by executing the command 


New-EmdbSoftwareCategory -Path "Adobe-Software" -Dynamic -Filter "Software.Vendor:IgnoreCase=Adobe"


Consequently static and dynamic software category objects provide a method named GetMembers() to determine the members of the category.


Managing properties of Software Packages

Due to restricted support of filesystem operations by the SOAP interface some actions like creating or deleting software packages, preparing packages for distribution or setting up the distribution plan of Software Packages are not supported. But the manipulation of properties of existing Software Packages as well as some other operations are supported. As an example try to release an existing Software Package:


$MyPackage.ReleaseStatus = "Released"

$MyPackage.Update()


Hint: In contrast to the same operation in the DSMC releasing a software package via the PowerShell Extensions for Ivanti DSM does not define the distribution settings resp. does not prepare the package for distribution in an automatic fashion.


Of course it is possible to manipulate other properties like the installation order, the client- and server prerequisites or the reboot behaviour of a Software Package, but only before the package has been released. In general, all properties available in the DSMC's property table of a Software Package can be manipulated with the PowerShell Extensions.   


Please notice that you have to write changes to object properties back to the DSMDB by calling the object's Update()-method. It is sufficient to call the method once after several changes to the same object.


Creating Software Packages


Due to the fact that not all required operations are implemented by the SOAP interface, the creation of  Software Packages is a multi level procedure. An overview about the procedure is given in section Creating andRemoving Software Packages.


Performing Pilot Installations

Pilot installations are similar to standard policies. So you can assign software packages to clients, that are not released yet. This is discussed further in the following section Using Policies.