The App-V object can be used to manipulate Microsoft Application Virtualization version 5 Applications. (For the App-V 4.x scriptable object see the previous chapter…)
The ‘Base’ object is ‘ScenseAppV5’. The ScenseAppV5 object provides general administrative functions.
ScenseAppV5
Properties | Description |
Applications | Reference to the Applications collection |
Packages | Reference to the Packages collection |
ConnectionGroups
|
Reference to the ConnectionGroups collection
|
Methods | Description |
AddAppvPublishingServer
|
Specify an App-V 5 publishing server for the client Requires admin-rights
Function AddAppvPublishingServer(url as String , serverName as String ) as Boolean |
AddConnectionGroup
|
Create a new connection group of 2 or more Packages. This method accepts a collection of ‘PackageBrief’ objects. Requires admin-rights
Function AddConnectionGroup(groupID as String , versionID as String , groupName as String , priority as long , Packages as PackageBriefsCollection ) as Boolean |
AddPackage
|
Add an App-V application package to the client. Requires admin-rights
Function AddPackage(packagePath as String ) as Boolean |
CheckClientStatus
|
Test if the App-V 5 client is available
Function CheckClientStatus() as Boolean |
DisableConnectionGroup
|
Disable the specified Connection Group for the current user.
Function DisableConnectionGroup(groupID as String , versionID as String ) as Boolean |
EnableConnectionGroup
|
Enable the specified Connection Group for the current user.
Function EnableConnectionGroup(groupID as String , versionID as String ) as Boolean |
GetApplicationPackageGUID
|
Retrieve the Package GUID for the given application name.
Function GetApplicationPackageGUID(applicationName as String ) as String |
GetPackagePercentLoaded
|
Retrieve the percentage of data that is currently loaded for the package. If this returns 100, the package is available offline.
Function GetPackagePercentLoaded(packageID as String , versionID as String ) as long |
GetPackageSize
|
Get the size (in bytes) of the specified package.
Function GetPackageSize(packageID as String , versionID as String ) as Variant |
IsApplicationInstalled
|
Checks whether or not the specified application is installed.
Function IsApplicationInstalled(applicationName as String ) as Boolean |
IsConnectionGroupCreated
|
Checks whether or not a Connection Group is already created for the specified identifiers.
Function IsConnectionGroupCreated(groupID as String , versionID as String , Packages as PackageBriefsCollection ) as Boolean |
IsConnectionGroupEnabled
|
Checks whether or not the specified Connection Group is enabled for the current user.
Function IsConnectionGroupEnabled(groupID as String , versionID as String ) as Boolean |
IsPackageInstalled
|
Checks whether or not the specified Package is installed.
Function IsPackageInstalled(packageID as String , versionID as String , Optional useWMI as Boolean = False ) as Boolean |
IsPackagePublished
|
Checks whether or not the specified Package is published for the current user.
Function IsPackagePublished(packageID as String , versionID as String ) as Boolean |
MountPackage
|
Completely load all package data, making it available offline. Requires admin-rights
Function MountPackage(packageID as String , versionID as String ) as Boolean |
PublishPackage
|
Make an application available to the current user.
Function PublishPackage(packageID as String , versionID as String ) as Boolean |
Refresh
|
Refresh all collections
Sub Refresh( Optional ComputerName as String = “.”) |
RemoveappvPublishingServer
|
Remove the App-V-5 publishing server from the client. Requires admin-rights
Function RemoveAppvPublishingServer(serverName as String ) as Boolean |
Remove Connection Group
|
Remove the specified Connection Group from the client. Requires admin-rights
Function RemoveConnectionGroup(groupID as String , versionID as String ) as Boolean |
RemovePackage
|
Remove the specified application package from the client. Requires Admin-rights
Function RemovePackage(packageID as String , versionID as String ) as Boolean |
RepairConnectionGroup
|
Repair/reset the current user data for the specified Connection Group.
Function RepairConnectionGroup(groupID as String , versionID as String ) as Boolean |
RepairConnectionGroupOrPackage
|
Repair/reset the current user data for the specified Identifiers for Connection Group or Package.
Function RepairConnectionGroupOrPackage(groupID as String , versionID as String ) as Boolean |
RepairPackage
|
Repair/reset the current user data for the specified Package
Function RepairPackage(packageID as String , versionID as String ) as Boolean |
StartAppvVirtualProcess
|
Start a process inside the virtual environment of the specified Package or Connection Group.
Function StartAppvVirtualProcess(packageID as String , versionID as String , executableFilePath as String ) as Boolean |
StopConnectionGroup
|
Shutdown the virtual environment for the specified Connection Group Requires admin-rights
Function StopConnectionGroup(groupID as String , versionID as String ) as Boolean |
StopPackage
|
Shutdown the virtual environment for the specified Package Requires admin-rights
Function StopPackage(packageID as String , versionID as String ) as Boolean |
SyncAppvPublishingServer
|
Synchronize the client with the specified publishing server.
Function SyncAppvPublishingServer(serverName as String ) as Boolean |
UnpublishPackage
|
Make the specified application package unavailable to the current user.
Function UnpublishPackage(packageID as String , versionID as String ) as Boolean |
Applications
The Applications collection of the ScenseAppV5 object consists of one or more Application objects.
Properties | Description |
Count | Number of Applications in the collection |
Item
|
A specific Application item
|
Methods | Description |
GetApplication
|
Get the Application object for the specified name
Function GetApplication(name as String ) as Application |
GetApplicationById
|
Get the Application object for the specified GUID
Function GetApplicationById(ApplicationGUID as String ) as Application |
GetPackageApplications
|
Get a collection of Applications for the specified Package identifiers.
Function GetPackageApplications(packageGUID as String , versionGUID as String ) as Applications |
Refresh
|
Refresh the collection
Function Refresh() |
Application
The Application objects are collected in the Applications collection of the ScenseAppV5 object.
Properties | Description |
ApplicationId | Application GUID |
EnabledForUser | Is this application enabled for the current user |
EnabledGlobally | Is this application enabled for all users |
PackageVersionId | Version GUID of the package |
TargetPath | Path from where the package was loaded |
Version | Version of the application |
Name | Application name |
PackageGUID | Package GUID |
Description | Description for the application |
Packages
The Packages collection of the ScenseAppV5 object consists of one or more Package objects.
Properties | Description |
Count | Number of Packages in the collection |
Item
|
Package object item
|
Methods | Description |
GetPackage
|
Retrieve a Package object for the specified name
Function GetPackage(name as String ) as Package |
GetPackage_2
|
Retrieve a Package object for the specified identifiers.
Function GetPackage_2(packageGUID as String , versionGUID as String ) as Package |
Refresh | Refresh the collection |
Package
The Package objects are collected in the Packages collection of the ScenseAppV5 object.
Properties | Description |
Applications | Collection of Application objects associated with the package |
InUse | Is the package currently in use |
IsPublishedGlobally | Is the package published to all users |
IsPublishedToUser | Is the package published to the current user |
PackageSize | Size of the package in bytes |
Path | Path from which the package was loaded |
PercentLoaded | Percentage of the package that is already loaded |
UserConfigurationData | User configuration data |
Version | Package version |
Name | Package name |
PackageGUID | Package GUID |
VersionGUID | Package Version GUID |
Description
|
Package description
|
Methods | Description |
Mount
|
Completely load the package for offline use.
Function Mount() as Boolean |
Publish
|
Make the application package available for the current user.
Function Publish() as Boolean |
Remove
|
Remove the package from the client. Requires admin-rights
Function Remove() as Boolean |
Repair
|
Repair/reset the current user data for the application package.
Function Repair() as Boolean |
Stop
|
Shutdown the virtual environment for the application package. Requires admin-rights
Function Stop() as Boolean |
Unpublish
|
Make the application package unavailable for the current user.
Function Unpublish() as Boolean |
ConnectionGroups
The ConnectionGroups collection of the ScenseAppV5 object consists of one or more ConnectionGroup objects.
Properties | Description |
Count | The number of ConnectionGroup objects in the collection |
Item
|
A ConnectionGroup object item
|
Methods | Description |
GetConnectionGroup
|
Retrieve a ConnectionGroup object for the specified name
Function GetConnectionGroup(name as String ) as ConnectionGroup |
GetConnectionGroupById
|
Retrieve a ConnectionGroup object for the specified identifiers
Function GetConnectionGroupById(groupID as String ) as ConnectionGroup |
Refresh | Refresh the collection
Function Refresh() |
ConnectionGroup
The ConnectionGroup objects are collected in the ConnectionGroups collection of the ScenseAppV5 object.
Properties | Description |
InUse | Is the ConnectionGroup in use |
IsEnabledGlobally | Is the ConnectionGroup enabled for all users |
IsEnabledToUser | Is the ConnectionGroup enabled for the current user |
Packages | Collection of Package objects included in the ConnectionGroup |
PercentLoaded | Percentage of the combined packages already loaded |
GroupID | ConnectionGroup GUID |
Name | Name of the ConnectionGroup |
Priority | Priority of this ConnectionGroup (in relation to other ConnectionGroups that also include one or more packages included in this ConnectionGroup) |
VersionID | Version GUID of this ConnectionGroup |
Description
|
ConnectionGroup description
|
Methods | Description |
Disable
|
Disable the ConnectionGroup for this user
Function Disable() as Boolean |
Enable
|
Enable the ConnectionGroup for this user
Function Enable() as Boolean |
Repair
|
Repait/reset the current user data for the applications included in this ConnectionGroup
Function Repair() as Boolean |
PackageBrief
The PackageBrief object is used for ConnectionGroup handling.
Properties | Description |
Name | Name of the package |
PackageGUID | Package GUID |
VersionGUID | Version GUID |
Description | Package Description |
Usage:
Sub Scense_Main() Dim objApps ' Applications Dim objPackages ' Packages Dim objPackage ' Package Dim objApp ' Application Dim objConGroup ' ConnectionGroup WriteScenseLog "---ClientStatus-------" WriteScenseLog "CheckClientStatus returned:" & ScenseAppV5.CheckClientStatus() Call ScenseAppV5.Refresh ' all packages Set objPackages = ScenseAppV5.Packages For Each objPackage In objPackages WriteScenseLog "PackageName: " & objPackage.Name & " Guid=" & _ objPackage.packageGUID WriteScenseLog "Path:[" & objPackage.Path & "]" Next ' all connection groups For Each objConGroup In ScenseAppV5.ConnectionGroups WriteScenseLog "GroupName: " & objConGroup.Name & " [GroupId=" & _ objConGroup.GroupId & " VersionId=" & objConGroup.VersionId & "]" WriteScenseLog "GroupName: " & objConGroup.Name & " [IsEnabledToUser=" & _ objConGroup.IsEnabledToUser & " IsEnabledGlobally=" & objConGroup.IsEnabledGlobally & "]" WriteScenseLog "GroupName: " & objConGroup.Name & " [Priority=" & _ objConGroup.Priority & " PercentLoaded=" & objConGroup.PercentLoaded & "]" Next Dim i If objPackages.Count > 0 Then ' all package's applications For i=0 To ScenseAppV5.Packages.Count-1 WriteScenseLog "-------" WriteScenseLog "PackageName: " & ScenseAppV5.Packages(i).Name Set objApps = ScenseAppV5.Packages(i).Applications For Each objApp In objApps WriteScenseLog "ApplicationName: " & objApp.Name & " [Id=" & _ objApp.ApplicationId & "]" Next i=i+1 Next End If End Sub