How to manage App-V packages running on a stand-alone computer by using Windows PowerShell

Applies to:

  • Windows 10
  • Windows 11

The following sections explain how to perform various management tasks on a stand-alone client computer with Windows PowerShell cmdlets.

Return a list of packages

Enter the Get-AppvClientPackage cmdlet to return a list of packages entitled to a specific user. Its parameters are -Name, -Version, -PackageID, and -VersionID.

For example:

Get-AppvClientPackage –Name "ContosoApplication" -Version 2

Add a package

Use the Add-AppvClientPackage cmdlet to add a package to a computer.

Important

This example only adds a package. It does not publish the package to the user or the computer.

For example:

$Contoso = Add-AppvClientPackage \\\\path\\to\\appv\\package.appv

Publish a package

Use the Publish-AppvClientPackage cmdlet to publish a package that has been added to either a specific user or globally to any user on the computer.

Enter the cmdlet with the application name to publish it to the user.

Publish-AppvClientPackage "ContosoApplication"

To publish the application globally, just add the -Global parameter.

Publish-AppvClientPackage "ContosoApplication" -Global

Publish a package to a specific user

Note

You must use App-V 5.0 SP2 Hotfix Package 5 or later to use this parameter.

An administrator can publish a package to a specific user by specifying the optional –UserSID parameter with the Publish-AppvClientPackage cmdlet, where -UserSID represents the end user’s security identifier (SID).

To use this parameter:

  • You can run this cmdlet from the user or administrator session.
  • You must be logged in with administrative credentials to use the parameter.
  • The end user must be signed in.
  • You must provide the end user’s security identifier (SID).

For example:

Publish-AppvClientPackage "ContosoApplication" -UserSID S-1-2-34-56789012-3456789012-345678901-2345

Add and publish a package

Use the Add-AppvClientPackage cmdlet to add a package to a computer and publish it to the user.

For example:

Add-AppvClientPackage <path to App-V package> | Publish-AppvClientPackage

Unpublish an existing package

Use the Unpublish-AppvClientPackage cmdlet to unpublish a package which has been entitled to a user but not remove the package from the computer.

For example:

Unpublish-AppvClientPackage "ContosoApplication"

Unpublish a package for a specific user

Note

You must use App-V 5.0 SP2 Hotfix Package 5 or later to use this parameter.

An administrator can unpublish a package for a specific user by using the optional -UserSID parameter with the Unpublish-AppvClientPackage cmdlet, where -UserSID represents the end user’s security identifier (SID).

To use this parameter:

  • You can run this cmdlet from the user or administrator session.
  • You must sign in with administrative credentials to use the parameter.
  • The end user must be signed in.
  • You must provide the end user’s security identifier (SID).

For example:

Unpublish-AppvClientPackage "ContosoApplication" -UserSID S-1-2-34-56789012-3456789012-345678901-2345

Remove an existing package

Use the Remove-AppvClientPackage cmdlet to remove a package from the computer.

For example:

Remove-AppvClientPackage "ContosoApplication"

Note

App-V cmdlets have been assigned to variables for the previous examples for clarity only; assignment is not a requirement. Most cmdlets can be combined as displayed in Add and publish a package. For a detailed tutorial, see App-V 5.0 Client PowerShell Deep Dive.

Enable only administrators to publish or unpublish packages

Starting in App-V 5.0 SP3, you can use the Set-AppvClientConfiguration cmdlet and -RequirePublishAsAdmin parameter to enable only administrators (not end users) to publish or unpublish packages.

You can set the -RequirePublishAsAdmin parameter to the following values:

  • 0: False
  • 1: True

For example:

Set-AppvClientConfiguration –RequirePublishAsAdmin1

To use the App-V Management console to set this configuration, see How to publish a package by using the Management Console.

About pending packages: UserPending and GlobalPending

Starting in App-V 5.0 SP2, if you run a Windows PowerShell cmdlet that affects a package currently in use, the task you're trying to perform is placed in a pending state. For example, if you try to publish a package when an application in that package is being used, and then run Get-AppvClientPackage, the pending status appears in the cmdlet output as follows:

Cmdlet output item Description
UserPending Indicates whether the listed package has a pending task that is being applied to the user:
- True
- False
GlobalPending Indicates whether the listed package has a pending task that is being applied globally to the computer:
- True
- False

The pending task will run later, according to the following rules:

Task type Applicable rule
User-based
(for example, publishing a package to a user)
The pending task will be performed after the user logs off and then logs back on.
Globally based
(for example, enabling a connection group globally)
The pending task will be performed when the computer is shut down and then restarted.

For more information about pending tasks, see Upgrading an in-use App-V package.