diff --git a/windows/application-management/app-v/appv-maintaining-appv.md b/windows/application-management/app-v/appv-maintaining-appv.md index 6e1292f604..6372fefcc7 100644 --- a/windows/application-management/app-v/appv-maintaining-appv.md +++ b/windows/application-management/app-v/appv-maintaining-appv.md @@ -16,13 +16,15 @@ After you have deployed App-V for Windows 10, you can use the following informat ## Moving the App-V server -The App-V server connects to the App-V database. Therefore you can install the management component on any computer on the network and then connect it to the App-V database. For more information, see [How to move the App-V server to another computer](appv-move-the-appv-server-to-another-computer.md). +The App-V server connects to the App-V database, which means you can install the management component and connect it to the App-V database on any computer on the network. For more information, see [How to move the App-V server to another computer](appv-move-the-appv-server-to-another-computer.md). ## Determine if an App-V application is running virtualized -Independent software vendors (ISV) who want to determine if an application is running virtualized with App-V should open a named object called **AppVVirtual-<PID>** in the default namespace. For example, Windows API **GetCurrentProcessId()** can be used to obtain the current process's ID, for example 4052, and then if a named Event object called **AppVVirtual-4052** can be successfully opened using **OpenEvent()** in the default namespace for read access, then the application is virtual. If the **OpenEvent()** call fails, the application is not virtual. +Independent software vendors (ISV) who want to determine if an application is running virtualized with App-V should open a named object called **AppVVirtual-<PID>** in the default namespace (PID stands for process ID). To find the process ID of the process you're currently using, enter the Windows API **GetCurrentProcessId()**. -Additionally, ISV’s who want to explicitly virtualize or not virtualize calls on specific APIs with App-V 5.1 and later, can use the **VirtualizeCurrentThread()** and **CurrentThreadIsVirtualized()** functions implemented in the AppEntSubsystems32.dll module. These provide a way of hinting at a downstream component that the call should or should not be virtualized. +For example, let's say the process ID is 4052. If you can successfully open a named Event object called **AppVVirtual-4052** with the **OpenEvent()** API in the default read access namespace, then the application is virtual. If the **OpenEvent()** call fails, the application isn't virtual. + +Additionally, ISVs who want to explicitly virtualize or not virtualize calls on specific APIs with App-V 5.1 and later can use the **VirtualizeCurrentThread()** and **CurrentThreadIsVirtualized()** functions implemented in the AppEntSubsystems32.dll module to hint to a downstream component whether the call should be virtualized or not. ## Have a suggestion for App-V? diff --git a/windows/application-management/app-v/appv-manage-appv-packages-running-on-a-stand-alone-computer-with-powershell.md b/windows/application-management/app-v/appv-manage-appv-packages-running-on-a-stand-alone-computer-with-powershell.md index e3c9eca586..dd6ed9a6ca 100644 --- a/windows/application-management/app-v/appv-manage-appv-packages-running-on-a-stand-alone-computer-with-powershell.md +++ b/windows/application-management/app-v/appv-manage-appv-packages-running-on-a-stand-alone-computer-with-powershell.md @@ -1,6 +1,6 @@ --- -title: How to Manage App-V Packages Running on a Stand-Alone Computer by Using Windows PowerShell (Windows 10) -description: How to Manage App-V Packages Running on a Stand-Alone Computer by Using Windows PowerShell +title: How to manage App-V packages running on a stand-alone computer by using Windows PowerShell (Windows 10) +description: How to manage App-V packages running on a stand-alone computer by using Windows PowerShell. author: MaggiePucciEvans ms.pagetype: mdop, appcompat, virtualization ms.mktglfcycl: deploy @@ -8,128 +8,82 @@ ms.sitesec: library ms.prod: w10 ms.date: 04/19/2017 --- +# How to manage App-V packages running on a stand-alone computer by using Windows PowerShell +>Applies to: Windows 10, version 1607 -# How to Manage App-V Packages Running on a Stand-Alone Computer by Using Windows PowerShell +The following sections explain how to perform various management tasks on a stand-alone client computer with Windows PowerShell cmdlets. -**Applies to** -- Windows 10, version 1607 +## 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*. -The following sections explain how to perform various management tasks on a stand-alone client computer by using Windows PowerShell: +For example: -- [To return a list of packages](#bkmk-return-pkgs-standalone-posh) +```PowerShell +Get-AppvClientPackage –Name “ContosoApplication” -Version 2 +``` -- [To add a package](#bkmk-add-pkgs-standalone-posh) +## Add a package -- [To publish a package](#bkmk-pub-pkg-standalone-posh) +Use the **Add-AppvClientPackage** cmdlet to add a package to a computer. -- [To publish a package to a specific user](#bkmk-pub-pkg-a-user-standalone-posh) +>[!IMPORTANT] +>This example only adds a package. It does not publish the package to the user or the computer. -- [To add and publish a package](#bkmk-add-pub-pkg-standalone-posh) +For example: -- [To unpublish an existing package](#bkmk-unpub-pkg-standalone-posh) +```PowerShell +$Contoso = Add-AppvClientPackage \\\\path\\to\\appv\\package.appv +``` -- [To unpublish a package for a specific user](#bkmk-unpub-pkg-specfc-use) +## Publish a package -- [To remove an existing package](#bkmk-remove-pkg-standalone-posh) +Use the **Publish-AppvClientPackage** cmdlet to publish a package that has been added to a specific user or globally to any user on the computer. -- [To enable only administrators to publish or unpublish packages](#bkmk-admins-pub-pkgs) +Enter the cmdlet with the application name to publish it to the user. -- [Understanding pending packages (UserPending and GlobalPending)](#bkmk-understd-pend-pkgs) +```PowerShell +Publish-AppvClientPackage “ContosoApplication” +``` -## To return a list of packages +To publish the application globally, just add the *-Global* parameter. +```Powershell +Publish-AppvClientPackage “ContosoApplication” -Global +``` -Use the following information to return a list of packages that are entitled to a specific user: +## Publish a package to a specific user -**Cmdlet**: Get-AppvClientPackage +>[!NOTE]   +>You must use App-V 5.0 SP2 Hotfix Package 5 or later to use this parameter. -**Parameters**: -Name -Version -PackageID -VersionID - -**Example**: Get-AppvClientPackage –Name “ContosoApplication” -Version 2 - -## To add a package - - -Use the following information 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. - -  - -**Cmdlet**: Add-AppvClientPackage - -**Example**: $Contoso = Add-AppvClientPackage \\\\path\\to\\appv\\package.appv - -## To publish a package - - -Use the following information to publish a package that has been added to a specific user or globally to any user on the computer. - - ---- - - - - - - - - - - - - - - - - -
Publishing methodCmdlet and example

Publishing to the user

Cmdlet: Publish-AppvClientPackage

-

Example: Publish-AppvClientPackage “ContosoApplication”

Publishing globally

Cmdlet: Publish-AppvClientPackage

-

Example: Publish-AppvClientPackage “ContosoApplication” -Global

- -  - -## To 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). +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 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). -- You must be logged in with administrative credentials to use the parameter. +For example: -- The end user must be logged in. +```PowerShell +Publish-AppvClientPackage “ContosoApplication” -UserSID S-1-2-34-56789012-3456789012-345678901-2345 +``` -- You must provide the end user’s security identifier (SID). +## Add and publish a package -**Cmdlet**: Publish-AppvClientPackage +Use the **Add-AppvClientPackage** cmdlet to add a package to a computer and publish it to the user. -**Example**: Publish-AppvClientPackage “ContosoApplication” -UserSID S-1-2-34-56789012-3456789012-345678901-2345 +For example: -## To add and publish a package - - -Use the following information to add a package to a computer and publish it to the user. - -**Cmdlet**: Add-AppvClientPackage - -**Example**: Add-AppvClientPackage \\\\path\\to\\appv\\package.appv | Publish-AppvClientPackage - -## To unpublish an existing package +```PowerShell +Add-AppvClientPackage \\\\path\\to\\appv\\package.appv | Publish-AppvClientPackage +``` +## Unpublish an existing package Use the following information to unpublish a package which has been entitled to a user but not remove the package from the computer. @@ -137,7 +91,7 @@ Use the following information to unpublish a package which has been entitled to **Example**: Unpublish-AppvClientPackage “ContosoApplication” -## To unpublish a package for a specific user +## Unpublish a package for a specific user **Note**