mirror of
https://github.com/MicrosoftDocs/windows-itpro-docs.git
synced 2025-05-13 13:57:22 +00:00
Acrolinx score
This commit is contained in:
parent
40da2948f7
commit
6d7a30f811
@ -27,8 +27,8 @@ Previous versions of the App-V Sequencer required manual sequencing and updating
|
|||||||
Using the automatic sequencer to package your apps gives you the following benefits:
|
Using the automatic sequencer to package your apps gives you the following benefits:
|
||||||
|
|
||||||
* **Automatic virtual machine (VM) sequencing environment provisioning**. To learn more, see [Automatically provision your sequencing environment using Microsoft Application Virtualization Sequencer (App-V Sequencer)](appv-auto-provision-a-vm.md).
|
* **Automatic virtual machine (VM) sequencing environment provisioning**. To learn more, see [Automatically provision your sequencing environment using Microsoft Application Virtualization Sequencer (App-V Sequencer)](appv-auto-provision-a-vm.md).
|
||||||
* **Package batch-sequencing**. This means that multiple apps can be sequenced at the same time, in a single group. To learn more, see [Automatically sequence multiple apps at the same time using Microsoft Application Virtualization Sequencer (App-V Sequencer)](appv-auto-batch-sequencing.md).
|
* **Package batch-sequencing**. This benefit denotes that multiple apps can be sequenced at the same time, in a single group. To learn more, see [Automatically sequence multiple apps at the same time using Microsoft Application Virtualization Sequencer (App-V Sequencer)](appv-auto-batch-sequencing.md).
|
||||||
* **Package batch-updating**. This means that multiple apps can be updated at the same time, in a single group. To learn more, see [Automatically update multiple apps at the same time using Microsoft Application Virtualization Sequencer (App-V Sequencer)](appv-auto-batch-updating.md).
|
* **Package batch-updating**. This benefit denotes that multiple apps can be updated at the same time, in a single group. To learn more, see [Automatically update multiple apps at the same time using Microsoft Application Virtualization Sequencer (App-V Sequencer)](appv-auto-batch-updating.md).
|
||||||
|
|
||||||
### Updates to the App-V project template
|
### Updates to the App-V project template
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ Starting with Windows 10, version 1703, you can now save an App-V project templa
|
|||||||
|
|
||||||
### Automatically clean up unpublished App-V packages from the App-V client
|
### Automatically clean up unpublished App-V packages from the App-V client
|
||||||
|
|
||||||
Previous versions of App-V have required you to manually remove your unpublished packages from your client devices, to free up additional storage space. Windows 10, version 1703 introduces the ability to use PowerShell or Group Policy settings to automatically clean up your unpublished packages after a device restart. To learn more, see [Automatically clean up unpublished packages on the App-V client](../app-v/appv-auto-clean-unpublished-packages.md).
|
Previous versions of App-V have required you to manually remove your unpublished packages from your client devices, to free up more storage space. Windows 10, version 1703 introduces the ability to use PowerShell or Group Policy settings to automatically clean up your unpublished packages after a device restart. To learn more, see [Automatically clean up unpublished packages on the App-V client](../app-v/appv-auto-clean-unpublished-packages.md).
|
||||||
|
|
||||||
## What's new in App-V in Windows 10, version 1607
|
## What's new in App-V in Windows 10, version 1607
|
||||||
|
|
||||||
|
@ -67,9 +67,9 @@ The App-V Client performs tasks to keep virtual applications running properly an
|
|||||||
| Copy on Write (COW) Local | %LocalAppData%\Microsoft\AppV\Client\VFS| Writeable non-roaming location for package modification.|
|
| Copy on Write (COW) Local | %LocalAppData%\Microsoft\AppV\Client\VFS| Writeable non-roaming location for package modification.|
|
||||||
| Machine Registry | HKLM\Software\Microsoft\AppV| Contains package state information, including VReg for machine or globally published packages (Machine hive).|
|
| Machine Registry | HKLM\Software\Microsoft\AppV| Contains package state information, including VReg for machine or globally published packages (Machine hive).|
|
||||||
| User Registry | HKCU\Software\Microsoft\AppV| Contains user package state information including VReg.|
|
| User Registry | HKCU\Software\Microsoft\AppV| Contains user package state information including VReg.|
|
||||||
| User Registry Classes | HKCU\Software\Classes\AppV| Contains additional user package state information.|
|
| User Registry Classes | HKCU\Software\Classes\AppV| Contains more user package state information.|
|
||||||
|
|
||||||
Additional details for the table are provided in the section below and throughout the document.
|
More details for the table are provided in the section below and throughout the document.
|
||||||
|
|
||||||
### Package store
|
### Package store
|
||||||
|
|
||||||
@ -92,10 +92,10 @@ If the App-V Client is configured in Shared Content Store mode, no data is writt
|
|||||||
|
|
||||||
### Package catalogs
|
### Package catalogs
|
||||||
|
|
||||||
The App-V Client manages the following two file-based locations:
|
The App-V Client manages the following file-based locations:
|
||||||
|
|
||||||
- **Catalogs (user and machine).**
|
- **Catalogs (user and machine).**
|
||||||
- **Registry locations**—depends on how the package is targeted for publishing. There is a Catalog (data store) for the computer, and a catalog for each individual user. The Machine catalog stores global information applicable to all users or any specific user, and the User catalog stores information applicable to a specific user. The catalog is a collection of Dynamic Configurations and manifest files; there is discrete data for both file and registry per package version.
|
- **Registry locations**—depends on how the package is targeted for publishing. There's a Catalog (data store) for the computer, and a catalog for each individual user. The Machine catalog stores global information applicable to all users or any specific user, and the User catalog stores information applicable to a specific user. The catalog is a collection of Dynamic Configurations and manifest files; there's discrete data for both file and registry per package version.
|
||||||
|
|
||||||
### Machine catalog
|
### Machine catalog
|
||||||
|
|
||||||
@ -103,8 +103,8 @@ The locations described in this table can be found in the %programdata%\Microsof
|
|||||||
|
|
||||||
| | Location |
|
| | Location |
|
||||||
|:---|:---|
|
|:---|:---|
|
||||||
|**Description**|Stores package documents that are available to users on the machine when packages are added and published. However, if a package is “global” at publishing time, the integrations are available to all users.<br></br>If a package is non-global, the integrations are published only for specific users, but there are still global resources that are modified and visible to anyone on the client computer (such as when the package directory is in a shared disk location).<br></br>If a package is available to a user on the computer (global or non-global), the manifest is stored in the Machine Catalog. When a package is published globally, there is a Dynamic Configuration file, stored in the Machine Catalog; therefore, the determination of whether a package is global is defined according to whether there is a policy file (UserDeploymentConfiguration file) in the Machine Catalog.|
|
|**Description**|Stores package documents that are available to users on the machine when packages are added and published. However, if a package is “global” at publishing time, the integrations are available to all users.<br></br>If a package is non-global, the integrations are published only for specific users, but there are still global resources that are modified and visible to anyone on the client computer (such as when the package directory is in a shared disk location).<br></br>If a package is available to a user on the computer (global or non-global), the manifest is stored in the Machine Catalog. When a package is published globally, there's a Dynamic Configuration file, stored in the Machine Catalog; therefore, the determination of whether a package is global is defined according to whether there's a policy file (UserDeploymentConfiguration file) in the Machine Catalog.|
|
||||||
|**Default storage location**|%programdata%\Microsoft\AppV\Client\Catalog\<br></br>This location is not the same as the Package Store location. The Package Store is the golden or pristine copy of the package files.|
|
|**Default storage location**|%programdata%\Microsoft\AppV\Client\Catalog\<br></br>This location isn't the same as the Package Store location. The Package Store is the golden or pristine copy of the package files.|
|
||||||
|**Files in the machine catalog**|- Manifest.xml<br>- DeploymentConfiguration.xml<br>- UserManifest.xml (Globally Published Package)<br>- UserDeploymentConfiguration.xml (Globally Published Package)|
|
|**Files in the machine catalog**|- Manifest.xml<br>- DeploymentConfiguration.xml<br>- UserManifest.xml (Globally Published Package)<br>- UserDeploymentConfiguration.xml (Globally Published Package)|
|
||||||
|**Additional machine catalog location, used when the package is part of a connection group**|The following location is in addition to the specific package location mentioned previously as the default storage location:<br></br>%programdata%\Microsoft\AppV\Client\Catalog\PackageGroups\ConGroupGUID\ConGroupVerGUID|
|
|**Additional machine catalog location, used when the package is part of a connection group**|The following location is in addition to the specific package location mentioned previously as the default storage location:<br></br>%programdata%\Microsoft\AppV\Client\Catalog\PackageGroups\ConGroupGUID\ConGroupVerGUID|
|
||||||
|**Additional files in the machine catalog when the package is part of a connection group**|- PackageGroupDescriptor.xml<br>- UserPackageGroupDescriptor.xml (globally published Connection Group)|
|
|**Additional files in the machine catalog when the package is part of a connection group**|- PackageGroupDescriptor.xml<br>- UserPackageGroupDescriptor.xml (globally published Connection Group)|
|
||||||
@ -115,7 +115,7 @@ The locations described in this table can be found in the appdata\roaming\Micros
|
|||||||
|
|
||||||
|| Location |
|
|| Location |
|
||||||
|:---|:---|
|
|:---|:---|
|
||||||
|**Description**|Created during the publishing process. Contains information used for publishing the package, and for making sure that a package is provisioned to a specific user at launch. Created in a roaming location and includes user-specific publishing information.<br></br>When a package is published for a user, the policy file is stored in the User Catalog. At the same time, a copy of the manifest is also stored in the User Catalog. When a package entitlement is removed for a user, the relevant package files are removed from the User Catalog. Looking at the user catalog, an administrator can view the presence of a Dynamic Configuration file, which indicates that the package is entitled for that user.<br></br>For roaming users, the User Catalog needs to be in a roaming or shared location to preserve the legacy App-V behavior of targeting users by default. Entitlement and policy are tied to a user, not a computer, so they should roam with the user once they are provisioned.|
|
|**Description**|Created during the publishing process. Contains information used for publishing the package, and for making sure that a package is provisioned to a specific user at launch. Created in a roaming location and includes user-specific publishing information.<br></br>When a package is published for a user, the policy file is stored in the User Catalog. At the same time, a copy of the manifest is also stored in the User Catalog. When a package entitlement is removed for a user, the relevant package files are removed from the User Catalog. Looking at the user catalog, an administrator can view the presence of a Dynamic Configuration file, which indicates that the package is entitled for that user.<br></br>For roaming users, the User Catalog needs to be in a roaming or shared location to preserve the legacy App-V behavior of targeting users by default. Entitlement and policy are tied to a user, not a computer, so they should roam with the user once they're provisioned.|
|
||||||
|**Default storage location**|appdata\roaming\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID|
|
|**Default storage location**|appdata\roaming\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID|
|
||||||
|**Files in the user catalog**|- UserManifest.xml<br>- DynamicConfiguration.xml or UserDeploymentConfiguration.xml|
|
|**Files in the user catalog**|- UserManifest.xml<br>- DynamicConfiguration.xml or UserDeploymentConfiguration.xml|
|
||||||
|**Additional user catalog location, used when the package is part of a connection group**|The following location is in addition to the specific package location mentioned above:<br></br>appdata\roaming\Microsoft\AppV\Client\Catalog\PackageGroups\PkgGroupGUID\PkgGroupVerGUID|
|
|**Additional user catalog location, used when the package is part of a connection group**|The following location is in addition to the specific package location mentioned above:<br></br>appdata\roaming\Microsoft\AppV\Client\Catalog\PackageGroups\PkgGroupGUID\PkgGroupVerGUID|
|
||||||
@ -135,7 +135,7 @@ The COW Roaming location described above stores changes to files and directories
|
|||||||
|
|
||||||
### COW local
|
### COW local
|
||||||
|
|
||||||
The COW Local location is similar to the roaming location, but the directories and files are not roamed to other computers, even if roaming support has been configured. The COW Local location described above stores changes applicable to typical windows and not the %AppData% location. The directories listed will vary but there will be two locations for any typical Windows locations (for example, Common AppData and Common AppDataS). The **S** signifies the restricted location when the virtual service requests the change as a different elevated user from the signed-in users. The non-**S** location stores user-based changes.
|
The COW Local location is similar to the roaming location, but the directories and files aren't roamed to other computers, even if roaming support has been configured. The COW Local location described above stores changes applicable to typical windows and not the %AppData% location. The directories listed will vary but there will be two locations for any typical Windows locations (for example, Common AppData and Common AppDataS). The **S** signifies the restricted location when the virtual service requests the change as a different elevated user from the signed-in users. The non-**S** location stores user-based changes.
|
||||||
|
|
||||||
## Package registry
|
## Package registry
|
||||||
|
|
||||||
@ -151,15 +151,15 @@ When the first application from the package is launched on the client, the clien
|
|||||||
|
|
||||||
When connection groups are present, the previous process of staging the registry holds true, but instead of having one hive file to process, there are more than one. The files are processed in the order in which they appear in the connection group XML, with the first writer winning any conflicts.
|
When connection groups are present, the previous process of staging the registry holds true, but instead of having one hive file to process, there are more than one. The files are processed in the order in which they appear in the connection group XML, with the first writer winning any conflicts.
|
||||||
|
|
||||||
The staged registry persists the same way as in the single package case. Staged user registry data remains for the connection group until it is disabled; staged machine registry data is removed on connection group removal.
|
The staged registry persists the same way as in the single package case. Staged user registry data remains for the connection group until it's disabled; staged machine registry data is removed on connection group removal.
|
||||||
|
|
||||||
### Virtual registry
|
### Virtual registry
|
||||||
|
|
||||||
The purpose of the virtual registry (VREG) is to provide a single merged view of the package registry and the native registry to applications. It also provides copy-on-write (COW) functionality—that is, any changes made to the registry from the context of a virtual process are made to a separate COW location. This means that the VREG must combine up to three separate registry locations into a single view based on the populated locations in the **registry COW** > **package** > **native**. When a request is made for a registry data it will locate in order until it finds the data it was requesting. Meaning if there is a value stored in a COW location it will not proceed to other locations, however, if there is no data in the COW location it will proceed to the Package and then Native location until it finds the appropriate data.
|
The purpose of the virtual registry (VREG) is to provide a single merged view of the package registry and the native registry to applications. It also provides copy-on-write (COW) functionality—that is, any changes made to the registry from the context of a virtual process are made to a separate COW location. This functionality means that the VREG must combine up to three separate registry locations into a single view based on the populated locations in the **registry COW** > **package** > **native**. When a request is made for a registry data it will locate in order until it finds the data it was requesting. Meaning if there's a value stored in a COW location it will not proceed to other locations, however, if there's no data in the COW location it will proceed to the Package and then Native location until it finds the appropriate data.
|
||||||
|
|
||||||
### Registry locations
|
### Registry locations
|
||||||
|
|
||||||
There are two package registry locations and two connection group locations where the App-V Client stores registry information, depending on whether the Package is published individually or as part of a connection group. There are three COW locations for packages and three for connection groups, which are created and managed by the VREG. Settings for packages and connection groups are not shared:
|
There are two package registry locations and two connection group locations where the App-V Client stores registry information, depending on whether the Package is published individually or as part of a connection group. There are three COW locations for packages and three for connection groups, which are created and managed by the VREG. Settings for packages and connection groups aren't shared:
|
||||||
|
|
||||||
#### Single Package VReg
|
#### Single Package VReg
|
||||||
|
|
||||||
@ -207,7 +207,7 @@ The following locations are configured as pass-through locations by default:
|
|||||||
|
|
||||||
- HKEY\_CURRENT\_USER\\SOFTWARE\\Policies
|
- HKEY\_CURRENT\_USER\\SOFTWARE\\Policies
|
||||||
|
|
||||||
The purpose of pass-through keys is to ensure that a virtual application does not write registry data in the VReg that is required for non-virtual applications for successful operation or integration. The Policies key ensures that Group Policy-based settings set by the administrator are utilized and not per package settings. The AppModel key is required for integration with Windows Modern UI-based applications. Administers ideally should not modify any of the default pass-through keys, but in some instances, the admin may need to add additional pass-through keys to adjust application behavior.
|
The purpose of pass-through keys is to ensure that a virtual application doesn't write registry data in the VReg that is required for non-virtual applications for successful operation or integration. The Policies key ensures that Group Policy-based settings set by the administrator are utilized and not per package settings. The AppModel key is required for integration with Windows Modern UI-based applications. Administers ideally shouldn't modify any of the default pass-through keys, but in some instances, the admin may need to add more pass-through keys to adjust application behavior.
|
||||||
|
|
||||||
## App-V package store behavior
|
## App-V package store behavior
|
||||||
|
|
||||||
@ -233,7 +233,7 @@ The App-V Client can be configured to change the default behavior of streaming.
|
|||||||
|PackageSourceRoot|The root override where packages should be streamed from|
|
|PackageSourceRoot|The root override where packages should be streamed from|
|
||||||
|SharedContentStoreMode|Enables the use of Shared Content Store for VDI scenarios|
|
|SharedContentStoreMode|Enables the use of Shared Content Store for VDI scenarios|
|
||||||
|
|
||||||
These settings affect the behavior of streaming App-V package assets to the client. By default, App-V only downloads the assets required after downloading the initial publishing and primary feature blocks. There are three specific behaviors in streaming packages that it's particularly important to understand:
|
These settings affect the behavior of streaming App-V package assets to the client. By default, App-V only downloads the assets required after downloading the initial publishing and primary feature blocks. There are three specific behaviors in streaming packages that is important to understand:
|
||||||
|
|
||||||
- Background Streaming
|
- Background Streaming
|
||||||
- Optimized Streaming
|
- Optimized Streaming
|
||||||
@ -241,7 +241,7 @@ These settings affect the behavior of streaming App-V package assets to the clie
|
|||||||
|
|
||||||
### Background streaming
|
### Background streaming
|
||||||
|
|
||||||
The Windows PowerShell cmdlet **Get-AppvClientConfiguration** can be used to determine the current mode for background streaming with the AutoLoad setting and modified with either the **Set-AppvClientConfiguration** cmdlet or from the registry (HKLM\\SOFTWARE\\Microsoft\\AppV\\ClientStreaming key). Background streaming is a default setting where the Autoload setting is set to download previously used packages. The behavior based on default setting (value=1) downloads App-V data blocks in the background after the application has been launched. This setting can either be disabled altogether (value=0) or enabled for all packages (value=2), regardless of whether they have been launched.
|
The Windows PowerShell cmdlet **Get-AppvClientConfiguration** can be used to determine the current mode for background streaming with the AutoLoad setting and modified with either the **Set-AppvClientConfiguration** cmdlet or from the registry (HKLM\\SOFTWARE\\Microsoft\\AppV\\ClientStreaming key). Background streaming is a default setting where the Autoload setting is set to download previously used packages. The behavior based on default setting (value=1) downloads App-V data blocks in the background after the application has been launched. This setting can either be disabled altogether (value=0) or enabled for all packages (value=2), regardless of whether they've been launched.
|
||||||
|
|
||||||
### Optimized streaming
|
### Optimized streaming
|
||||||
|
|
||||||
@ -249,7 +249,7 @@ App-V packages can be configured with a primary feature block during sequencing.
|
|||||||
|
|
||||||
### Stream faults
|
### Stream faults
|
||||||
|
|
||||||
After the initial stream of any publishing data and the primary feature block, requests for additional files perform stream faults. These blocks of data are downloaded to the package store on an as-needed basis. This allows a user to download only a small part of the package, typically enough to launch the package and run normal tasks. All other blocks are downloaded when a user initiates an operation that requires data not currently in the package store.
|
After the initial stream of any publishing data and the primary feature block, requests for more files perform stream faults. These blocks of data are downloaded to the package store on an as-needed basis. This flexibility allows a user to download only a small part of the package, typically enough to launch the package and run normal tasks. All other blocks are downloaded when a user initiates an operation that requires data not currently in the package store.
|
||||||
|
|
||||||
### Package upgrades
|
### Package upgrades
|
||||||
|
|
||||||
@ -257,11 +257,11 @@ App-V Packages require updating throughout the lifecycle of the application. App
|
|||||||
|
|
||||||
### Package removal
|
### Package removal
|
||||||
|
|
||||||
The App-V Client's behavior when packages are removed depends on the package removal method. Using an App-V full infrastructure to unpublish the application, the user catalog files (machine catalog for globally published applications) are removed, but the package store location and COW locations remain. When the **Remove-AppVClientPackge** Windows PowerShell cmdlet is used to remove an App-V Package, the package store location is cleaned. Remember that unpublishing an App-V Package from the Management Server does not perform a Remove operation. Neither operation will remove the Package Store package files.
|
The App-V Client's behavior when packages are removed depends on the package removal method. Using an App-V full infrastructure to unpublish the application, the user catalog files (machine catalog for globally published applications) are removed, but the package store location and COW locations remain. When the **Remove-AppVClientPackge** Windows PowerShell cmdlet is used to remove an App-V Package, the package store location is cleaned. Remember that unpublishing an App-V Package from the Management Server doesn't perform a Remove operation. Neither operation will remove the Package Store package files.
|
||||||
|
|
||||||
## Roaming registry and data
|
## Roaming registry and data
|
||||||
|
|
||||||
App-V is able to provide a near-native experience when roaming, depending on how the application being used is written. By default, App-V roams AppData that is stored in the roaming location, based on the roaming configuration of the operating system. Other locations for storage of file-based data do not roam from computer to computer, since they are in locations that are not roamed.
|
App-V is able to provide a near-native experience when roaming, depending on how the application being used is written. By default, App-V roams AppData that is stored in the roaming location, based on the roaming configuration of the operating system. Other locations for storage of file-based data don't roam from computer to computer, since they're in locations that aren't roamed.
|
||||||
|
|
||||||
### Roaming requirements and user catalog data storage
|
### Roaming requirements and user catalog data storage
|
||||||
|
|
||||||
@ -270,7 +270,7 @@ App-V stores data, which represents the state of the user’s catalog, in the fo
|
|||||||
- Files under %appdata%\\Microsoft\\AppV\\Client\\Catalog
|
- Files under %appdata%\\Microsoft\\AppV\\Client\\Catalog
|
||||||
- Registry settings under HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages
|
- Registry settings under HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages
|
||||||
|
|
||||||
Together, these files and registry settings represent the user’s catalog, so either both must be roamed, or neither must be roamed for a given user. App-V does not support roaming %AppData%, but not roaming the user’s profile (registry), or vice versa.
|
Together, these files and registry settings represent the user’s catalog, so either both must be roamed, or neither must be roamed for a given user. App-V doesn't support roaming %AppData%, but not roaming the user’s profile (registry), or vice versa.
|
||||||
|
|
||||||
>[!NOTE]
|
>[!NOTE]
|
||||||
>The **Repair-AppvClientPackage** cmdlet doesn't repair the publishing state of packages where the user’s App-V state under HKEY_CURRENT_USER is missing or mismatched with the data in %appdata%.
|
>The **Repair-AppvClientPackage** cmdlet doesn't repair the publishing state of packages where the user’s App-V state under HKEY_CURRENT_USER is missing or mismatched with the data in %appdata%.
|
||||||
@ -281,8 +281,8 @@ App-V registry roaming falls into two scenarios, as shown in the following table
|
|||||||
|
|
||||||
|Scenario|Description|
|
|Scenario|Description|
|
||||||
|---|---|
|
|---|---|
|
||||||
|Applications that are run as standard users|When a standard user launches an App-V application, both HKLM and HKCU for App-V applications are stored in the HKCU hive on the machine. This presents as two distinct paths:<br><br>- HKLM's location is HKCU\SOFTWARE\Classes\AppV\Client\Packages\\{PkgGUID}\REGISTRY\MACHINE\SOFTWARE<br>- HKCU's location is HKCU\SOFTWARE\Microsoft\AppV\Client\Packages\\{PkgGUID}\REGISTRY\USER\\{UserSID}\SOFTWARE<br><br>The locations are enabled for roaming based on the operating system settings.|
|
|Applications that are run as standard users|When a standard user launches an App-V application, both HKLM and HKCU for App-V applications are stored in the HKCU hive on the machine. This scenario presents two distinct paths:<br><br>- HKLM's location is HKCU\SOFTWARE\Classes\AppV\Client\Packages\\{PkgGUID}\REGISTRY\MACHINE\SOFTWARE<br>- HKCU's location is HKCU\SOFTWARE\Microsoft\AppV\Client\Packages\\{PkgGUID}\REGISTRY\USER\\{UserSID}\SOFTWARE<br><br>The locations are enabled for roaming based on the operating system settings.|
|
||||||
|Applications that are run with elevation|When an application is launched with elevation:<br><br>- HKLM data is stored in the HKLM hive on the local computer<br>- HKCU data is stored in the User Registry location<br><br>In this scenario, these settings are not roamed with normal operating system roaming configurations, and the resulting registry keys and values are stored in the following locations:<br><br>- HKLM's location is HKLM\SOFTWARE\Microsoft\AppV\Client\Packages\\{PkgGUID}\\{UserSID}\REGISTRY\MACHINE\SOFTWARE<br>- HKCU's location is HKCU\SOFTWARE\Microsoft\AppV\Client\Packages\\{PkgGUID}\\Registry\User\\{UserSID}\SOFTWARE|
|
|Applications that are run with elevation|When an application is launched with elevation:<br><br>- HKLM data is stored in the HKLM hive on the local computer<br>- HKCU data is stored in the User Registry location<br><br>In this scenario, these settings aren't roamed with normal operating system roaming configurations, and the resulting registry keys and values are stored in the following locations:<br><br>- HKLM's location is HKLM\SOFTWARE\Microsoft\AppV\Client\Packages\\{PkgGUID}\\{UserSID}\REGISTRY\MACHINE\SOFTWARE<br>- HKCU's location is HKCU\SOFTWARE\Microsoft\AppV\Client\Packages\\{PkgGUID}\\Registry\User\\{UserSID}\SOFTWARE|
|
||||||
|
|
||||||
### App-V and folder redirection
|
### App-V and folder redirection
|
||||||
|
|
||||||
@ -290,7 +290,7 @@ App-V supports folder redirection of the roaming AppData folder (%AppData%). Whe
|
|||||||
|
|
||||||
A typical package has several locations mapped in the user’s backing store for settings in both AppData\\Local and AppData\\Roaming. These locations are the Copy on Write locations that are stored per user in the user’s profile, and that are used to store changes made to the package VFS directories and to protect the default package VFS.
|
A typical package has several locations mapped in the user’s backing store for settings in both AppData\\Local and AppData\\Roaming. These locations are the Copy on Write locations that are stored per user in the user’s profile, and that are used to store changes made to the package VFS directories and to protect the default package VFS.
|
||||||
|
|
||||||
The following table shows local and roaming locations when folder redirection has not been implemented.
|
The following table shows local and roaming locations when folder redirection hasn't been implemented.
|
||||||
|
|
||||||
| VFS directory in package | Mapped location of backing store |
|
| VFS directory in package | Mapped location of backing store |
|
||||||
|---|---|
|
|---|---|
|
||||||
@ -310,13 +310,13 @@ The following table shows local and roaming locations when folder redirection ha
|
|||||||
| appv_ROOT | C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\\<GUID>\appv\_ROOT |
|
| appv_ROOT | C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\\<GUID>\appv\_ROOT |
|
||||||
| AppData | \\Fileserver\users\Local\roaming\Microsoft\AppV\Client\VFS\\<GUID>\AppData |
|
| AppData | \\Fileserver\users\Local\roaming\Microsoft\AppV\Client\VFS\\<GUID>\AppData |
|
||||||
|
|
||||||
The current App-V Client VFS driver can't write to network locations, so the App-V Client detects the presence of folder redirection and copies the data on the local drive during publishing and when the virtual environment starts. After the user closes the App-V application and the App-V Client closes the virtual environment, the local storage of the VFS AppData is copied back to the network, enabling roaming to additional machines, where the process will be repeated. Here's what happens during the process:
|
The current App-V Client VFS driver can't write to network locations, so the App-V Client detects the presence of folder redirection and copies the data on the local drive during publishing and when the virtual environment starts. After the user closes the App-V application and the App-V Client closes the virtual environment, the local storage of the VFS AppData is copied back to the network, enabling roaming to more machines, where the process will be repeated. Here's what happens during the process:
|
||||||
|
|
||||||
1. During publishing or virtual environment startup, the App-V Client detects the location of the AppData directory.
|
1. During publishing or virtual environment startup, the App-V Client detects the location of the AppData directory.
|
||||||
2. If the roaming AppData path is local or no AppData\\Roaming location is mapped, nothing happens.
|
2. If the roaming AppData path is local or no AppData\\Roaming location is mapped, nothing happens.
|
||||||
3. If the roaming AppData path is not local, the VFS AppData directory is mapped to the local AppData directory.
|
3. If the roaming AppData path isn't local, the VFS AppData directory is mapped to the local AppData directory.
|
||||||
|
|
||||||
This process solves the problem of a non-local %AppData% that is not supported by the App-V Client VFS driver. However, the data stored in this new location is not roamed with folder redirection. All changes during the running of the application happen to the local AppData location and must be copied to the redirected location. The process does the following things:
|
This process solves the problem of a non-local %AppData% that isn't supported by the App-V Client VFS driver. However, the data stored in this new location isn't roamed with folder redirection. All changes during the running of the application happen to the local AppData location and must be copied to the redirected location. The process does the following things:
|
||||||
|
|
||||||
1. Shuts down the App-V application, which also shuts down the virtual environment.
|
1. Shuts down the App-V application, which also shuts down the virtual environment.
|
||||||
2. Compresses the local cache of the roaming AppData location and store it in a .zip file.
|
2. Compresses the local cache of the roaming AppData location and store it in a .zip file.
|
||||||
@ -324,7 +324,7 @@ This process solves the problem of a non-local %AppData% that is not supported b
|
|||||||
4. Records the time stamp in the HKEY\_CURRENT\_USER\\Software\\Microsoft\\AppV\\Client\\Packages\\<GUID>\\AppDataTime registry as the last known AppData time stamp.
|
4. Records the time stamp in the HKEY\_CURRENT\_USER\\Software\\Microsoft\\AppV\\Client\\Packages\\<GUID>\\AppDataTime registry as the last known AppData time stamp.
|
||||||
5. Calls the folder redirection process to evaluate and initiate the .zip file uploaded to the roaming AppData directory.
|
5. Calls the folder redirection process to evaluate and initiate the .zip file uploaded to the roaming AppData directory.
|
||||||
|
|
||||||
The time stamp is used to determine a “last writer wins” scenario if there is a conflict and is used to optimize the download of the data when the App-V application is published, or the virtual environment is started. Folder redirection will make the data available from any other clients covered by the supporting policy and will initiate the process of storing the AppData\\Roaming data to the local AppData location on the client. Here's what happens during the process:
|
The time stamp is used to determine a “last writer wins” scenario if there's a conflict and is used to optimize the download of the data when the App-V application is published, or the virtual environment is started. Folder redirection will make the data available from any other clients covered by the supporting policy and will initiate the process of storing the AppData\\Roaming data to the local AppData location on the client. Here's what happens during the process:
|
||||||
|
|
||||||
1. The user starts an application, which also starts the virtual environment.
|
1. The user starts an application, which also starts the virtual environment.
|
||||||
2. The application’s virtual environment checks for the most recent time stamped .zip file, if present.
|
2. The application’s virtual environment checks for the most recent time stamped .zip file, if present.
|
||||||
@ -334,7 +334,7 @@ The time stamp is used to determine a “last writer wins” scenario if there i
|
|||||||
6. After the .zip file is successfully extracted, the local cache of the roaming AppData directory is renamed and the new data moved into place.
|
6. After the .zip file is successfully extracted, the local cache of the roaming AppData directory is renamed and the new data moved into place.
|
||||||
7. The renamed directory is deleted and the application opens with the most recently saved roaming AppData data.
|
7. The renamed directory is deleted and the application opens with the most recently saved roaming AppData data.
|
||||||
|
|
||||||
This completes the successful roaming of application settings that are present in AppData\\Roaming locations. The only other condition that must be addressed is a package repair operation. The process does the following things:
|
This process completes the successful roaming of application settings that are present in AppData\\Roaming locations. The only other condition that must be addressed is a package repair operation. The process does the following things:
|
||||||
|
|
||||||
1. During repair, detects if the path to the user’s roaming AppData directory isn't local.
|
1. During repair, detects if the path to the user’s roaming AppData directory isn't local.
|
||||||
2. Maps the non-local roaming AppData path targets, recreating the expected roaming and local AppData locations.
|
2. Maps the non-local roaming AppData path targets, recreating the expected roaming and local AppData locations.
|
||||||
@ -344,7 +344,7 @@ This process will recreate both the local and network locations for AppData and
|
|||||||
|
|
||||||
## App-V Client application lifecycle management
|
## App-V Client application lifecycle management
|
||||||
|
|
||||||
In an App-V Full Infrastructure, after applications are sequenced they are managed and published to users or computers through the App-V Management and Publishing servers. This section details the operations that occur during the common App-V application lifecycle operations (Add, publishing, launch, upgrade, and removal) and the file and registry locations that are changed and modified from the App-V Client perspective. The App-V Client operations are input as PowerShell commands on the computer running the App-V Client.
|
In an App-V Full Infrastructure, after applications are sequenced, they're managed and published to users or computers through the App-V Management and Publishing servers. This section details the operations that occur during the common App-V application lifecycle operations (Add, publishing, launch, upgrade, and removal) and the file and registry locations that are changed and modified from the App-V Client perspective. The App-V Client operations are input as PowerShell commands on the computer running the App-V Client.
|
||||||
|
|
||||||
This document focuses on App-V Full Infrastructure solutions. For specific information on App-V Integration with Configuration Manager 2012, see [Integrating Virtual Application Management with App-V 5 and Configuration Manager 2012 SP1](https://www.microsoft.com/download/details.aspx?id=38177).
|
This document focuses on App-V Full Infrastructure solutions. For specific information on App-V Integration with Configuration Manager 2012, see [Integrating Virtual Application Management with App-V 5 and Configuration Manager 2012 SP1](https://www.microsoft.com/download/details.aspx?id=38177).
|
||||||
|
|
||||||
@ -357,7 +357,7 @@ The publishing refresh process comprises several smaller operations that are per
|
|||||||
- **Add-AppVPublishingServer** configures the client with an App-V Publishing Server that provides App-V packages.
|
- **Add-AppVPublishingServer** configures the client with an App-V Publishing Server that provides App-V packages.
|
||||||
- **Set-AppVPublishingServer** modifies the current settings for the App-V Publishing Server.
|
- **Set-AppVPublishingServer** modifies the current settings for the App-V Publishing Server.
|
||||||
- **Set-AppVClientConfiguration** modifies the currents settings for the App-V Client.
|
- **Set-AppVClientConfiguration** modifies the currents settings for the App-V Client.
|
||||||
- **Sync-AppVPublishingServer** initiates an App-V Publishing Refresh process manually. This is also utilized in the scheduled tasks created during configuration of the publishing server.
|
- **Sync-AppVPublishingServer** initiates an App-V Publishing Refresh process manually. This process is also utilized in the scheduled tasks created during configuration of the publishing server.
|
||||||
|
|
||||||
The following sections will elaborate what goes on during the publishing refresh process.
|
The following sections will elaborate what goes on during the publishing refresh process.
|
||||||
|
|
||||||
@ -365,7 +365,7 @@ The following sections will elaborate what goes on during the publishing refresh
|
|||||||
|
|
||||||
Adding an App-V package to the client is the first step of the publishing refresh process. The end result is the same as the **Add-AppVClientPackage** cmdlet in Windows PowerShell, except the publishing refresh add process contacts the configured publishing server and passes a high-level list of applications back to the client to pull more detailed information, rather than just doing a single package add operation.
|
Adding an App-V package to the client is the first step of the publishing refresh process. The end result is the same as the **Add-AppVClientPackage** cmdlet in Windows PowerShell, except the publishing refresh add process contacts the configured publishing server and passes a high-level list of applications back to the client to pull more detailed information, rather than just doing a single package add operation.
|
||||||
|
|
||||||
The process then configures the client for package or connection group additions or updates, then accesses the appv file. Next, the contents of the appv file are expanded and placed on the local operating system in the appropriate locations. The following is a detailed workflow of the process, assuming the package is configured for Fault Streaming.
|
The process then configures the client for package or connection group additions or updates, then accesses the appv file. Next, the contents of the appv file are expanded and placed on the local operating system in the appropriate locations. The following steps are a detailed workflow of the process, assuming the package is configured for Fault Streaming.
|
||||||
|
|
||||||
#### How to add an App-V package
|
#### How to add an App-V package
|
||||||
|
|
||||||
@ -373,9 +373,9 @@ The process then configures the client for package or connection group additions
|
|||||||
|
|
||||||
1. The App-V Client makes an HTTP connection and requests a list of applications based on the target. The Publishing refresh process supports targeting machines or users.
|
1. The App-V Client makes an HTTP connection and requests a list of applications based on the target. The Publishing refresh process supports targeting machines or users.
|
||||||
|
|
||||||
2. The App-V Publishing Server uses the identity of the initiating target, user or machine, and queries the database for a list of entitled applications. The list of applications is provided as an XML response, which the client uses to send additional requests to the server for more information on a per-package basis.
|
2. The App-V Publishing Server uses the identity of the initiating target, user or machine, and queries the database for a list of entitled applications. The list of applications is provided as an XML response, which the client uses to send more requests to the server for more information on a per-package basis.
|
||||||
|
|
||||||
2. The Publishing Agent on the App-V Client will evaluate any connection groups that are unpublished or disabled, since package version updates that are part of the connection group cannot be processed.
|
2. The Publishing Agent on the App-V Client will evaluate any connection groups that are unpublished or disabled, since package version updates that are part of the connection group can't be processed.
|
||||||
|
|
||||||
3. Configure the packages by identifying the **Add** or **Update** operations.
|
3. Configure the packages by identifying the **Add** or **Update** operations.
|
||||||
|
|
||||||
@ -389,7 +389,7 @@ The process then configures the client for package or connection group additions
|
|||||||
- Portable Executable Headers (PE Headers): Targets of extension points that contain the base information about the image need on disk, accessed directly or through file types.
|
- Portable Executable Headers (PE Headers): Targets of extension points that contain the base information about the image need on disk, accessed directly or through file types.
|
||||||
- Scripts: Download scripts directory for use throughout the publishing process.
|
- Scripts: Download scripts directory for use throughout the publishing process.
|
||||||
|
|
||||||
4. Populate the Package store by doing the following:
|
4. Populate the Package store by performing the following sub-steps:
|
||||||
|
|
||||||
1. Create sparse files on disk that represent the extracted package for any directories listed.
|
1. Create sparse files on disk that represent the extracted package for any directories listed.
|
||||||
|
|
||||||
@ -409,7 +409,7 @@ The process then configures the client for package or connection group additions
|
|||||||
|
|
||||||
4. Configure Connection Groups by adding and enabling or disabling.
|
4. Configure Connection Groups by adding and enabling or disabling.
|
||||||
|
|
||||||
5. Remove objects that are not published to the target (user or machine).
|
5. Remove objects that aren't published to the target (user or machine).
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
>This will not perform a package deletion but rather remove integration points for the specific target (user or machine) and remove user catalog files (machine catalog files for globally published).
|
>This will not perform a package deletion but rather remove integration points for the specific target (user or machine) and remove user catalog files (machine catalog files for globally published).
|
||||||
@ -421,7 +421,7 @@ The process then configures the client for package or connection group additions
|
|||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
>This condition occurs as a product of removal without unpublishing with background addition of the package.
|
>This condition occurs as a product of removal without unpublishing with background addition of the package.
|
||||||
|
|
||||||
This completes an App-V package add for the publishing refresh process. The next step is publishing the package to a specific target (machine or user).
|
This process completes an App-V package add for the publishing refresh process. The next step is publishing the package to a specific target (machine or user).
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -452,7 +452,7 @@ During the Publishing Refresh operation, the specific publishing operation, **Pu
|
|||||||
|
|
||||||
3. Run scripts targeted for publishing timing.
|
3. Run scripts targeted for publishing timing.
|
||||||
|
|
||||||
Publishing an App-V Package that is part of a Connection Group is very similar to the above process. For connection groups, the path that stores the specific catalog information includes PackageGroups as a child of the Catalog Directory. Review the Machine and User Catalog information in the preceding sections for details.
|
Publishing an App-V Package that is part of a Connection Group is similar to the above process. For connection groups, the path that stores the specific catalog information includes PackageGroups as a child of the Catalog Directory. Review the Machine and User Catalog information in the preceding sections for details.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -460,7 +460,7 @@ Publishing an App-V Package that is part of a Connection Group is very similar t
|
|||||||
|
|
||||||
### Application launch
|
### Application launch
|
||||||
|
|
||||||
After the Publishing Refresh process, the user launches and then relaunches an App-V application. The App-V Client checks the path to the user catalog for files created during publishing. After establishing rights to launch the package, the App-V Client creates a virtual environment, begins streaming any necessary data, and applies the appropriate manifest and deployment configuration files during virtual environment creation. Once the virtual environment created and configured for the specific package and application, the application starts. This might seem like a lot, but the process in action is actually quite fast, and is optimized to minimize network traffic.
|
After the Publishing Refresh process, the user launches and then relaunches an App-V application. The App-V Client checks the path to the user catalog for files created during publishing. After establishing rights to launch the package, the App-V Client creates a virtual environment, begins streaming any necessary data, and applies the appropriate manifest and deployment configuration files during virtual environment creation. Once the virtual environment created and configured for the specific package and application, the application starts. This might seem like a lot, but the process in action is fast, and is optimized to minimize network traffic.
|
||||||
|
|
||||||
#### How to launch App-V applications
|
#### How to launch App-V applications
|
||||||
|
|
||||||
@ -471,11 +471,13 @@ After the Publishing Refresh process, the user launches and then relaunches an A
|
|||||||
- **UserDeploymentConfiguration.xml**
|
- **UserDeploymentConfiguration.xml**
|
||||||
- **UserManifest.xml**
|
- **UserManifest.xml**
|
||||||
|
|
||||||
3. If the files are present, the application is entitled for that specific user and the application will start the process for launch. There is no network traffic at this point.
|
3. If the files are present, the application is entitled for that specific user and the application will start the process for launch. There's no network traffic at this point.
|
||||||
|
|
||||||
4. Next, the App-V Client checks that the path for the package registered for the App-V Client service is found in the registry.
|
4. Next, the App-V Client checks that the path for the package registered for the App-V Client service is found in the registry.
|
||||||
|
|
||||||
5. Upon finding the path to the package store, the virtual environment is created. If this is the first launch, the Primary Feature Block downloads if present.
|
5. Upon finding the path to the package store, the virtual environment is created.
|
||||||
|
|
||||||
|
If this process execution is the first launch, the Primary Feature Block downloads if present.
|
||||||
|
|
||||||
6. After downloading, the App-V Client service consumes the manifest and deployment configuration files to configure the virtual environment and all App-V subsystems are loaded.
|
6. After downloading, the App-V Client service consumes the manifest and deployment configuration files to configure the virtual environment and all App-V subsystems are loaded.
|
||||||
|
|
||||||
@ -487,7 +489,7 @@ After the Publishing Refresh process, the user launches and then relaunches an A
|
|||||||
|
|
||||||
### Upgrading an App-V package
|
### Upgrading an App-V package
|
||||||
|
|
||||||
The current version of App-V's package upgrade process differs from the older versions in its storage optimization. App-V supports multiple versions of the same package on a machine entitled to different users. Package versions can be added at any time, as the package store and catalogs are updated with the new resources. During an upgrade in the new version, only new files are added to the new version store location, and hard links are created for unchanged files. This reduces overall storage by only presenting the file on one disk location, then projecting it into all folders with a file location entry on the disk.
|
The current version of App-V's package upgrade process differs from the older versions in its storage optimization. App-V supports multiple versions of the same package on a machine entitled to different users. Package versions can be added at any time, as the package store and catalogs are updated with the new resources. During an upgrade in the new version, only new files are added to the new version store location, and hard links are created for unchanged files. Such results reduce overall storage by only presenting the file on one disk location, then projecting it into all folders with a file location entry on the disk.
|
||||||
|
|
||||||
#### How to upgrade an App-V package
|
#### How to upgrade an App-V package
|
||||||
|
|
||||||
@ -521,7 +523,7 @@ If you try to upgrade a package that is currently in use, the upgrade task is pl
|
|||||||
|
|
||||||
| Task type | Applicable rule |
|
| Task type | Applicable rule |
|
||||||
|---|---|
|
|---|---|
|
||||||
| User-based tasks, such as publishing a package to a user | The pending task will be performed after the user logs off and then logs back on. |
|
| User-based tasks, such as publishing a package to a user | The pending task will be performed after the user signs out and then signs back in. |
|
||||||
| Globally based tasks, such as enabling a connection group globally | The pending task will be performed when the computer is shut down and then restarted. |
|
| Globally based tasks, such as enabling a connection group globally | The pending task will be performed when the computer is shut down and then restarted. |
|
||||||
|
|
||||||
When a task is placed in a pending state, the App-V Client also generates a registry key for the pending task, as follows:
|
When a task is placed in a pending state, the App-V Client also generates a registry key for the pending task, as follows:
|
||||||
@ -542,19 +544,19 @@ Use the following example scenarios as a guide for updating packages.
|
|||||||
|
|
||||||
| Scenario | Requirements |
|
| Scenario | Requirements |
|
||||||
|---|---|
|
|---|---|
|
||||||
| App-V package is not in use when you try to upgrade | None of the following components of the package can be in use: virtual application, COM server, or shell extensions.<br/><br/>The administrator publishes a newer version of the package and the upgrade works the next time a component or application inside the package is launched. The new version of the package is streamed and ran. |
|
| App-V package isn't in use when you try to upgrade | None of the following components of the package can be in use: virtual application, COM server, or shell extensions.<br/><br/>The administrator publishes a newer version of the package and the upgrade works the next time a component or application inside the package is launched. The new version of the package is streamed and ran. |
|
||||||
| App-V package is in use when the administrator publishes a newer version of the package | The App-V Client sets the operation to "pending," which means that it is queued and will be carried out later when the package is not in use.<br/><br/>If the package application is in use, the user shuts down the virtual application, after which the upgrade can occur.<br/><br/>If the package has shell extensions, which are permanently loaded by Windows Explorer, the user won't be able to sign in. Users must sign off and then sign back in to initiate the App-V package upgrade.|
|
| App-V package is in use when the administrator publishes a newer version of the package | The App-V Client sets the operation to "pending," which means that it's queued and will be carried out later when the package isn't in use.<br/><br/>If the package application is in use, the user shuts down the virtual application, after which the upgrade can occur.<br/><br/>If the package has shell extensions, which are permanently loaded by Windows Explorer, the user won't be able to sign in. Users must sign off and then sign back in to initiate the App-V package upgrade.|
|
||||||
|
|
||||||
### Global vs. user publishing
|
### Global vs. user publishing
|
||||||
|
|
||||||
App-V Packages can be published in one of two ways; as user, which entitles an App-V package to a specific user or group of users, or as global, which entitles the App-V package to the entire machine for all users of the machine. Once a package upgrade has been pended and the App-V package is not in use, consider the two types of publishing:
|
App-V Packages can be published in one of two ways; as user, which entitles an App-V package to a specific user or group of users, or as global, which entitles the App-V package to the entire machine for all users of the machine. Once a package upgrade has been pended and the App-V package isn't in use, consider the two types of publishing:
|
||||||
|
|
||||||
- Global publishing is when the application is published to a machine; all users on that machine can use it. The upgrade will happen when the App-V Client Service starts, which effectively means a machine restart.
|
- Global publishing is when the application is published to a machine; all users on that machine can use it. The upgrade will happen when the App-V Client Service starts, which effectively means a machine restart.
|
||||||
- User publishing is when the application is published to a user. If there are multiple users on the machine, the application can be published to a subset of the users. The upgrade will happen when the user signs in or when it is published again (periodically, ConfigMgr Policy refresh and evaluation, or an App-V periodic publishing/refresh, or explicitly through Windows PowerShell commands).
|
- User publishing is when the application is published to a user. If there are multiple users on the machine, the application can be published to a subset of the users. The upgrade will happen when the user signs in or when it's published again (periodically, ConfigMgr Policy refresh and evaluation, or an App-V periodic publishing/refresh, or explicitly through Windows PowerShell commands).
|
||||||
|
|
||||||
### Removing an App-V package
|
### Removing an App-V package
|
||||||
|
|
||||||
Removing App-V applications in a Full Infrastructure is an unpublish operation and does not perform a package removal. The process is the same as the publish process above, but instead of adding the removal process reverses the changes that have been made for App-V Packages.
|
Removing App-V applications in a Full Infrastructure is an unpublish operation and doesn't perform a package removal. The process is the same as the publish process above, but instead of adding the removal process reverses the changes that have been made for App-V Packages.
|
||||||
|
|
||||||
### Repairing an App-V package
|
### Repairing an App-V package
|
||||||
|
|
||||||
@ -577,12 +579,12 @@ When App-V applications are published to a computer with the App-V Client, some
|
|||||||
- Backup and Restore: Existing native application data and registry (such as FTA registrations) are backed up during publishing.
|
- Backup and Restore: Existing native application data and registry (such as FTA registrations) are backed up during publishing.
|
||||||
|
|
||||||
1. App-V packages are given ownership based on the last integrated package where the ownership is passed to the newest published App-V application.
|
1. App-V packages are given ownership based on the last integrated package where the ownership is passed to the newest published App-V application.
|
||||||
2. Ownership transfers from one App-V package to another when the owning App-V package is unpublished. This will not initiate a restore of the data or registry.
|
2. Ownership transfers from one App-V package to another when the owning App-V package is unpublished. This transfer won't initiate a restore of the data or registry.
|
||||||
3. Restore the backed-up data when the last package is unpublished or removed on a per-extension point basis.
|
3. Restore the backed-up data when the last package is unpublished or removed on a per-extension point basis.
|
||||||
|
|
||||||
### Extension points
|
### Extension points
|
||||||
|
|
||||||
The App-V publishing files (manifest and dynamic configuration) provide several extension points to integrate the application with the local operating system. These extension points perform typical application installation tasks, such as placing shortcuts, creating file type associations, and registering components. As these are virtualized applications that are not installed in the same manner a traditional application, there are some differences. The following is a list of extension points covered in this section:
|
The App-V publishing files (manifest and dynamic configuration) provide several extension points to integrate the application with the local operating system. These extension points perform typical application installation tasks, such as placing shortcuts, creating file type associations, and registering components. As these are virtualized applications that aren't installed in the same manner a traditional application, there are some differences. The following is a list of extension points covered in this section:
|
||||||
|
|
||||||
- Shortcuts
|
- Shortcuts
|
||||||
- File type associations
|
- File type associations
|
||||||
@ -598,7 +600,7 @@ The App-V publishing files (manifest and dynamic configuration) provide several
|
|||||||
|
|
||||||
The shortcut is one of the basic elements of integration with the OS and is the interface for direct user launch of an App-V application. During the publishing and unpublishing of App-V applications.
|
The shortcut is one of the basic elements of integration with the OS and is the interface for direct user launch of an App-V application. During the publishing and unpublishing of App-V applications.
|
||||||
|
|
||||||
From the package manifest and dynamic configuration XML files, the path to a specific application executable can be found in a section like the following:
|
From the package manifest and dynamic configuration XML files, the path to a specific application executable can be found in a section as shown in the following example:
|
||||||
|
|
||||||
```XML
|
```XML
|
||||||
<Extension Category="AppV.Shortcut">
|
<Extension Category="AppV.Shortcut">
|
||||||
@ -618,7 +620,7 @@ As mentioned previously, the App-V shortcuts are placed by default in the user
|
|||||||
|
|
||||||
### File type associations
|
### File type associations
|
||||||
|
|
||||||
Users can use file type invocations or open a file with a specifically registered extension (.docx) to start an App-V application because the App-V Client manages the local operating system File Type Associations during publishing. File type associations are present in the manifest and dynamic configuration files, as shown in the following example:
|
Users can use file type invocations or open a file with a registered extension (.docx) to start an App-V application because the App-V Client manages the local operating system File Type Associations during publishing. File type associations are present in the manifest and dynamic configuration files, as shown in the following example:
|
||||||
|
|
||||||
```XML
|
```XML
|
||||||
<Extension Category="AppV.FileTypeAssociation">
|
<Extension Category="AppV.FileTypeAssociation">
|
||||||
@ -665,7 +667,7 @@ Users can use file type invocations or open a file with a specifically registere
|
|||||||
|
|
||||||
### Shell extensions
|
### Shell extensions
|
||||||
|
|
||||||
Shell extensions are embedded in the package automatically during the sequencing process. When the package is published globally, the shell extension gives users the same functionality as if the application were locally installed. The application requires no additional setup or configuration on the client to enable the shell extension functionality.
|
Shell extensions are embedded in the package automatically during the sequencing process. When the package is published globally, the shell extension gives users the same functionality as if the application were locally installed. The application requires no extra setup or configuration on the client to enable the shell extension functionality.
|
||||||
|
|
||||||
#### Requirements for using shell extensions
|
#### Requirements for using shell extensions
|
||||||
|
|
||||||
@ -679,10 +681,10 @@ The following table displays the supported shell extensions.
|
|||||||
|
|
||||||
| Handler | Description |
|
| Handler | Description |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Context menu handler | Adds menu items to the context menu. It is called before the context menu is displayed. |
|
| Context menu handler | Adds menu items to the context menu. it's called before the context menu is displayed. |
|
||||||
| Drag-and-drop handler | Controls the action upon right-click drag-and-drop and modifies the context menu that appears. |
|
| Drag-and-drop handler | Controls the action upon right-click drag-and-drop and modifies the context menu that appears. |
|
||||||
| Drop target handler | Controls the action after a data object is dragged-and-dropped over a drop target, such as a file.|
|
| Drop target handler | Controls the action after a data object is dragged-and-dropped over a drop target, such as a file.|
|
||||||
| Data object handler| Controls the action after a file is copied to the clipboard or dragged-and-dropped over a drop target. It can provide additional clipboard formats to the drop target.|
|
| Data object handler| Controls the action after a file is copied to the clipboard or dragged-and-dropped over a drop target. It can provide more clipboard formats to the drop target.|
|
||||||
| Property sheet handler| Replaces or adds pages to the property sheet dialog box of an object.|
|
| Property sheet handler| Replaces or adds pages to the property sheet dialog box of an object.|
|
||||||
| Infotip handler| Allows retrieving flags and infotip information for an item and displaying it inside a popup tooltip upon mouse-hover.|
|
| Infotip handler| Allows retrieving flags and infotip information for an item and displaying it inside a popup tooltip upon mouse-hover.|
|
||||||
| Column handler| Allows creating and displaying custom columns in Windows Explorer *Details view*. It can be used to extend sorting and grouping.|
|
| Column handler| Allows creating and displaying custom columns in Windows Explorer *Details view*. It can be used to extend sorting and grouping.|
|
||||||
@ -690,7 +692,7 @@ The following table displays the supported shell extensions.
|
|||||||
|
|
||||||
### COM
|
### COM
|
||||||
|
|
||||||
The App-V Client supports publishing applications with support for COM integration and virtualization. COM integration allows the App-V Client to register COM objects on the local operating system and virtualization of the objects. For the purposes of this document, the integration of COM objects requires additional detail.
|
The App-V Client supports publishing applications with support for COM integration and virtualization. COM integration allows the App-V Client to register COM objects on the local operating system and virtualization of the objects. For the purposes of this document, the integration of COM objects requires more details.
|
||||||
|
|
||||||
App-V supports registering COM objects from the package to the local operating system with two process types: Out-of-process and In-process. Registering COM objects is accomplished with one or a combination of multiple modes of operation for a specific App-V package that includes Off, Isolated, and Integrated. Integrated mode is configured for either the Out-of-process or In-process type. Configuration of COM modes and types is accomplished with dynamic configuration files (deploymentconfig.xml or userconfig.xml).
|
App-V supports registering COM objects from the package to the local operating system with two process types: Out-of-process and In-process. Registering COM objects is accomplished with one or a combination of multiple modes of operation for a specific App-V package that includes Off, Isolated, and Integrated. Integrated mode is configured for either the Out-of-process or In-process type. Configuration of COM modes and types is accomplished with dynamic configuration files (deploymentconfig.xml or userconfig.xml).
|
||||||
|
|
||||||
@ -698,9 +700,9 @@ For details on App-V integration, see [Microsoft Application Virtualization 5.0
|
|||||||
|
|
||||||
### Software clients and application capabilities
|
### Software clients and application capabilities
|
||||||
|
|
||||||
App-V supports specific software clients and application capabilities extension points to register virtualized applications with the operating system's software client. This means users can select default programs for operations like email, instant messaging, and using the media player. This operation is performed in the control panel with **Set Program Access** and **Computer Defaults**, and is configured during sequencing in the manifest or dynamic configuration files. Application capabilities are only supported when the App-V applications are published globally.
|
App-V supports specific software clients and application capabilities extension points to register virtualized applications with the operating system's software client. This specific support means users can select default programs for operations like email, instant messaging, and using the media player. This operation is performed in the control panel with **Set Program Access** and **Computer Defaults**, and is configured during sequencing in the manifest or dynamic configuration files. Application capabilities are only supported when the App-V applications are published globally.
|
||||||
|
|
||||||
The following is an example of software client registration of an App-V-based mail client.
|
The following example illustrates a software client registration of an App-V-based mail client.
|
||||||
|
|
||||||
```XML
|
```XML
|
||||||
<SoftwareClients Enabled="true">
|
<SoftwareClients Enabled="true">
|
||||||
@ -752,23 +754,23 @@ The following is an example of software client registration of an App-V-based ma
|
|||||||
|
|
||||||
Virtual applications don't always specifically utilize file type invocation. For, example, in an application that supports embedding a mailto: link inside a document or web page, the user selects the link expecting to access their registered mail client. App-V supports URL Protocol handlers that can be registered on a per-package basis with the local operating system. During sequencing, the URL Protocol handlers are automatically added to the package.
|
Virtual applications don't always specifically utilize file type invocation. For, example, in an application that supports embedding a mailto: link inside a document or web page, the user selects the link expecting to access their registered mail client. App-V supports URL Protocol handlers that can be registered on a per-package basis with the local operating system. During sequencing, the URL Protocol handlers are automatically added to the package.
|
||||||
|
|
||||||
For situations where there is more than one application that could register the specific URL Protocol handler, the dynamic configuration files can be utilized to modify the behavior and suppress or disable this feature for an application that should not be the primary application launched.
|
For situations where there's more than one application that could register the specific URL Protocol handler, the dynamic configuration files can be utilized to modify the behavior and suppress or disable this feature for an application that shouldn't be the primary application launched.
|
||||||
|
|
||||||
### AppPath
|
### AppPath
|
||||||
|
|
||||||
The AppPath extension point supports calling App-V applications directly from the operating system. Administrators can provide access to App-V applications from operating system commands or scripts without calling the specific path to the executable from either the Run or Start Screen, depending on the operating system. It therefore avoids modifying the system path environment variable on all systems, as it is accomplished during publishing.
|
The AppPath extension point supports calling App-V applications directly from the operating system. Administrators can provide access to App-V applications from operating system commands or scripts without calling the specific path to the executable from either the Run or Start Screen, depending on the operating system. It therefore avoids modifying the system path environment variable on all systems, as it's accomplished during publishing.
|
||||||
|
|
||||||
The AppPath extension point is configured either in the manifest or in the dynamic configuration files and is stored in the registry on the local machine during publishing for the user. For additional information on AppPath review: [App Paths - A Virtual Application Extension in App-V 5.0](/archive/blogs/virtualworld/app-paths-a-virtual-application-extension-in-app-v-5-0).
|
The AppPath extension point is configured either in the manifest or in the dynamic configuration files and is stored in the registry on the local machine during publishing for the user. For more information on AppPath review: [App Paths - A Virtual Application Extension in App-V 5.0](/archive/blogs/virtualworld/app-paths-a-virtual-application-extension-in-app-v-5-0).
|
||||||
|
|
||||||
### Virtual application
|
### Virtual application
|
||||||
|
|
||||||
This subsystem provides a list of applications captured during sequencing which is usually consumed by other App-V components. Integration of extension points belonging to a specific application can be disabled using dynamic configuration files. For example, if a package contains two applications, you can disable all extension points belonging to one application to only allow integration of extension points for the other application.
|
This subsystem provides a list of applications captured during sequencing which is consumed by other App-V components. Integration of extension points belonging to a specific application can be disabled using dynamic configuration files. For example, if a package contains two applications, you can disable all extension points belonging to one application to only allow integration of extension points for the other application.
|
||||||
|
|
||||||
### Extension point rules
|
### Extension point rules
|
||||||
|
|
||||||
The previously described extension points are integrated into the operating system based on how the packages has been published. Global publishing places extension points in public machine locations, where user publishing places extension points in user locations. For example, a shortcut created on the desktop and published globally will result in the file data for the shortcut (%Public%\\Desktop) and the registry data (HKLM\\Software\\Classes). The same shortcut would have file data (%UserProfile%\\Desktop) and registry data (HKCU\\Software\\Classes).
|
The previously described extension points are integrated into the operating system based on how the packages have been published. Global publishing places extension points in public machine locations, where user publishing places extension points in user locations. For example, a shortcut created on the desktop and published globally will result in the file data for the shortcut (%Public%\\Desktop) and the registry data (HKLM\\Software\\Classes). The same shortcut would have file data (%UserProfile%\\Desktop) and registry data (HKCU\\Software\\Classes).
|
||||||
|
|
||||||
Extension points are not all published the same way, where some extension points will require global publishing and others require sequencing on the specific operating system and architecture where they are delivered. Below is a table that describes these two key rules.
|
Extension points aren't all published the same way, where some extension points will require global publishing and others require sequencing on the specific operating system and architecture where they're delivered. Below is a table that describes these two key rules.
|
||||||
|
|
||||||
|Virtual Extension|Requires target OS sequencing|Requires global publishing|
|
|Virtual Extension|Requires target OS sequencing|Requires global publishing|
|
||||||
|---|:---:|:---:|
|
|---|:---:|:---:|
|
||||||
@ -791,7 +793,7 @@ Extension points are not all published the same way, where some extension points
|
|||||||
|
|
||||||
## Dynamic configuration processing
|
## Dynamic configuration processing
|
||||||
|
|
||||||
Deploying App-V packages to a single machine or user is very simple. However, as organizations deploy App-V applications across business lines and geographic and political boundaries, it becomes impossible to sequence all applications with the same settings. App-V was designed to overcome this problem by capturing specific settings and configurations during sequencing in the Manifest file while also supporting modification with Dynamic Configuration files.
|
Deploying App-V packages to a single machine or user is simple. However, as organizations deploy App-V applications across business lines and geographic and political boundaries, it becomes impossible to sequence all applications with the same settings. App-V was designed to overcome this problem by capturing specific settings and configurations during sequencing in the Manifest file while also supporting modification with Dynamic Configuration files.
|
||||||
|
|
||||||
App-V dynamic configuration lets you specify a package policy at either the machine or user levels. Sequencing engineers can use Dynamic Configuration files to modify the configuration of a package post-sequencing to address the needs of individual groups of users or machines. In some instances, it may be necessary to modify the application to provide proper functionality within the App-V environment. For example, you may need to modify the \_\*config.xml files to allow certain actions to be performed at a specified time while executing the application, like disabling a mailto extension to prevent a virtualized application from overwriting that extension from another application.
|
App-V dynamic configuration lets you specify a package policy at either the machine or user levels. Sequencing engineers can use Dynamic Configuration files to modify the configuration of a package post-sequencing to address the needs of individual groups of users or machines. In some instances, it may be necessary to modify the application to provide proper functionality within the App-V environment. For example, you may need to modify the \_\*config.xml files to allow certain actions to be performed at a specified time while executing the application, like disabling a mailto extension to prevent a virtualized application from overwriting that extension from another application.
|
||||||
|
|
||||||
@ -799,7 +801,7 @@ App-V packages contain the Manifest file inside of the App-V Package file, which
|
|||||||
|
|
||||||
### Examples of dynamic configuration files
|
### Examples of dynamic configuration files
|
||||||
|
|
||||||
The following example shows the combination of the Manifest, Deployment Configuration, and User Configuration files after publishing and during normal operation. These examples are abbreviated examples of each of the files. The purpose is show the combination of the files only, not to be a complete description of the specific categories available in each file. For more information, download the [App-V Sequencing Guide](https://www.microsoft.com/download/details.aspx?id=27760).
|
The following example shows the combination of the Manifest, Deployment Configuration, and User Configuration files after publishing and during normal operation. These examples are abbreviated examples of each of the files. The purpose is to show the combination of the files only, not to be a complete description of the specific categories available in each file. For more information, download the [App-V Sequencing Guide](https://www.microsoft.com/download/details.aspx?id=27760).
|
||||||
|
|
||||||
#### Manifest
|
#### Manifest
|
||||||
|
|
||||||
@ -871,7 +873,7 @@ The following example shows the combination of the Manifest, Deployment Configur
|
|||||||
|
|
||||||
App-V supports automatic packaging of side-by-side assemblies during sequencing and deployment on the client during virtual application publishing. App-V also supports capturing side-by-side assemblies during sequencing for assemblies not present on the sequencing machine. For assemblies consisting of Visual C++ (Version 8 and newer) or MSXML run-time, the Sequencer will automatically detect and capture these dependencies even if they weren't installed during monitoring.
|
App-V supports automatic packaging of side-by-side assemblies during sequencing and deployment on the client during virtual application publishing. App-V also supports capturing side-by-side assemblies during sequencing for assemblies not present on the sequencing machine. For assemblies consisting of Visual C++ (Version 8 and newer) or MSXML run-time, the Sequencer will automatically detect and capture these dependencies even if they weren't installed during monitoring.
|
||||||
|
|
||||||
The side-by-side assemblies feature removes the limitations of previous versions of App-V, where the App-V Sequencer did not capture assemblies already present on the sequencing workstation, and privatized the assemblies, which limited it to one bit version per package. This behavior resulted in App-V applications being deployed to clients missing the required side-by-side assemblies, which led to application launch failures. This forced the packaging process to document and ensure that all assemblies required for packages were locally installed on the user’s client operating system. This task was both a management and implementation challenge due to the number of assemblies and the lack of application documentation for the required dependencies.
|
The side-by-side assemblies feature removes the limitations of previous versions of App-V, where the App-V Sequencer didn't capture assemblies already present on the sequencing workstation, and privatized the assemblies, which limited it to a bit version per package. This behavior resulted in App-V applications being deployed to clients missing the required side-by-side assemblies, which led to application launch failures. This failure forced the packaging process to document and ensure that all assemblies required for packages were locally installed on the user’s client operating system. This task was both a management and implementation challenge due to the number of assemblies and the lack of application documentation for the required dependencies.
|
||||||
|
|
||||||
Side-by-side assembly support in App-V has the following features:
|
Side-by-side assembly support in App-V has the following features:
|
||||||
|
|
||||||
@ -885,13 +887,13 @@ Side-by-side assembly support in App-V has the following features:
|
|||||||
During publishing of an App-V package with side-by-side assemblies, the App-V Client will check for the presence of the assembly on the machine. If it doesn't detect an assembly, the client will deploy the assembly to the machine. Packages that are part of connection groups will rely on the side-by-side assembly installations in the base packages, as the connection groups don't contain any information about assembly installation.
|
During publishing of an App-V package with side-by-side assemblies, the App-V Client will check for the presence of the assembly on the machine. If it doesn't detect an assembly, the client will deploy the assembly to the machine. Packages that are part of connection groups will rely on the side-by-side assembly installations in the base packages, as the connection groups don't contain any information about assembly installation.
|
||||||
|
|
||||||
>[!NOTE]
|
>[!NOTE]
|
||||||
>Unpublishing or removing a package with an assembly does not remove the assemblies for that package.
|
>Unpublishing or removing a package with an assembly doesn't remove the assemblies for that package.
|
||||||
|
|
||||||
## Client logging
|
## Client logging
|
||||||
|
|
||||||
The App-V Client logs information to the Windows Event log in standard ETW format. The specific App-V events can be found in the event viewer under **Applications and Services Logs\\Microsoft\\AppV\\Client**.
|
The App-V Client logs information to the Windows Event log in standard ETW format. The specific App-V events can be found in the event viewer under **Applications and Services Logs\\Microsoft\\AppV\\Client**.
|
||||||
|
|
||||||
There are three specific categories of events recorded:
|
There're three specific categories of events recorded:
|
||||||
|
|
||||||
- **Admin** logs events for configurations applied to the App-V Client and also contains the primary warnings and errors.
|
- **Admin** logs events for configurations applied to the App-V Client and also contains the primary warnings and errors.
|
||||||
- **Operational** logs the general App-V execution and usage of individual components, creating an audit log of the App-V Client's completed App-V operations.
|
- **Operational** logs the general App-V execution and usage of individual components, creating an audit log of the App-V Client's completed App-V operations.
|
||||||
|
@ -18,7 +18,7 @@ ms.topic: article
|
|||||||
|
|
||||||
Sequencing multiple apps at the same time requires you to install and start Microsoft Application Virtualization Sequencer (App-V Sequencer), and to install the necessary apps to collect any changes made to the operating system during the installation and building of the App-V package.
|
Sequencing multiple apps at the same time requires you to install and start Microsoft Application Virtualization Sequencer (App-V Sequencer), and to install the necessary apps to collect any changes made to the operating system during the installation and building of the App-V package.
|
||||||
|
|
||||||
Starting with Windows 10 version 1703, running the App-V Sequencer automatically captures and stores your customizations as an App-V project template (.appvt) file. If you want to make changes to this package later, your customizations will be automatically loaded from this template file. This is applicable to all of the sequencing scenarios:
|
Starting with Windows 10 version 1703, running the App-V Sequencer automatically captures and stores your customizations as an App-V project template (.appvt) file. If you want to make changes to this package later, your customizations will be automatically loaded from this template file. This automatic customization load is applicable to all of the sequencing scenarios:
|
||||||
|
|
||||||
- Using the **New-BatchAppVSequencerPackages** cmdlet
|
- Using the **New-BatchAppVSequencerPackages** cmdlet
|
||||||
- Using the App-V Sequencer interface
|
- Using the App-V Sequencer interface
|
||||||
@ -39,7 +39,7 @@ Sequencing multiple apps at the same time requires that you create a **ConfigFil
|
|||||||
|
|
||||||
- ```<AppName>```. The name of the app you're adding to the package.
|
- ```<AppName>```. The name of the app you're adding to the package.
|
||||||
- ```<InstallerFolder>```. The file path to the folder with the app installer.
|
- ```<InstallerFolder>```. The file path to the folder with the app installer.
|
||||||
- ```<Installer>```. The file name for the app executable. This will typically be an .exe or .msi file.
|
- ```<Installer>```. The file name for the app executable. This file will typically be an .exe or .msi file.
|
||||||
- ```<InstallerOptions>```. The command-line options required for the app installation.
|
- ```<InstallerOptions>```. The command-line options required for the app installation.
|
||||||
- ```<TimeoutInMinutes>```. The maximum amount of time, in minutes, that the cmdlet should wait for sequencing to complete. You can enter a different value for each app, based on the size and complexity of the app itself.
|
- ```<TimeoutInMinutes>```. The maximum amount of time, in minutes, that the cmdlet should wait for sequencing to complete. You can enter a different value for each app, based on the size and complexity of the app itself.
|
||||||
- ```<Cmdlet>```. Determines whether the sequencer uses the cmdlet or the App-V Sequencer interface. **True** tells the sequencer to use cmdlet-based sequencing, while **False** tells the sequencer to use the App-V Sequencer interface. You can use both the cmdlet and the interface together in the same ConfigFile, for different apps.
|
- ```<Cmdlet>```. Determines whether the sequencer uses the cmdlet or the App-V Sequencer interface. **True** tells the sequencer to use cmdlet-based sequencing, while **False** tells the sequencer to use the App-V Sequencer interface. You can use both the cmdlet and the interface together in the same ConfigFile, for different apps.
|
||||||
@ -83,11 +83,11 @@ New-BatchAppVSequencerPackages –ConfigFile <path_to_configfile> –VMName <nam
|
|||||||
|
|
||||||
Where ```<name_of_vm>``` is the name of the virtual machine (VM) with the App-V Sequencer installed, where you'll run the batch sequencing, and ```<path_to_your_output>``` is the full path to where the sequenced packages should be copied.
|
Where ```<name_of_vm>``` is the name of the virtual machine (VM) with the App-V Sequencer installed, where you'll run the batch sequencing, and ```<path_to_your_output>``` is the full path to where the sequenced packages should be copied.
|
||||||
|
|
||||||
The cmdlet creates a "clean" checkpoint on the VM. Next, the cmdlet copies the first app installer listed in the ConfigFile from the Host computer to the VM, and finally a new session of the VM opens (through VMConnect) and sequencing of the app begins from the command-line. After completing sequencing and package creation for the first app on the VM, the package is copied from the VM to the Host computer, specified in the *OutputPath* parameter. The cmdlet then goes to the second app on your list, reverting the VM back to a "clean" checkpoint and running through all of the steps again, until the second app package is copied to your output folder. This process continues until all apps included in your list are done. After the last app, the VM is reverted back to a "clean" checkpoint and turned off.
|
The cmdlet creates a "clean" checkpoint on the VM. Next, the cmdlet copies the first app installer listed in the ConfigFile from the Host computer to the VM, and finally a new session of the VM opens (through VMConnect) and sequencing of the app begins from the command-line. After the sequencing and package creation for the first app on the VM is completed, the package is copied from the VM to the Host computer, specified in the *OutputPath* parameter. The cmdlet then goes to the second app on your list, reverting the VM back to a "clean" checkpoint and running through all of the steps again, until the second app package is copied to your output folder. This process continues until all apps included in your list are done. After the last app, the VM is reverted back to a "clean" checkpoint and turned off.
|
||||||
|
|
||||||
### Review the log files
|
### Review the log files
|
||||||
|
|
||||||
There are 3 types of log files that occur when you sequence multiple apps at the same time:
|
There are three types of log files that occur when you sequence multiple apps at the same time:
|
||||||
|
|
||||||
- **New-BatchAppVSequencerPackages-<*time_stamp*>.txt**. Located in the %temp%\AutoSequencer\Logs directory. This log contains info about the sequencing activities for each app, such as "Copying installer to VM," "Scheduling sequencing task," and so on. Additionally, if an app times out, this log contains the failure along with the checkpoint for troubleshooting the problem.
|
- **New-BatchAppVSequencerPackages-<*time_stamp*>.txt**. Located in the %temp%\AutoSequencer\Logs directory. This log contains info about the sequencing activities for each app, such as "Copying installer to VM," "Scheduling sequencing task," and so on. Additionally, if an app times out, this log contains the failure along with the checkpoint for troubleshooting the problem.
|
||||||
- **New-BatchAppVSequencerPackages-report-<*time_stamp*>.txt**. Located in the **OutputPath** folder you specified earlier. This log contains info about the connections made to the VM, showing if there were any failures. Additionally, it briefly includes success or failure info for all of the apps.
|
- **New-BatchAppVSequencerPackages-report-<*time_stamp*>.txt**. Located in the **OutputPath** folder you specified earlier. This log contains info about the connections made to the VM, showing if there were any failures. Additionally, it briefly includes success or failure info for all of the apps.
|
||||||
|
@ -35,7 +35,7 @@ Updating multiple apps at the same time requires that you create a **ConfigFile*
|
|||||||
|
|
||||||
- ```<AppName>```. The name of the app you're adding to the package.
|
- ```<AppName>```. The name of the app you're adding to the package.
|
||||||
- ```<InstallerFolder>```. The file path to the folder with the app installer.
|
- ```<InstallerFolder>```. The file path to the folder with the app installer.
|
||||||
- ```<Installer>```. The file name for the app executable. This will typically be an .exe or .msi file.
|
- ```<Installer>```. The file name for the app executable. This file will typically be an .exe or .msi file.
|
||||||
- ```<InstallerOptions>```. The command-line options required for the app installation.
|
- ```<InstallerOptions>```. The command-line options required for the app installation.
|
||||||
- ```<Package>```. The file path to the location of your App-V packages. These packages were created when you sequenced your apps.
|
- ```<Package>```. The file path to the location of your App-V packages. These packages were created when you sequenced your apps.
|
||||||
- ```<TimeoutInMinutes>```. The maximum amount of time, in minutes, that the cmdlet should wait for updating to complete. You can enter a different value for each app, based on the size and complexity of the app itself.
|
- ```<TimeoutInMinutes>```. The maximum amount of time, in minutes, that the cmdlet should wait for updating to complete. You can enter a different value for each app, based on the size and complexity of the app itself.
|
||||||
@ -80,7 +80,7 @@ Updating multiple apps at the same time requires that you create a **ConfigFile*
|
|||||||
```
|
```
|
||||||
Where ```<name_of_vm>``` is the name of the virtual machine (VM) with the App-V Sequencer installed that you'll run the batch updating on, and ```<path_to_your_output>``` is the full path to where the updated packages should be copied.
|
Where ```<name_of_vm>``` is the name of the virtual machine (VM) with the App-V Sequencer installed that you'll run the batch updating on, and ```<path_to_your_output>``` is the full path to where the updated packages should be copied.
|
||||||
|
|
||||||
The cmdlet creates a "clean" checkpoint on the VM. After making the checkpoint, the cmdlet copies the first app installer listed in the ConfigFile from the Host computer to the VM. This opens a new session of the VM (through VMConnect), allowing app updates to begin from the command-line. After completing the update and package creation for the first app on the VM, the package is copied from the VM to the Host computer, specified in the OutputPath parameter. The cmdlet then goes to the second app on your list, reverting the VM back to a "clean" checkpoint and running through all of the steps again, until the second app package is copied to your output folder. This process continues until all apps included in your list are done. After the last app, the VM is reverted back to a "clean" checkpoint and turned off.
|
The cmdlet creates a "clean" checkpoint on the VM. After the checkpoint is created, the cmdlet copies the first app installer listed in the ConfigFile from the Host computer to the VM. This copy-operation opens a new session of the VM (through VMConnect), allowing app updates to begin from the command-line. After the update and package creation for the first app on the VM is completed, the package is copied from the VM to the Host computer, specified in the OutputPath parameter. The cmdlet then goes to the second app on your list, reverting the VM back to a "clean" checkpoint and running through all of the steps again, until the second app package is copied to your output folder. This process continues until all apps included in your list are done. After the last app, the VM is reverted back to a "clean" checkpoint and turned off.
|
||||||
|
|
||||||
## Update multiple apps with the App-V Sequencer interface
|
## Update multiple apps with the App-V Sequencer interface
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ Updating multiple apps at the same time requires that you create a **ConfigFile*
|
|||||||
|
|
||||||
- ```<AppName>```. The name of the app you're adding to the package.
|
- ```<AppName>```. The name of the app you're adding to the package.
|
||||||
- ```<InstallerFolder>```. The file path to the folder with the app installer.
|
- ```<InstallerFolder>```. The file path to the folder with the app installer.
|
||||||
- ```<Installer>```. The file name for the app executable. This will typically be an .exe or .msi file.
|
- ```<Installer>```. The file name for the app executable. This file will typically be an .exe or .msi file.
|
||||||
- ```<Package>```. The file path to the location of your App-V packages. These packages were created when you sequenced your apps.
|
- ```<Package>```. The file path to the location of your App-V packages. These packages were created when you sequenced your apps.
|
||||||
- ```<TimeoutInMinutes>```. The maximum amount of time, in minutes, the cmdlet should wait for updating to complete. You can enter a different value for each app, based on the size and complexity of the app itself.
|
- ```<TimeoutInMinutes>```. The maximum amount of time, in minutes, the cmdlet should wait for updating to complete. You can enter a different value for each app, based on the size and complexity of the app itself.
|
||||||
- ```<Cmdlet>```. Determines whether the sequencer uses the cmdlet or the App-V Sequencer interface. **True** tells the sequencer to use cmdlet-based updating, while **False** tells the sequencer to use the App-V Sequencer interface. You can use both the cmdlet and the interface together in the same ConfigFile, for different apps.
|
- ```<Cmdlet>```. Determines whether the sequencer uses the cmdlet or the App-V Sequencer interface. **True** tells the sequencer to use cmdlet-based updating, while **False** tells the sequencer to use the App-V Sequencer interface. You can use both the cmdlet and the interface together in the same ConfigFile, for different apps.
|
||||||
@ -137,7 +137,7 @@ Updating multiple apps at the same time requires that you create a **ConfigFile*
|
|||||||
```
|
```
|
||||||
Where ```<name_of_vm>``` is the name of the virtual machine (VM) with the App-V Sequencer installed, where you'll run the batch updating, and ```<path_to_your_output>``` is the full path to where the updated packages should be copied.
|
Where ```<name_of_vm>``` is the name of the virtual machine (VM) with the App-V Sequencer installed, where you'll run the batch updating, and ```<path_to_your_output>``` is the full path to where the updated packages should be copied.
|
||||||
|
|
||||||
This cmdlet creates a "clean" checkpoint on the VM. After making the checkpoint, the cmdlet copies the first app installer listed in the ConfigFile from the Host computer to the VM. This opens a new session of the VM (through VMConnect) and app updating begins from the command-line. After completing updating and package creation for the first app on the VM, the package is copied from the VM to the Host computer specified in the *OutputPath* parameter. The cmdlet then goes to the second app on your list, reverting the VM back to a "clean" checkpoint and running through all of the steps again, until the second app package is copied to your output folder. This process continues until all apps included in your list are done. After the last app, the VM is reverted to a "clean" checkpoint and turned off.
|
This cmdlet creates a "clean" checkpoint on the VM. After the checkpoint is created, the cmdlet copies the first app installer listed in the ConfigFile from the Host computer to the VM. This opens a new session of the VM (through VMConnect) and app updating begins from the command-line. After the updating and package creation for the first app on the VM is completed, the package is copied from the VM to the Host computer specified in the *OutputPath* parameter. The cmdlet then goes to the second app on your list, reverting the VM back to a "clean" checkpoint and running through all of the steps again, until the second app package is copied to your output folder. This process continues until all apps included in your list are done. After the last app, the VM is reverted to a "clean" checkpoint and turned off.
|
||||||
|
|
||||||
### Review the log files
|
### Review the log files
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ Previous versions of the App-V Sequencer have required you to manually create yo
|
|||||||
|
|
||||||
## Automatic VM provisioning of the sequencing environment
|
## Automatic VM provisioning of the sequencing environment
|
||||||
|
|
||||||
You have two options for provisioning an VM for auto-sequencing:
|
You have two options for provisioning a VM for auto-sequencing:
|
||||||
|
|
||||||
1. Using a Virtual Hard Disk (VHD)
|
1. Using a Virtual Hard Disk (VHD)
|
||||||
2. Updating an existing VM
|
2. Updating an existing VM
|
||||||
|
@ -23,18 +23,18 @@ The following recommendations can be used as a baseline to help determine capaci
|
|||||||
|
|
||||||
## Determine the project scope
|
## Determine the project scope
|
||||||
|
|
||||||
Before you design the App-V infrastructure, determining which applications will be available virtually, and also identify the target users and their locations. This information will determine what type of App-V infrastructure your project should implement. Your should base your decisions about your project's scope on your organization's specific needs.
|
Before you design the App-V infrastructure, determining which applications will be available virtually, and also identify the target users and their locations. This information will determine what type of App-V infrastructure your project should implement. You should base your decisions about your project's scope on your organization's specific needs.
|
||||||
|
|
||||||
|Task|More information|
|
|Task|More information|
|
||||||
|----|----------------|
|
|----|----------------|
|
||||||
|Determine application scope|The App-V infrastructure can be set up in different ways depending on which applications you want to virtualize. This means your first task is to define which applications you want to virtualize.|
|
|Determine application scope|The App-V infrastructure can be set up in different ways depending on which applications you want to virtualize. This customization in set up means your first task is to define which applications you want to virtualize.|
|
||||||
|Determine location scope|"Location scope" refers to the physical locations where you plan to run the virtualized applications (for example, enterprise-wide or a specific geographic location). It can also refer to the user population that will run the virtual applications (for example, a single department). You should obtain a network map that includes the connection paths, the available bandwidth for each location, the number of users using virtualized applications, and the WAN link speed.|
|
|Determine location scope|"Location scope" refers to the physical locations where you plan to run the virtualized applications (for example, enterprise-wide or a specific geographic location). It can also refer to the user population that will run the virtual applications (for example, a single department). You should obtain a network map that includes the connection paths, the available bandwidth for each location, the number of users using virtualized applications, and the WAN link speed.|
|
||||||
|
|
||||||
## Determine which App-V infrastructure is required
|
## Determine which App-V infrastructure is required
|
||||||
|
|
||||||
You can also manage your App-V environment using an electronic software distribution (ESD) solution such as Microsoft Systems Center Configuration Manager. For more information see [How to deploy App-V packages using electronic software distribution](appv-deploy-appv-packages-with-electronic-software-distribution-solutions.md).
|
You can also manage your App-V environment using an electronic software distribution (ESD) solution such as Microsoft Systems Center Configuration Manager. For more information, see [How to deploy App-V packages using electronic software distribution](appv-deploy-appv-packages-with-electronic-software-distribution-solutions.md).
|
||||||
|
|
||||||
* **Standalone model**—The standalone model allows virtual applications to be Windows Installer-enabled for distribution without streaming. App-V in Standalone mode only needs the sequencer and the client; no additional components are required. Applications are prepared for virtualization using a process called sequencing. For more information, see [Planning for the App-V Sequencer and Client deployment](appv-planning-for-sequencer-and-client-deployment.md). The standalone model is recommended for the following scenarios:
|
* **Standalone model**—The standalone model allows virtual applications to be Windows Installer-enabled for distribution without streaming. App-V in Standalone mode only needs the sequencer and the client; no extra components are required. Applications are prepared for virtualization using a process called sequencing. For more information, see [Planning for the App-V Sequencer and Client deployment](appv-planning-for-sequencer-and-client-deployment.md). The standalone model is recommended for the following scenarios:
|
||||||
|
|
||||||
* When there are disconnected remote users who can't connect to the App-V infrastructure.
|
* When there are disconnected remote users who can't connect to the App-V infrastructure.
|
||||||
* When you're running a software management system, such as System Center 2012 Configuration Manager.
|
* When you're running a software management system, such as System Center 2012 Configuration Manager.
|
||||||
@ -79,8 +79,8 @@ The following table describes each factor that impacts round-trip time in more d
|
|||||||
|Factors impacting round-trip response time|Description|
|
|Factors impacting round-trip response time|Description|
|
||||||
|------------------------------------------|-----------|
|
|------------------------------------------|-----------|
|
||||||
|The number of publishing servers simultaneously requesting package metadata refreshes.|A single management server can respond to up to 320 publishing servers simultaneously requesting publishing metadata. For example, in a case with 30 publishing servers simultaneously requesting publishing metadata, the round-trip response time is about 40 seconds, while for less than 50 servers it's less than 5 seconds. From 50 to 320 publishing servers, response team increases linearly (approximately 2×).|
|
|The number of publishing servers simultaneously requesting package metadata refreshes.|A single management server can respond to up to 320 publishing servers simultaneously requesting publishing metadata. For example, in a case with 30 publishing servers simultaneously requesting publishing metadata, the round-trip response time is about 40 seconds, while for less than 50 servers it's less than 5 seconds. From 50 to 320 publishing servers, response team increases linearly (approximately 2×).|
|
||||||
|The number of connection groups configured on the management server.|For up to 100 connection groups, there is no significant change in the round-trip response time on the publishing server. For 100–400 connection groups, there is a minor linear increase in the round-trip response time.|
|
|The number of connection groups configured on the management server.|For up to 100 connection groups, there's no significant change in the round-trip response time on the publishing server. For 100–400 connection groups, there's a minor linear increase in the round-trip response time.|
|
||||||
|The number of access groups configured on the management server.|For up to 40 access groups, there is a linear (approximately 3×) increase in the round-trip response time on the publishing server.|
|
|The number of access groups configured on the management server.|For up to 40 access groups, there's a linear (approximately 3×) increase in the round-trip response time on the publishing server.|
|
||||||
|
|
||||||
The following table displays sample values for each of the previous factors. In each variation, 120 packages are refreshed from the App-V management server.
|
The following table displays sample values for each of the previous factors. In each variation, 120 packages are refreshed from the App-V management server.
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ The following table displays sample values for each of the previous factors. In
|
|||||||
|
|
||||||
The CPU utilization of the computer running the management server is around 25% irrespective of the number of publishing servers targeting it. The Microsoft SQL Server database transactions/sec, batch requests/sec and user connections are identical irrespective of the number of publishing servers. For example, transactions/sec is approximately 30, batch requests approximately 200, and user connects approximately six.
|
The CPU utilization of the computer running the management server is around 25% irrespective of the number of publishing servers targeting it. The Microsoft SQL Server database transactions/sec, batch requests/sec and user connections are identical irrespective of the number of publishing servers. For example, transactions/sec is approximately 30, batch requests approximately 200, and user connects approximately six.
|
||||||
|
|
||||||
Using a geographically distributed deployment, where the management server and publishing servers utilize a slow link network between them, the round-trip response time on the publishing servers is within acceptable time limits (<5 seconds), even for 100 simultaneous requests on a single management server.
|
Through a geographically distributed deployment, where the management server and publishing servers utilize a slow link network between them, the round-trip response time on the publishing servers is within acceptable time limits (<5 seconds), even for 100 simultaneous requests on a single management server.
|
||||||
|
|
||||||
|Scenario|Variation|Number of connection groups|Number of access groups|Number of publishing servers|Network connection type|Round-trip response time (seconds)|Management server CPU utilization (in %)|
|
|Scenario|Variation|Number of connection groups|Number of access groups|Number of publishing servers|Network connection type|Round-trip response time (seconds)|Management server CPU utilization (in %)|
|
||||||
|---|---|---|---|---|---|---|---|
|
|---|---|---|---|---|---|---|---|
|
||||||
@ -103,7 +103,7 @@ Whether the management server and publishing servers are connected over a slow l
|
|||||||
|
|
||||||
## App-V Reporting Server capacity planning recommendations
|
## App-V Reporting Server capacity planning recommendations
|
||||||
|
|
||||||
App-V clients send reporting data to the reporting server. The reporting server then records the information in the Microsoft SQL Server database and returns a successful notification back to the computer running App-V client. For more information about the App-V Reporting Server's supported configurations see [App-V supported configurations](appv-supported-configurations.md).
|
App-V clients send reporting data to the reporting server. The reporting server then records the information in the Microsoft SQL Server database and returns a successful notification back to the computer running App-V client. For more information about the App-V Reporting Server's supported configurations, see [App-V supported configurations](appv-supported-configurations.md).
|
||||||
|
|
||||||
>[!NOTE]
|
>[!NOTE]
|
||||||
>Round-trip response time is the time taken by the computer running the App-V client to send the reporting information to the reporting server and receive a successful notification from the reporting server.
|
>Round-trip response time is the time taken by the computer running the App-V client to send the reporting information to the reporting server and receive a successful notification from the reporting server.
|
||||||
@ -111,7 +111,7 @@ App-V clients send reporting data to the reporting server. The reporting server
|
|||||||
|Scenario|Summary|
|
|Scenario|Summary|
|
||||||
|---|---|
|
|---|---|
|
||||||
|Multiple App-V clients send reporting information to the reporting server simultaneously.|Round-trip response time from the reporting server is 2.6 seconds for 500 clients. Round-trip response time from the reporting server is 5.65 seconds for 1000 clients. Round-trip response time increases linearly depending on number of clients.|
|
|Multiple App-V clients send reporting information to the reporting server simultaneously.|Round-trip response time from the reporting server is 2.6 seconds for 500 clients. Round-trip response time from the reporting server is 5.65 seconds for 1000 clients. Round-trip response time increases linearly depending on number of clients.|
|
||||||
|Requests per second processed by the reporting server.|A single reporting server and a single database, can process a maximum of 139 requests per second. The average is 121 requests/second. Using two reporting servers reporting to the same Microsoft SQL Server database, the average requests/second, like a single reporting server, is about 127, with a max of 278 requests/second. A single reporting server can process 500 concurrent/active connections. A single reporting server can process a maximum 1,500 concurrent connections.|
|
|Requests per second processed by the reporting server.|A single reporting server and a single database can process a maximum of 139 requests per second. The average is 121 requests/second. With the help of two reporting servers that report to the same Microsoft SQL Server database, the average requests/second, like a single reporting server, is about 127, with a max of 278 requests/second. A single reporting server can process 500 concurrent/active connections. A single reporting server can process a maximum 1,500 concurrent connections.|
|
||||||
|Reporting database.|Lock contention on the computer running Microsoft SQL Server is the limiting factor for requests/second. Throughput and response time are independent of database size.|
|
|Reporting database.|Lock contention on the computer running Microsoft SQL Server is the limiting factor for requests/second. Throughput and response time are independent of database size.|
|
||||||
|
|
||||||
### Calculating random delay
|
### Calculating random delay
|
||||||
@ -136,7 +136,7 @@ Computers running the App-V client connect to the App-V publishing server to sen
|
|||||||
|---|---|
|
|---|---|
|
||||||
|Multiple App-V clients connect to a single publishing server simultaneously.|A publishing server running dual core processors can respond to at most 5000 clients requesting a refresh simultaneously. For 5,000–10,000 clients, the publishing server requires a minimum quad core. For 10,000–20,000 clients, the publishing server should have dual quad cores for more efficient response times. A publishing server with a quad core can refresh up to 10,000 packages within three seconds. (Supports 10,000 simultaneous clients.)|
|
|Multiple App-V clients connect to a single publishing server simultaneously.|A publishing server running dual core processors can respond to at most 5000 clients requesting a refresh simultaneously. For 5,000–10,000 clients, the publishing server requires a minimum quad core. For 10,000–20,000 clients, the publishing server should have dual quad cores for more efficient response times. A publishing server with a quad core can refresh up to 10,000 packages within three seconds. (Supports 10,000 simultaneous clients.)|
|
||||||
|Number of packages in each refresh.|Increasing number of packages will increase response time by about 40% (up to 1,000 packages).|
|
|Number of packages in each refresh.|Increasing number of packages will increase response time by about 40% (up to 1,000 packages).|
|
||||||
|Network between the App-V client and the publishing server.|Across a slow network (1.5 Mbps bandwidth), there is a 97% increase in response time compared to LAN (up to 1,000 users).|
|
|Network between the App-V client and the publishing server.|Across a slow network (1.5-Mbps bandwidth), there's a 97% increase in response time compared to LAN (up to 1,000 users).|
|
||||||
|
|
||||||
>[!NOTE]
|
>[!NOTE]
|
||||||
>The publishing server CPU usage is always high during the time interval when it must process simultaneous requests (>90% in most cases). The publishing server can handle about 1,500 client requests in one second.
|
>The publishing server CPU usage is always high during the time interval when it must process simultaneous requests (>90% in most cases). The publishing server can handle about 1,500 client requests in one second.
|
||||||
@ -145,7 +145,7 @@ Computers running the App-V client connect to the App-V publishing server to sen
|
|||||||
|---|---|---|---|---|---|---|---|
|
|---|---|---|---|---|---|---|---|
|
||||||
|App-V client sends publishing refresh request and receives response, each request containing 120 packages|Number of clients|100<br>1,000<br>5,000<br>10,000|120<br>120<br>120<br>120|Dual Core<br>Dual Core<br>Quad Core<br>Quad Core|LAN|1<br>2<br>2<br>3|100<br>99<br>89<br>77|
|
|App-V client sends publishing refresh request and receives response, each request containing 120 packages|Number of clients|100<br>1,000<br>5,000<br>10,000|120<br>120<br>120<br>120|Dual Core<br>Dual Core<br>Quad Core<br>Quad Core|LAN|1<br>2<br>2<br>3|100<br>99<br>89<br>77|
|
||||||
|Multiple packages in each refresh.|Number of packages|1,000<br>1,000|500<br>1,000|Quad Core|LAN|2<br>3|92<br>91|
|
|Multiple packages in each refresh.|Number of packages|1,000<br>1,000|500<br>1,000|Quad Core|LAN|2<br>3|92<br>91|
|
||||||
|Network between client and publishing server.|1.5 Mbps Slow link network|100<br>500<br>1,000|120<br>120<br>120|Quad Core|1.5 Mbps intra-continental network|3<br>10 (0.2% failure rate)<br>7 (1% failure rate)||
|
|Network between client and publishing server.|1.5 Mbps Slow link network|100<br>500<br>1,000|120<br>120<br>120|Quad Core|1.5-Mbps intra-continental network|3<br>10 (0.2% failure rate)<br>7 (1% failure rate)||
|
||||||
|
|
||||||
## App-V streaming capacity planning recommendations
|
## App-V streaming capacity planning recommendations
|
||||||
|
|
||||||
@ -159,9 +159,9 @@ Computers running the App-V client stream the virtual application package from t
|
|||||||
|
|
||||||
|Scenario|Summary|
|
|Scenario|Summary|
|
||||||
|---|---|
|
|---|---|
|
||||||
|Multiple App-V clients stream applications from a single streaming server simultaneously.|If the number of clients simultaneously streaming from the same server increases, there is a linear relationship with the package download/streaming time.|
|
|Multiple App-V clients stream applications from a single streaming server simultaneously.|If the number of clients simultaneously streaming from the same server increases, there's a linear relationship with the package download/streaming time.|
|
||||||
|Size of the package being streamed.|The package size has a significant impact on the streaming/download time only for larger packages with a size of about 1 GB. For package sizes ranging from 3 MB to 100 MB, the streaming time ranges from 20 seconds to 100 seconds, with 100 simultaneous clients.|
|
|Size of the package being streamed.|The package size has a significant impact on the streaming/download time only for larger packages with a size of about 1 GB. For package sizes ranging from 3 MB to 100 MB, the streaming time ranges from 20 seconds to 100 seconds, with 100 simultaneous clients.|
|
||||||
|Network between the App-V client and the streaming server.|Across a slow network (1.5 Mbps bandwidth), there is a 70–80% increase in response time compared to LAN (up to 100 users).|
|
|Network between the App-V client and the streaming server.|Across a slow network (1.5-Mbps bandwidth), there's a 70–80% increase in response time compared to LAN (up to 100 users).|
|
||||||
|
|
||||||
The following table displays sample values for each of the factors in the previous list:
|
The following table displays sample values for each of the factors in the previous list:
|
||||||
|
|
||||||
@ -169,22 +169,22 @@ The following table displays sample values for each of the factors in the previo
|
|||||||
|---|---|---|---|---|---|
|
|---|---|---|---|---|---|
|
||||||
|Multiple App-V clients streaming virtual application packages from a streaming server.|Number of clients.|100<br>200<br>1,000<br>100<br>200<br>1,000|3.5 MB<br>3.5 MB<br>3.5 MB<br>5 MB<br>5 MB<br>5 MB|LAN|29<br>39<br>391<br>35<br>68<br>461|
|
|Multiple App-V clients streaming virtual application packages from a streaming server.|Number of clients.|100<br>200<br>1,000<br>100<br>200<br>1,000|3.5 MB<br>3.5 MB<br>3.5 MB<br>5 MB<br>5 MB<br>5 MB|LAN|29<br>39<br>391<br>35<br>68<br>461|
|
||||||
|Size of each package being streamed.|Size of each package.|100<br>200<br>100<br>200|21 MB<br>21 MB<br>109 MB<br>109 MB|LAN|33<br>83<br>100<br>160|
|
|Size of each package being streamed.|Size of each package.|100<br>200<br>100<br>200|21 MB<br>21 MB<br>109 MB<br>109 MB|LAN|33<br>83<br>100<br>160|
|
||||||
|Network connection between client and App-V streaming server.|1.5 Mbps Slow link network.|100<br>100|3.5 MB<br>5 MB|1.5 Mbps intra-continental network|102<br>121|
|
|Network connection between client and App-V streaming server.|1.5 Mbps Slow link network.|100<br>100|3.5 MB<br>5 MB|1.5-Mbps intra-continental network|102<br>121|
|
||||||
|
|
||||||
Each App-V streaming server should be able to handle a minimum of 200 clients concurrently streaming virtualized applications.
|
Each App-V streaming server should be able to handle a minimum of 200 clients concurrently streaming virtualized applications.
|
||||||
|
|
||||||
>[!NOTE]
|
>[!NOTE]
|
||||||
>The actual time to it will take to stream is determined primarily by the number of clients streaming simultaneously, number of packages, package size, the server’s network activity, and network conditions.
|
>The actual time to it will take to stream is determined primarily by the number of clients streaming simultaneously, number of packages, package size, the server’s network activity, and network conditions.
|
||||||
|
|
||||||
For example, an average user can stream a 100 MB package in less than 2 minutes, when 100 simultaneous clients are streaming from the server. However, a package of size 1 GB could take up to 30 minutes. In most real-world environments, streaming demand is not uniformly distributed, you will need to understand the approximate peak streaming requirements present in your environment to properly size the number of required streaming servers.
|
For example, an average user can stream a 100-MB package in less than 2 minutes, when 100 simultaneous clients are streaming from the server. However, a package of size 1 GB could take up to 30 minutes. In most real-world environments, streaming demand isn't uniformly distributed, you'll need to understand the approximate peak streaming requirements present in your environment to properly size the number of required streaming servers.
|
||||||
|
|
||||||
The number of clients a streaming server can support can be significantly increased and the peak streaming requirements reduced if you pre-cache your applications. You can also increase the number of clients a streaming server can support by using on-demand streaming delivery and stream optimized packages.
|
The number of clients a streaming server can support can be increased and the peak streaming requirements reduced if you pre-cache your applications. You can also increase the number of clients a streaming server can support by using on-demand streaming delivery and stream optimized packages.
|
||||||
|
|
||||||
## Combining App-V server roles
|
## Combining App-V server roles
|
||||||
|
|
||||||
Discounting scaling and fault-tolerance requirements, the minimum number of servers that a location with Active Directory connectivity needs to function is one. This server will host the management server, management server service, and Microsoft SQL Server roles. This means that you can arrange server roles in any combination you like, as they don't conflict with one another.
|
Discounting scaling and fault-tolerance requirements, the minimum number of servers that a location with Active Directory connectivity needs to function is 1. This server will host the management server, management server service, and Microsoft SQL Server roles. This coverage means that you can arrange server roles in any combination you like, as they don't conflict with one another.
|
||||||
|
|
||||||
Ignoring scaling requirements, the minimum number of servers that a fault-tolerant implementation needs to function is four. The management server and Microsoft SQL Server roles support placement in fault-tolerant configurations. The management server service can be combined with any of the roles, but remains a single point of failure.
|
Notwithstanding scaling requirements, the minimum number of servers that a fault-tolerant implementation needs to function is four. The management server and Microsoft SQL Server roles support placement in fault-tolerant configurations. The management server service can be combined with any of the roles, but remains a single point of failure.
|
||||||
|
|
||||||
Although there are many fault-tolerance strategies and technologies you can use, not all are applicable to a given service. Additionally, if App-V roles are combined, the resulting incompatibilities could cause certain fault-tolerance options to stop working.
|
Although there are many fault-tolerance strategies and technologies you can use, not all are applicable to a given service. Additionally, if App-V roles are combined, the resulting incompatibilities could cause certain fault-tolerance options to stop working.
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ ms.topic: article
|
|||||||
|
|
||||||
[!INCLUDE [Applies to Windows client versions](../includes/applies-to-windows-client-versions.md)]
|
[!INCLUDE [Applies to Windows client versions](../includes/applies-to-windows-client-versions.md)]
|
||||||
|
|
||||||
The Microsoft Application Virtualization (App-V) client stores its configuration in the registry. Understanding how the register's format for data works can help you better understand the client, as you can configure many client actions by changing registry entries. This topic lists the App-V client configuration settings and explains their uses. You can use Windows PowerShell to modify the client configuration settings. For more information about using Windows PowerShell and App-V see [Administering App-V by using Windows PowerShell](appv-administering-appv-with-powershell.md).
|
The Microsoft Application Virtualization (App-V) client stores its configuration in the registry. Understanding how the register's format for data works can help you better understand the client, as you can configure many client actions by changing registry entries. This topic lists the App-V client configuration settings and explains their uses. You can use Windows PowerShell to modify the client configuration settings. For more information about using Windows PowerShell and App-V, see [Administering App-V by using Windows PowerShell](appv-administering-appv-with-powershell.md).
|
||||||
|
|
||||||
You can use Group Policy to configure App-V client settings by navigating to the **Group Policy management console** at **Computer Configuration** > **Administrative Templates** > **System** > **App-V**.
|
You can use Group Policy to configure App-V client settings by navigating to the **Group Policy management console** at **Computer Configuration** > **Administrative Templates** > **System** > **App-V**.
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ The following table provides information about App-V client configuration settin
|
|||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-LocationProvider**<br>String | Specifies the CLSID for a compatible implementation of the IAppvPackageLocationProvider interface. | Policy value not written (same as Not Configured) |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-LocationProvider**<br>String | Specifies the CLSID for a compatible implementation of the IAppvPackageLocationProvider interface. | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-CertFilterForClientSsl**<br>String | Specifies the path to a valid certificate in the certificate store. | Policy value not written (same as Not Configured) |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-CertFilterForClientSsl**<br>String | Specifies the path to a valid certificate in the certificate store. | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-VerifyCertificateRevocationList**<br>True (enabled); False (Disabled state) | Verifies Server certificate revocation status before streaming with HTTPS. | 0 |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-VerifyCertificateRevocationList**<br>True (enabled); False (Disabled state) | Verifies Server certificate revocation status before streaming with HTTPS. | 0 |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-SharedContentStoreMode**<br>True (enabled); False (Disabled state) | Specifies that streamed package contents will be not be saved to the local hard disk. | 0 |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-SharedContentStoreMode**<br>True (enabled); False (Disabled state) | Specifies that streamed package contents will not be saved to the local hard disk. | 0 |
|
||||||
| Set-AppvPublishingServer<br><br>**-Name**<br>String | Displays the name of publishing server. | Policy value not written (same as Not Configured) |
|
| Set-AppvPublishingServer<br><br>**-Name**<br>String | Displays the name of publishing server. | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvPublishingServer<br><br>**-URL**<br>String | Displays the URL of publishing server. | Policy value not written (same as Not Configured) |
|
| Set-AppvPublishingServer<br><br>**-URL**<br>String | Displays the URL of publishing server. | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvPublishingServer<br><br>**-GlobalRefreshEnabled**<br>True (enabled); False (Disabled state) | Enables global publishing refresh (Boolean) | False |
|
| Set-AppvPublishingServer<br><br>**-GlobalRefreshEnabled**<br>True (enabled); False (Disabled state) | Enables global publishing refresh (Boolean) | False |
|
||||||
@ -46,20 +46,20 @@ The following table provides information about App-V client configuration settin
|
|||||||
| Set-AppvPublishingServer<br><br>**-UserRefreshOnLogon**<br>True (enabled); False (Disabled state) | Triggers a user publishing refresh on sign in. (Boolean) Word count (with spaces): 60 | False |
|
| Set-AppvPublishingServer<br><br>**-UserRefreshOnLogon**<br>True (enabled); False (Disabled state) | Triggers a user publishing refresh on sign in. (Boolean) Word count (with spaces): 60 | False |
|
||||||
| Set-AppvPublishingServer<br><br>**-UserRefreshInterval**<br>Word count (with spaces): 85<br>Integer (0–744 Hours) | Specifies the publishing refresh interval using the UserRefreshIntervalUnit. To disable package refresh, select 0. | 0 |
|
| Set-AppvPublishingServer<br><br>**-UserRefreshInterval**<br>Word count (with spaces): 85<br>Integer (0–744 Hours) | Specifies the publishing refresh interval using the UserRefreshIntervalUnit. To disable package refresh, select 0. | 0 |
|
||||||
| Set-AppvPublishingServer<br><br>**-UserRefreshIntervalUnit**<br>0 for hour, 1 for day | Specifies the interval unit (Hour 0–23, Day 0–31). | 1 |
|
| Set-AppvPublishingServer<br><br>**-UserRefreshIntervalUnit**<br>0 for hour, 1 for day | Specifies the interval unit (Hour 0–23, Day 0–31). | 1 |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-MigrationMode**<br>True (enabled state); False (Disabled state) | Migration mode allows the App-V client to modify shortcuts and FTA’s for packages created by a previous version of App-V. | |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-MigrationMode**<br>True (enabled state); False (Disabled state) | Migration mode allows the App-V client to modify shortcuts and FTAs for packages created by a previous version of App-V. | |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-EnablePackageScripts**<br>True (enabled); False (Disabled state) | Enables scripts defined in the package manifest of configuration files that should run. | |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-EnablePackageScripts**<br>True (enabled); False (Disabled state) | Enables scripts defined in the package manifest of configuration files that should run. | |
|
||||||
| Set-AppvClientConfiguration<br><br>**-RoamingFileExclusions**<br>String | Specifies the file paths relative to %userprofile% that do not roam with a user's profile. For example, ```/ROAMINGFILEEXCLUSIONS='desktop;my pictures'``` | |
|
| Set-AppvClientConfiguration<br><br>**-RoamingFileExclusions**<br>String | Specifies the file paths relative to %userprofile% that don't roam with a user's profile. For example, ```/ROAMINGFILEEXCLUSIONS='desktop;my pictures'``` | |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-RoamingRegistryExclusions**<br>String | Specifies the registry paths that do not roam with a user profile. For example, ```/ROAMINGREGISTRYEXCLUSIONS=software\\classes;software\\clients``` | Policy value not written (same as Not Configured) |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-RoamingRegistryExclusions**<br>String | Specifies the registry paths that don't roam with a user profile. For example, ```/ROAMINGREGISTRYEXCLUSIONS=software\\classes;software\\clients``` | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-IntegrationRootUser**<br>String | Specifies the location to create symbolic links associated with the current version of a per-user published package. All virtual application extensions, such as shortcuts and file type associations, will point to this path. If you don't specify a path, symbolic links will not be used when you publish the package. For example, ```%localappdata%\\Microsoft\\AppV\\Client\\Integration```. | Policy value not written (same as Not Configured) |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-IntegrationRootUser**<br>String | Specifies the location to create symbolic links associated with the current version of a per-user published package. All virtual application extensions, such as shortcuts and file type associations, will point to this path. If you don't specify a path, symbolic links won't be used when you publish the package. For example, ```%localappdata%\\Microsoft\\AppV\\Client\\Integration```. | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-IntegrationRootGlobal**<br>String | Specifies the location to create symbolic links associated with the current version of a globally published package. All virtual application extensions, such as shortcuts and file type associations, will point to this path. If you don't specify a path, symbolic links will not be used when you publish the package. For example, ```%allusersprofile%\\Microsoft\\AppV\\Client\\Integration```. | Policy value not written (same as Not Configured) |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-IntegrationRootGlobal**<br>String | Specifies the location to create symbolic links associated with the current version of a globally published package. All virtual application extensions, such as shortcuts and file type associations, will point to this path. If you don't specify a path, symbolic links won't be used when you publish the package. For example, ```%allusersprofile%\\Microsoft\\AppV\\Client\\Integration```. | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-VirtualizableExtensions**<br>String | A comma-delineated list of file name extensions that can be used to determine if a locally installed application can be run in the virtual environment. When shortcuts, FTAs, and other extension points are created during publishing, App-V will compare the file name extension to the list if the application associated with the extension point is locally installed. If the extension is located, the **RunVirtual** command-line parameter will be added, and the application will run virtually. For more information about the **RunVirtual** parameter, see [Running a locally installed application inside a virtual environment with virtualized applications](appv-running-locally-installed-applications-inside-a-virtual-environment.md). | Policy value not written |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-VirtualizableExtensions**<br>String | A comma-delineated list of file name extensions that can be used to determine if a locally installed application can be run in the virtual environment. When shortcuts, FTAs, and other extension points are created during publishing, App-V will compare the file name extension to the list if the application associated with the extension point is locally installed. If the extension is located, the **RunVirtual** command-line parameter will be added, and the application will run virtually. For more information about the **RunVirtual** parameter, see [Running a locally installed application inside a virtual environment with virtualized applications](appv-running-locally-installed-applications-inside-a-virtual-environment.md). | Policy value not written |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingEnabled**<br>True (enabled); False (Disabled state) | Returns information to a reporting server. | False |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingEnabled**<br>True (enabled); False (Disabled state) | Returns information to a reporting server. | False |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingServerURL**<br>String | Specifies the location on the reporting server where client information is saved. | Policy value not written (same as Not Configured) |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingServerURL**<br>String | Specifies the location on the reporting server where client information is saved. | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingDataCacheLimit**<br>Integer \[0–1024\] | Specifies the maximum size in megabytes (MB) of the XML cache for storing reporting information. The size applies to the cache in memory. When the limit is reached, the log file will roll over. Set between 0 and 1024. | Policy value not written (same as Not Configured) |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingDataCacheLimit**<br>Integer \[0–1024\] | Specifies the maximum size in megabytes (MB) of the XML cache for storing reporting information. The size applies to the cache in memory. When the limit is reached, the log file will roll over. Set between 0 and 1024. | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingDataBlockSize**<br>Integer \[1024 - Unlimited\] | Specifies the maximum size in bytes to transmit to the server for reporting upload requests. This can help avoid permanent transmission failures when the log has reached a significant size. Set between 1024 and unlimited. | Policy value not written (same as Not Configured) |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingDataBlockSize**<br>Integer \[1024 - Unlimited\] | Specifies the maximum size in bytes to transmit to the server for reporting upload requests. This limit can help avoid permanent transmission failures when the log has reached a significant size. Set between 1024 and unlimited. | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingStartTime**<br>Integer (0–23) | Specifies the time to initiate the client to send data to the reporting server. You must specify a valid integer between 0–23 corresponding to the hour of the day. By default the **ReportingStartTime** will start on the current day at 10 P.M.or 22.<br>**Note** You should configure this setting to a time when computers running the App-V client are least likely to be offline. | Policy value not written (same as Not Configured) |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingStartTime**<br>Integer (0–23) | Specifies the time to initiate the client to send data to the reporting server. You must specify a valid integer between 0–23 corresponding to the hour of the day. By default the **ReportingStartTime** will start on the current day at 10 P.M.or 22.<br>**Note** You should configure this setting to a time when computers running the App-V client are least likely to be offline. | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingInterval**<br>Integer | Specifies the retry interval that the client will use to resend data to the reporting server. | Policy value not written (same as Not Configured) |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingInterval**<br>Integer | Specifies the retry interval that the client will use to resend data to the reporting server. | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingRandomDelay**<br>Integer \[0 - ReportingRandomDelay\] | Specifies the maximum delay (in minutes) for data to be sent to the reporting server. When the scheduled task is started, the client generates a random delay between 0 and **ReportingRandomDelay** and will wait the specified duration before sending data. This can help to prevent collisions on the server. | Policy value not written (same as Not Configured) |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-ReportingRandomDelay**<br>Integer \[0 - ReportingRandomDelay\] | Specifies the maximum delay (in minutes) for data to be sent to the reporting server. When the scheduled task is started, the client generates a random delay between 0 and **ReportingRandomDelay** and will wait the specified duration before sending data. This method can help to prevent collisions on the server. | Policy value not written (same as Not Configured) |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br><strong>-EnableDynamicVirtualization<br></strong>1 (Enabled), 0 (Disabled) | Enables supported Shell Extensions, Browser Helper Objects, and Active X controls to be virtualized and run with virtual applications. | |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br><strong>-EnableDynamicVirtualization<br></strong>1 (Enabled), 0 (Disabled) | Enables supported Shell Extensions, Browser Helper Objects, and Active X controls to be virtualized and run with virtual applications. | |
|
||||||
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-EnablePublishingRefreshUI**<br>1 (Enabled), 0 (Disabled) | Enables the publishing refresh progress bar for the computer running the App-V Client. | |
|
| Set-AppvClientConfiguration,<br>Set-AppvPublishingServer<br><br>**-EnablePublishingRefreshUI**<br>1 (Enabled), 0 (Disabled) | Enables the publishing refresh progress bar for the computer running the App-V Client. | |
|
||||||
| Sync-AppvPublishingServer<br><br>**-HidePublishingRefreshUI**<br>1 (Enabled), 0 (Disabled) | Hides the publishing refresh progress bar. | |
|
| Sync-AppvPublishingServer<br><br>**-HidePublishingRefreshUI**<br>1 (Enabled), 0 (Disabled) | Hides the publishing refresh progress bar. | |
|
||||||
|
@ -18,9 +18,9 @@ ms.topic: article
|
|||||||
|
|
||||||
## How package priority is determined
|
## How package priority is determined
|
||||||
|
|
||||||
The virtual environment and its current state are associated with the connection group, not with the individual packages. If you remove an App-V package from the connection group, the state that existed as part of the connection group will not migrate with the package.
|
The virtual environment and its current state are associated with the connection group, not with the individual packages. If you remove an App-V package from the connection group, the state that existed as part of the connection group won't migrate with the package.
|
||||||
|
|
||||||
If the same package is a part of two different connection groups, you have to indicate which connection group App-V should use. For example, you might have two packages in a connection group that each define the same registry DWORD value.
|
If the same package is a part of two different connection groups, you have to indicate which connection group App-V should use. For example, you might have two packages in a connection group wherein each defines the same registry DWORD value.
|
||||||
|
|
||||||
The connection group that is used is based on the order in which a package appears inside the **AppConnectionGroup** XML document:
|
The connection group that is used is based on the order in which a package appears inside the **AppConnectionGroup** XML document:
|
||||||
|
|
||||||
@ -48,12 +48,12 @@ Consider the following example section:
|
|||||||
|
|
||||||
Assume that same DWORD value ABC (HKEY\_LOCAL\_MACHINE\\software\\contoso\\finapp\\region) is defined in the first and third package.
|
Assume that same DWORD value ABC (HKEY\_LOCAL\_MACHINE\\software\\contoso\\finapp\\region) is defined in the first and third package.
|
||||||
|
|
||||||
For this example, the DWORD value definition would be the following:
|
For this example, the DWORD value definition would be as shown below:
|
||||||
|
|
||||||
- Package 1 (A8731008-4523-4713-83A4-CD1363907160): HKEY\_LOCAL\_MACHINE\\software\\contoso\\finapp\\region=5
|
- Package 1 (A8731008-4523-4713-83A4-CD1363907160): HKEY\_LOCAL\_MACHINE\\software\\contoso\\finapp\\region=5
|
||||||
- Package 3 (04220DCA-EE77-42BE-A9F5-96FD8E8593F2): HKEY\_LOCAL\_MACHINE\\software\\contoso\\finapp\\region=10
|
- Package 3 (04220DCA-EE77-42BE-A9F5-96FD8E8593F2): HKEY\_LOCAL\_MACHINE\\software\\contoso\\finapp\\region=10
|
||||||
|
|
||||||
Since Package 1 appears first, the AppConnectionGroup's virtual environment will have the single DWORD value of 5 (HKEY\_LOCAL\_MACHINE\\software\\contoso\\finapp\\region=5). This means that the virtual applications in Package 1, Package 2, and Package 3 will all see the value 5 when they query for HKEY\_LOCAL\_MACHINE\\software\\contoso\\finapp\\region.
|
Since Package 1 appears first, the AppConnectionGroup's virtual environment will have the single DWORD value of 5 (HKEY\_LOCAL\_MACHINE\\software\\contoso\\finapp\\region=5). This result means that the virtual applications in Package 1, Package 2, and Package 3 will all see the value 5 when they query for HKEY\_LOCAL\_MACHINE\\software\\contoso\\finapp\\region.
|
||||||
|
|
||||||
Other virtual environment resources are resolved in a similar way, but usually collisions occur in the registry.
|
Other virtual environment resources are resolved in a similar way, but usually collisions occur in the registry.
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ The following example shows the order and relationship of a file name lookup in
|
|||||||
|C:\Windows\System32|C:\Windows\System32|
|
|C:\Windows\System32|C:\Windows\System32|
|
||||||
|C:\AppTest|C:\AppTest|
|
|C:\AppTest|C:\AppTest|
|
||||||
|
|
||||||
When a virtualized application tries to find a specific file, App-V will first for a matching file path in Package A. If it doesn't find a matching path in Package A, it will then search Package B using the following mapping rules:
|
When a virtualized application tries to find a specific file, App-V will search for a matching file path in Package A. If it doesn't find a matching path in Package A, it will then search Package B using the following mapping rules:
|
||||||
|
|
||||||
- If a file named **test.txt** exists in the same virtual folder hierarchy in both application packages, App-V will use the first matching file.
|
- If a file named **test.txt** exists in the same virtual folder hierarchy in both application packages, App-V will use the first matching file.
|
||||||
- If a file named **bar.txt** exists in the virtual folder hierarchy of one application package, but not in the other, App-V will use the first matching file.
|
- If a file named **bar.txt** exists in the virtual folder hierarchy of one application package, but not in the other, App-V will use the first matching file.
|
||||||
|
@ -38,7 +38,7 @@ The App-V package converter will save the App-V 4.6 installation root folder and
|
|||||||
|
|
||||||
2. You can enter the following cmdlets to check or convert packages:
|
2. You can enter the following cmdlets to check or convert packages:
|
||||||
|
|
||||||
- **Test-AppvLegacyPackage**—This cmdlet checks packages. It will return information about any failures with the package such as missing **.sft** files, an invalid source, **.osd** file errors, or invalid package version. This cmdlet will not parse the **.sft** file or do any in-depth validation. For information about options and basic functionality for this cmdlet, using Windows PowerShell, enter the following cmdlet:
|
- **Test-AppvLegacyPackage**—This cmdlet checks packages. It will return information about any failures with the package such as missing **.sft** files, an invalid source, **.osd** file errors, or invalid package version. This cmdlet won't parse the **.sft** file or do any in-depth validation. For information about options and basic functionality for this cmdlet, using Windows PowerShell, enter the following cmdlet:
|
||||||
|
|
||||||
```PowerShell
|
```PowerShell
|
||||||
Test-AppvLegacyPackage -?
|
Test-AppvLegacyPackage -?
|
||||||
@ -50,9 +50,9 @@ The App-V package converter will save the App-V 4.6 installation root folder and
|
|||||||
ConvertFrom-AppvLegacyPackage C:\contentStore C:\convertedPackages
|
ConvertFrom-AppvLegacyPackage C:\contentStore C:\convertedPackages
|
||||||
```
|
```
|
||||||
|
|
||||||
In this cmdlet, `C:\contentStore` represents the location of the existing package and `C:\convertedPackages` is the output directory to which the resulting App-V for Windows client virtual application package file will be saved. By default, if you do not specify a new name, the old package name will be used.
|
In this cmdlet, `C:\contentStore` represents the location of the existing package and `C:\convertedPackages` is the output directory to which the resulting App-V for Windows client virtual application package file will be saved. By default, if you don't specify a new name, the old package name will be used.
|
||||||
|
|
||||||
Additionally, the package converter optimizes performance of packages in App-V for Windows client by setting the package to stream fault the App-V package. This is more performant than the primary feature block and fully downloading the package. The flag **DownloadFullPackageOnFirstLaunch** allows you to convert the package and set the package to be fully downloaded by default.
|
Additionally, the package converter optimizes performance of packages in App-V for Windows client by setting the package to stream fault the App-V package. This definition of setting is more performant than the primary feature block and fully downloading the package. The flag **DownloadFullPackageOnFirstLaunch** allows you to convert the package and set the package to be fully downloaded by default.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Before you specify the output directory, you must create the output directory.
|
> Before you specify the output directory, you must create the output directory.
|
||||||
@ -71,9 +71,9 @@ The App-V package converter will save the App-V 4.6 installation root folder and
|
|||||||
dir .\ | Test-AppvLegacyPackage | ConvertFrom-AppvLegacyAppvPackage -Target .\ConvertedPackages
|
dir .\ | Test-AppvLegacyPackage | ConvertFrom-AppvLegacyAppvPackage -Target .\ConvertedPackages
|
||||||
```
|
```
|
||||||
|
|
||||||
This piped example command tests packages, then passes the objects on for conversion. You can also apply a filter on packages without errors or only specify a directory which contains an **.sprj** file or pipe them to another cmdlet that adds the filtered package to the server or publishes them to the App-V client.
|
This piped example command tests packages, then passes the objects on for conversion. You can also apply a filter on packages without errors or only specify a directory that contains an **.sprj** file or pipe them to another cmdlet that adds the filtered package to the server or publishes them to the App-V client.
|
||||||
|
|
||||||
- Batching—The Windows PowerShell command enables batching. More specifically, the cmdlets support taking a string\[\] object for the *-Source* parameter that represents a list of directory paths. This allows you to enter the following cmdlets together:
|
- Batching—The Windows PowerShell command enables batching. More specifically, the cmdlets support taking a string\[\] object for the *-Source* parameter that represents a list of directory paths. This feature allows you to enter the following cmdlets together:
|
||||||
|
|
||||||
```PowerShell
|
```PowerShell
|
||||||
$packages = dir C:\contentStore
|
$packages = dir C:\contentStore
|
||||||
|
@ -51,7 +51,7 @@ Use the following procedure to create a package accelerator.
|
|||||||
|
|
||||||
5. If the application is already installed on the computer running the sequencer, then select **Files installed on local system** to specify the installation file. To use this option, the application must already be installed in the default installation location.
|
5. If the application is already installed on the computer running the sequencer, then select **Files installed on local system** to specify the installation file. To use this option, the application must already be installed in the default installation location.
|
||||||
|
|
||||||
6. On the **Gathering Information** page, review the files that you couldn't find in the location specified by the **Installation Files** page. If the files displayed are not required, select **Remove these files**, then select **Next**. If the files are required, select **Previous** and copy the required files to the directory specified on the **Installation Files** page.
|
6. On the **Gathering Information** page, review the files that you couldn't find in the location specified by the **Installation Files** page. If the files displayed aren't required, select **Remove these files**, then select **Next**. If the files are required, select **Previous** and copy the required files to the directory specified on the **Installation Files** page.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
>You must either remove the unrequired files or select **Previous** and locate the required files to advance to the next page of this wizard.
|
>You must either remove the unrequired files or select **Previous** and locate the required files to advance to the next page of this wizard.
|
||||||
@ -60,7 +60,7 @@ Use the following procedure to create a package accelerator.
|
|||||||
|
|
||||||
8. Confirm that the **Verify Applications** page displays all installation files required to build the package. The package accelerator requires all installation files displayed in the **Applications** pane in order to create the package.
|
8. Confirm that the **Verify Applications** page displays all installation files required to build the package. The package accelerator requires all installation files displayed in the **Applications** pane in order to create the package.
|
||||||
|
|
||||||
If you need to add additional Installer files, select **Add**. To remove unnecessary installation files, select the **Installer file**, then select **Delete**. To edit the properties associated with an installer, select **Edit**. The package accelerator requires the installation files specified in this step to create a new virtual application package. After you have confirmed the information displayed, select **Next**.
|
If you need to add more Installer files, select **Add**. To remove unnecessary installation files, select the **Installer file**, then select **Delete**. To edit the properties associated with an installer, select **Edit**. The package accelerator requires the installation files specified in this step to create a new virtual application package. After you've confirmed the information displayed, select **Next**.
|
||||||
|
|
||||||
9. On the **Select Guidance** page, select **Browse** to specify the file that will provide the package accelerator with application instructions. For example, this file can contain information about how the computer running the Sequencer should be configured, application prerequisite information for target computers, and general notes. You should provide all required information for successful package accelerator application. The file you select must be in rich text (.rtf) or text file (.txt) format. After specifying the file, select **Next**.
|
9. On the **Select Guidance** page, select **Browse** to specify the file that will provide the package accelerator with application instructions. For example, this file can contain information about how the computer running the Sequencer should be configured, application prerequisite information for target computers, and general notes. You should provide all required information for successful package accelerator application. The file you select must be in rich text (.rtf) or text file (.txt) format. After specifying the file, select **Next**.
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ ms.topic: article
|
|||||||
|
|
||||||
[!INCLUDE [Applies to Windows client versions](../includes/applies-to-windows-client-versions.md)]
|
[!INCLUDE [Applies to Windows client versions](../includes/applies-to-windows-client-versions.md)]
|
||||||
|
|
||||||
After you have properly deployed the Microsoft Application Virtualization (App-V) sequencer, you can use it to monitor and record the installation and setup process for an application to be run as a virtualized application.
|
After you've properly deployed the Microsoft Application Virtualization (App-V) sequencer, you can use it to monitor and record the installation and setup process for an application to be run as a virtualized application.
|
||||||
|
|
||||||
For more information about configuring the App-V sequencer, sequencing best practices, and an example of creating and updating a virtual application, see the [Microsoft Application Virtualization 5.0 Sequencing Guide](https://download.microsoft.com/download/F/7/8/F784A197-73BE-48FF-83DA-4102C05A6D44/App-V%205.0%20Sequencing%20Guide.docx).
|
For more information about configuring the App-V sequencer, sequencing best practices, and an example of creating and updating a virtual application, see the [Microsoft Application Virtualization 5.0 Sequencing Guide](https://download.microsoft.com/download/F/7/8/F784A197-73BE-48FF-83DA-4102C05A6D44/App-V%205.0%20Sequencing%20Guide.docx).
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ When you use the sequencer to create a new virtual application, the following li
|
|||||||
|
|
||||||
- **.msi file**. This Windows Installer (.msi) file is created by the sequencer and is used to install the virtual package on target computers.
|
- **.msi file**. This Windows Installer (.msi) file is created by the sequencer and is used to install the virtual package on target computers.
|
||||||
- **Report.xml file**. In this file, the sequencer saves all issues, warnings, and errors that were discovered during sequencing. It displays the information after the package has been created. You can us this report for diagnosing and troubleshooting.
|
- **Report.xml file**. In this file, the sequencer saves all issues, warnings, and errors that were discovered during sequencing. It displays the information after the package has been created. You can us this report for diagnosing and troubleshooting.
|
||||||
- **.appv file**. This is the virtual application file.
|
- **.appv file**. This file is the virtual application file.
|
||||||
- **Deployment configuration file**. The deployment configuration file determines how the virtual application will be deployed to target computers.
|
- **Deployment configuration file**. The deployment configuration file determines how the virtual application will be deployed to target computers.
|
||||||
- **User configuration file**. The user configuration file determines how the virtual application will run on target computers.
|
- **User configuration file**. The user configuration file determines how the virtual application will run on target computers.
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ The **Options** dialog box in the sequencer console contains the following tabs:
|
|||||||
>Package Accelerators created using App-V 4.6 are not supported by App-V.
|
>Package Accelerators created using App-V 4.6 are not supported by App-V.
|
||||||
|
|
||||||
- **Parse Items**. This tab displays the associated file path locations that will be parsed or tokenized into in the virtual environment. Tokens are useful for adding files using the **Package Files** tab in **Advanced Editing**.
|
- **Parse Items**. This tab displays the associated file path locations that will be parsed or tokenized into in the virtual environment. Tokens are useful for adding files using the **Package Files** tab in **Advanced Editing**.
|
||||||
- **Exclusion Items**. Use this tab to specify which folders and directories should not be monitored during sequencing. To add local application data that is saved in the Local App Data folder in the package, click **New** and specify the location and the associated **Mapping Type**. This option is required for some packages.
|
- **Exclusion Items**. Use this tab to specify which folders and directories shouldn't be monitored during sequencing. To add local application data that is saved in the Local App Data folder in the package, click **New** and specify the location and the associated **Mapping Type**. This option is required for some packages.
|
||||||
|
|
||||||
App-V supports applications that include Microsoft Windows Services. If an application includes a Windows service, the service will be included in the sequenced virtual package as long as it's installed while being monitored by the sequencer. If a virtual application creates a Windows service when it initially runs, then after installation, the application must be run while the sequencer is monitoring for the Windows Service to be included in the package. Only services running under the Local System account are supported. Services configured for AutoStart or Delayed AutoStart are started before the first virtual application in a package runs inside the package’s Virtual Environment. Windows Services that are configured to be started on demand by an application are started when the virtual application inside the package starts the Service via API call.
|
App-V supports applications that include Microsoft Windows Services. If an application includes a Windows service, the service will be included in the sequenced virtual package as long as it's installed while being monitored by the sequencer. If a virtual application creates a Windows service when it initially runs, then after installation, the application must be run while the sequencer is monitoring for the Windows Service to be included in the package. Only services running under the Local System account are supported. Services configured for AutoStart or Delayed AutoStart are started before the first virtual application in a package runs inside the package’s Virtual Environment. Windows Services that are configured to be started on demand by an application are started when the virtual application inside the package starts the Service via API call.
|
||||||
|
|
||||||
@ -73,7 +73,7 @@ Shell extensions are automatically embedded in the package during the sequencing
|
|||||||
|
|
||||||
### Requirements for using shell extensions
|
### Requirements for using shell extensions
|
||||||
|
|
||||||
- Packages that contain embedded shell extensions must be published globally. The application requires no additional setup or configuration on the client to enable the shell extension functionality.
|
- Packages that contain embedded shell extensions must be published globally. The application requires no extra setup or configuration on the client to enable the shell extension functionality.
|
||||||
- The “bitness” of the application, Sequencer, and App-V client must match, or the shell extensions won’t work. For example:
|
- The “bitness” of the application, Sequencer, and App-V client must match, or the shell extensions won’t work. For example:
|
||||||
- The version of the application is 64-bit.
|
- The version of the application is 64-bit.
|
||||||
- The Sequencer is running on a 64-bit computer.
|
- The Sequencer is running on a 64-bit computer.
|
||||||
@ -86,7 +86,7 @@ The following table lists the supported shell extensions:
|
|||||||
|Context menu handler|Adds menu items to the context menu. It's called before the context menu is displayed.|
|
|Context menu handler|Adds menu items to the context menu. It's called before the context menu is displayed.|
|
||||||
|Drag-and-drop handler|Controls the action where right-click, drag and drop, and modifies the context menu that appears.|
|
|Drag-and-drop handler|Controls the action where right-click, drag and drop, and modifies the context menu that appears.|
|
||||||
|Drop target handler|Controls the action after a data object is dragged and dropped over a drop target such as a file.|
|
|Drop target handler|Controls the action after a data object is dragged and dropped over a drop target such as a file.|
|
||||||
|Data object handler|Controls the action after a file is copied to the clipboard or dragged and dropped over a drop target. It can provide additional clipboard formats to the drop target.|
|
|Data object handler|Controls the action after a file is copied to the clipboard or dragged and dropped over a drop target. It can provide more clipboard formats to the drop target.|
|
||||||
|Property sheet handler|Replaces or adds pages to the property sheet dialog box of an object.|
|
|Property sheet handler|Replaces or adds pages to the property sheet dialog box of an object.|
|
||||||
|Infotip handler|Allows retrieving flags and infotip information for an item and displaying it inside a pop-up tooltip upon mouse hover.|
|
|Infotip handler|Allows retrieving flags and infotip information for an item and displaying it inside a pop-up tooltip upon mouse hover.|
|
||||||
|Column handler|Allows creating and displaying custom columns in **Windows Explorer Details view**. It can be used to extend sorting and grouping.|
|
|Column handler|Allows creating and displaying custom columns in **Windows Explorer Details view**. It can be used to extend sorting and grouping.|
|
||||||
@ -94,9 +94,9 @@ The following table lists the supported shell extensions:
|
|||||||
|
|
||||||
## Copy on Write (CoW) file extension support
|
## Copy on Write (CoW) file extension support
|
||||||
|
|
||||||
Copy on write (CoW) file extensions allow App-V to dynamically write to specific locations contained in the virtual package while it is being used.
|
Copy on write (CoW) file extensions allow App-V to dynamically write to specific locations contained in the virtual package while it's being used.
|
||||||
|
|
||||||
The following list shows the file types that can exist in a virtual package under the VFS directory, since App-V 5.1, but which cannot be updated on the computer running the App-V client. All other files and directories can be modified.
|
The following list shows the file types that can exist in a virtual package under the VFS directory, since App-V 5.1, but which can't be updated on the computer running the App-V client. All other files and directories can be modified.
|
||||||
|
|
||||||
- .com
|
- .com
|
||||||
- .exe
|
- .exe
|
||||||
@ -105,13 +105,13 @@ The following list shows the file types that can exist in a virtual package unde
|
|||||||
|
|
||||||
## Modifying an existing virtual application package
|
## Modifying an existing virtual application package
|
||||||
|
|
||||||
You can use the sequencer to modify an existing package. The computer on which you do this should match the chip architecture of the computer you used to create the application. For example, if you initially sequenced a package using a computer running a 64-bit operating system, you should modify the package using a computer running a 64-bit operating system.
|
You can use the sequencer to modify an existing package. The computer on which you do this modification should match the chip architecture of the computer you used to create the application. For example, if you initially sequenced a package using a computer running a 64-bit operating system, you should modify the package using a computer running a 64-bit operating system.
|
||||||
|
|
||||||
For more information, see [How to Modify an Existing Virtual Application Package](appv-modify-an-existing-virtual-application-package.md).
|
For more information, see [How to Modify an Existing Virtual Application Package](appv-modify-an-existing-virtual-application-package.md).
|
||||||
|
|
||||||
## Creating a project template
|
## Creating a project template
|
||||||
|
|
||||||
An App-V project template (.appvt) file is a project template that can be used to save commonly applied, customized settings. You can then more easily use these settings for future sequencings. App-V project templates differ from App-V Application Accelerators because App-V Application Accelerators are application-specific, and App-V project templates can be applied to multiple applications. Additionally, you cannot use a project template when you use a Package Accelerator to create a virtual application package. The following general settings are saved with an App-V project template:
|
An App-V project template (.appvt) file is a project template that can be used to save commonly applied, customized settings. You can then more easily use these settings for future sequencings. App-V project templates differ from App-V Application Accelerators because App-V Application Accelerators are application-specific, and App-V project templates can be applied to multiple applications. Additionally, you can't use a project template when you use a Package Accelerator to create a virtual application package. The following general settings are saved with an App-V project template:
|
||||||
|
|
||||||
A template can specify and store multiple settings as follows:
|
A template can specify and store multiple settings as follows:
|
||||||
|
|
||||||
@ -131,11 +131,11 @@ For more information, see [How to Create and Use a Project Template](appv-create
|
|||||||
>[!NOTE]
|
>[!NOTE]
|
||||||
>Package accelerators created using a previous version of App-V must be recreated using App-V.
|
>Package accelerators created using a previous version of App-V must be recreated using App-V.
|
||||||
|
|
||||||
You can use App-V package accelerators to automatically generate a new virtual application packages. After you have successfully created a package accelerator, you can reuse and share the package accelerator.
|
You can use App-V package accelerators to automatically generate a new virtual application package. After you've successfully created a package accelerator, you can reuse and share the package accelerator.
|
||||||
|
|
||||||
In some situations, to create the package accelerator, you might have to install the application locally on the computer that runs the sequencer. In such cases, you should first try to create the package accelerator with the installation media. If multiple missing files are required, you should install the application locally to the computer that runs the sequencer, and then create the package accelerator.
|
In some situations, to create the package accelerator, you might have to install the application locally on the computer that runs the sequencer. In such cases, you should first try to create the package accelerator with the installation media. If multiple missing files are required, you should install the application locally to the computer that runs the sequencer, and then create the package accelerator.
|
||||||
|
|
||||||
After you have successfully created a Package Accelerator, you can reuse and share the Package Accelerator. Creating App-V Package Accelerators is an advanced task. Package Accelerators can contain password and user-specific information. Therefore you must save Package Accelerators and the associated installation media in a secure location, and you should digitally sign the Package Accelerator after you create it so that the publisher can be verified when the App-V Package Accelerator is applied.
|
After you've successfully created a Package Accelerator, you can reuse and share the Package Accelerator. Creating App-V Package Accelerators is an advanced task. Package Accelerators can contain password and user-specific information. Therefore you must save Package Accelerators and the associated installation media in a secure location, and you should digitally sign the Package Accelerator after you create it so that the publisher can be verified when the App-V Package Accelerator is applied.
|
||||||
|
|
||||||
For more information, see the following articles:
|
For more information, see the following articles:
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ Complete the following steps to create an Office 2013 package for App-V or later
|
|||||||
|
|
||||||
### Review prerequisites for using the Office Deployment Tool
|
### Review prerequisites for using the Office Deployment Tool
|
||||||
|
|
||||||
Before you start, make sure that the computer on which you are installing the Office Deployment Tool has the following:
|
Before you start, ensure that the computer on which you're installing the Office Deployment Tool has the following prerequisites fulfilled:
|
||||||
|
|
||||||
|Prerequisite|Description|
|
|Prerequisite|Description|
|
||||||
|---|---|
|
|---|---|
|
||||||
@ -95,7 +95,7 @@ The XML file included in the Office Deployment Tool specifies the product detail
|
|||||||
|
|
||||||
1. Open the sample XML file in Notepad or your favorite text editor.
|
1. Open the sample XML file in Notepad or your favorite text editor.
|
||||||
|
|
||||||
2. With the sample configuration.xml file open and ready for editing, you can specify products, languages, and the path to which you save the Office 2013 applications. The following is a basic example of the configuration.xml file:
|
2. With the sample configuration.xml file open and ready for editing, you can specify products, languages, and the path to which you save the Office 2013 applications. The following example denotes a configuration.xml file:
|
||||||
|
|
||||||
```XML
|
```XML
|
||||||
<Configuration>
|
<Configuration>
|
||||||
@ -113,30 +113,30 @@ The XML file included in the Office Deployment Tool specifies the product detail
|
|||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
>The configuration XML is a sample XML file. This file includes lines that are commented out. You can “uncomment” these lines to customize additional settings with the file.
|
>The configuration XML is a sample XML file. This file includes lines that are commented out. You can “uncomment” these lines to customize additional settings with the file.
|
||||||
|
|
||||||
The previous example of an XML configuration file specifies that Office 2013 ProPlus 32-bit edition, including Visio ProPlus, will be downloaded in English to the \\\\server\\Office 2013, which is the location where Office applications will be saved to. Note that the Product ID of the applications will not affect the final licensing of Office. Office 2013 App-V packages with various licensing can be created from the same applications by specifying licensing in a later stage. For more information, see [Customizable attributes and elements of the XML file](#customizable-attributes-and-elements-of-the-xml-file), later in this topic.
|
The previous example of an XML configuration file specifies that Office 2013 ProPlus 32-bit edition, including Visio ProPlus, will be downloaded in English to the \\\\server\\Office 2013, which is the location where Office applications will be saved to. The Product ID of the applications won't affect the final licensing of Office. Office 2013 App-V packages with various licensing can be created from the same applications by specifying licensing in a later stage. For more information, see [Customizable attributes and elements of the XML file](#customizable-attributes-and-elements-of-the-xml-file), later in this topic.
|
||||||
|
|
||||||
After editing the configuration.xml file to specify the desired product, languages, and also the location which the Office 2013 applications will be saved onto, you can save the configuration file, for example, as Customconfig.xml.
|
After editing the configuration.xml file to specify the desired product, languages, and also the location that the Office 2013 applications will be saved onto, you can save the configuration file, for example, as Customconfig.xml.
|
||||||
2. **Download the applications into the specified location:** Use an elevated command prompt and a 64-bit operating system to download the Office 2013 applications that will later be converted into an App-V package. The following is an example command:
|
2. **Download the applications into the specified location:** Use an elevated command prompt and a 64-bit operating system to download the Office 2013 applications that will later be converted into an App-V package. An example command is:
|
||||||
|
|
||||||
```PowerShell
|
```PowerShell
|
||||||
\\server\Office2013\setup.exe /download \\server\Office2013\Customconfig.xml
|
\\server\Office2013\setup.exe /download \\server\Office2013\Customconfig.xml
|
||||||
```
|
```
|
||||||
|
|
||||||
The following is a table that describes each element of the command:
|
The following table describes each element of the command:
|
||||||
|
|
||||||
|Element|Description|
|
|Element|Description|
|
||||||
|---|---|
|
|---|---|
|
||||||
|```\\server\Office2013```|This is the network share location that contains the Office Deployment Tool and the custom Configuration.xml file, **Customconfig.xml**.|
|
|```\\server\Office2013```|This network share location is the one that contains the Office Deployment Tool and the custom Configuration.xml file, **Customconfig.xml**.|
|
||||||
|```setup.exe```|This is the Office Deployment Tool.|
|
|```setup.exe```|This element is the Office Deployment Tool.|
|
||||||
|```/download```|This downloads the Office 2013 applications that you specify in the **Customconfig.xml** file. These bits can be later converted in an Office 2013 App-V package with Volume Licensing.|
|
|```/download```|This element downloads the Office 2013 applications that you specify in the **Customconfig.xml** file. These bits can be later converted in an Office 2013 App-V package with Volume Licensing.|
|
||||||
|```\\server\Office2013\Customconfig.xml```|This passes the XML configuration file required to complete the download process. In this example, the file used is **Customconfig.xml**. After using the download command, Office applications should be found in the location specified in the XML configuration file, which in this example is ```\\Server\Office2013```.|
|
|```\\server\Office2013\Customconfig.xml```|This element passes the XML configuration file required to complete the download process. In this example, the file used is **Customconfig.xml**. After the download command is used, Office applications should be found in the location specified in the XML configuration file, which in this example is ```\\Server\Office2013```.|
|
||||||
|
|
||||||
#### Customizable attributes and elements of the XML file
|
#### Customizable attributes and elements of the XML file
|
||||||
|
|
||||||
|Input and description|Example|
|
|Input and description|Example|
|
||||||
|---|---|
|
|---|---|
|
||||||
|Add element:<br>Specifies the products and languages to include in the package.|N/A|
|
|Add element:<br>Specifies the products and languages to include in the package.|N/A|
|
||||||
|OfficeClientEdition (attribute of Add element):<br>Specifies the edition of Office 2013 product to use: 32-bit or 64-bit. The operation fails if **OfficeClientEdition** is not set to a valid value.|```OfficeClientEdition="32"```<br>```OfficeClientEdition="64"```|
|
|OfficeClientEdition (attribute of Add element):<br>Specifies the edition of Office 2013 product to use: 32-bit or 64-bit. The operation fails if **OfficeClientEdition** isn't set to a valid value.|```OfficeClientEdition="32"```<br>```OfficeClientEdition="64"```|
|
||||||
|Product element:<br>Specifies the application. Project 2013 and Visio 2013 must be specified here as an added product to be included in the applications.|```Product ID="O365ProPlusRetail"```<br>```Product ID="VisioProRetail"```<br>```Product ID="ProjectProRetail"```<br>```Product ID="ProPlusVolume"```<br>```Product ID="ProjectProVolume"```|
|
|Product element:<br>Specifies the application. Project 2013 and Visio 2013 must be specified here as an added product to be included in the applications.|```Product ID="O365ProPlusRetail"```<br>```Product ID="VisioProRetail"```<br>```Product ID="ProjectProRetail"```<br>```Product ID="ProPlusVolume"```<br>```Product ID="ProjectProVolume"```|
|
||||||
|Language element:<br>Specifies the language supported in the applications.|```Language ID="en-us"```|
|
|Language element:<br>Specifies the language supported in the applications.|```Language ID="en-us"```|
|
||||||
|Version (attribute of Add element):<br>Optional. Specifies a build to use for the package. Defaults to latest advertised build (as defined in v32.CAB at the Office source).|```15.1.2.3```|
|
|Version (attribute of Add element):<br>Optional. Specifies a build to use for the package. Defaults to latest advertised build (as defined in v32.CAB at the Office source).|```15.1.2.3```|
|
||||||
@ -220,11 +220,11 @@ After you download the Office 2013 applications through the Office Deployment To
|
|||||||
|
|
||||||
|Element|Description|
|
|Element|Description|
|
||||||
|---|---|
|
|---|---|
|
||||||
|```\\server\Office2013```|This is the network share location that contains the Office Deployment Tool and the custom Configuration.xml file, which in this example is named **Customconfig.xml**.|
|
|```\\server\Office2013```|This network share location is the one that contains the Office Deployment Tool and the custom Configuration.xml file, which in this example is named **Customconfig.xml**.|
|
||||||
|```setup.exe```|This is the Office Deployment Tool.|
|
|```setup.exe```|This element is the Office Deployment Tool.|
|
||||||
|```/packager```|This creates the Office 2013 App-V package with Volume Licensing as specified in the **Customconfig.xml** file.|
|
|```/packager```|This element creates the Office 2013 App-V package with Volume Licensing as specified in the **Customconfig.xml** file.|
|
||||||
|```\\server\Office2013\Customconfig.xml```|This passes the configuration XML file, which in this example is named "Customconfig," that has been prepared for the packaging stage.|
|
|```\\server\Office2013\Customconfig.xml```|This element passes the configuration XML file, which in this example is named "Customconfig," that has been prepared for the packaging stage.|
|
||||||
|```\\server\share\Office2013AppV```|This specifies the location of the newly created Office App-V package.|
|
|```\\server\share\Office2013AppV```|This element specifies the location of the newly created Office App-V package.|
|
||||||
|
|
||||||
After you run the **/packager** command, the following folders will appear in the directory where you specified the package should be saved:
|
After you run the **/packager** command, the following folders will appear in the directory where you specified the package should be saved:
|
||||||
|
|
||||||
@ -303,7 +303,7 @@ Use the steps in this section to enable Office plug-ins with your Office package
|
|||||||
|
|
||||||
### Disabling Office 2013 applications
|
### Disabling Office 2013 applications
|
||||||
|
|
||||||
You may want to disable specific applications in your Office App-V package. For instance, you can disable Access, but leave all other Office application main available. When you disable an application, the end user will no longer see the shortcut for that application. You do not have to re-sequence the application. When you change the Deployment Configuration File after the Office 2013 App-V package has been published, you will save the changes, add the Office 2013 App-V package, then republish it with the new Deployment Configuration File to apply the new settings to Office 2013 App-V Package applications.
|
You may want to disable specific applications in your Office App-V package. For instance, you can disable Access, but leave all other Office application main available. When you disable an application, the end user will no longer see the shortcut for that application. You don't have to re-sequence the application. When you change the Deployment Configuration File after the Office 2013 App-V package has been published, you'll save the changes, add the Office 2013 App-V package, then republish it with the new Deployment Configuration File to apply the new settings to Office 2013 App-V Package applications.
|
||||||
|
|
||||||
>[!NOTE]
|
>[!NOTE]
|
||||||
>To exclude specific Office applications (for example, Access and InfoPath) when you create the App-V package with the Office Deployment Tool, use the **ExcludeApp** setting. For more information, see [Reference for Click-to-Run configuration.xml file](/DeployOffice/configuration-options-for-the-office-2016-deployment-tool#excludeapp-element).
|
>To exclude specific Office applications (for example, Access and InfoPath) when you create the App-V package with the Office Deployment Tool, use the **ExcludeApp** setting. For more information, see [Reference for Click-to-Run configuration.xml file](/DeployOffice/configuration-options-for-the-office-2016-deployment-tool#excludeapp-element).
|
||||||
@ -371,7 +371,7 @@ You may want to disable shortcuts for certain Office applications instead of unp
|
|||||||
3. Save the Deployment Configuration File.
|
3. Save the Deployment Configuration File.
|
||||||
4. Republish Office 2013 App-V Package with new Deployment Configuration File.
|
4. Republish Office 2013 App-V Package with new Deployment Configuration File.
|
||||||
|
|
||||||
Many additional settings can be changed through modifying the Deployment Configuration for App-V packages, for example, file type associations, Virtual File System, and more. For additional information on how to use Deployment Configuration Files to change App-V package settings, refer to the additional resources section at the end of this document.
|
Many more settings can be changed through modifying the Deployment Configuration for App-V packages, for example, file type associations, Virtual File System, and more. For additional information on how to use Deployment Configuration Files to change App-V package settings, refer to the additional resources section at the end of this document.
|
||||||
|
|
||||||
### Managing Office 2013 package upgrades
|
### Managing Office 2013 package upgrades
|
||||||
|
|
||||||
|
@ -55,11 +55,11 @@ The following table describes the recommended methods for excluding specific Off
|
|||||||
Complete the following steps to create an Office 2016 package for App-V.
|
Complete the following steps to create an Office 2016 package for App-V.
|
||||||
|
|
||||||
>[!IMPORTANT]
|
>[!IMPORTANT]
|
||||||
>In App-V 5.0 and later, you must use the Office Deployment Tool to create a package. You cannot use the Sequencer to create packages.
|
>In App-V 5.0 and later, you must use the Office Deployment Tool to create a package. You can't use the Sequencer to create packages.
|
||||||
|
|
||||||
### Review prerequisites for using the Office Deployment Tool
|
### Review prerequisites for using the Office Deployment Tool
|
||||||
|
|
||||||
The computer on which you are installing the Office Deployment Tool must have the following:
|
The computer on which you're installing the Office Deployment Tool must have the following:
|
||||||
|
|
||||||
| Prerequisite | Description |
|
| Prerequisite | Description |
|
||||||
|----------------------|--------------------|
|
|----------------------|--------------------|
|
||||||
@ -77,7 +77,7 @@ Create Office 2016 App-V packages on 64-bit Windows computers. Once created, the
|
|||||||
|
|
||||||
### Download the Office Deployment Tool
|
### Download the Office Deployment Tool
|
||||||
|
|
||||||
Office 2016 App-V packages are created using the Office Deployment Tool, which generates an Office 2016 App-V Package. The package cannot be created or modified through the App-V sequencer. To begin package creation, follow these steps:
|
Office 2016 App-V packages are created using the Office Deployment Tool, which generates an Office 2016 App-V Package. The package can't be created or modified through the App-V sequencer. To begin package creation, follow these steps:
|
||||||
|
|
||||||
1. Download the [Office 2016 Deployment Tool for Click-to-Run](https://www.microsoft.com/download/details.aspx?id=49117).
|
1. Download the [Office 2016 Deployment Tool for Click-to-Run](https://www.microsoft.com/download/details.aspx?id=49117).
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ The XML file included in the Office Deployment Tool specifies the product detail
|
|||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
>The configuration XML is a sample XML file. The file includes lines that are commented out. You can “uncomment” these lines to customize additional settings with the file. To uncomment these lines, remove the ```<! - -``` from the beginning of the line, and the ```-- >``` from the end of the line.
|
>The configuration XML is a sample XML file. The file includes lines that are commented out. You can “uncomment” these lines to customize additional settings with the file. To uncomment these lines, remove the ```<! - -``` from the beginning of the line, and the ```-- >``` from the end of the line.
|
||||||
|
|
||||||
The previous example of an XML configuration file specifies that Office 2016 ProPlus 32-bit edition, including Visio ProPlus, will be downloaded in English to the \\\\server\\Office2016 location where Office applications will be saved. Note that the Product ID of the applications will not affect Office's final licensing. You can create Office 2016 App-V packages with various licensing from the same applications by specifying licensing in a later stage. The following table summarizes the XML file's customizable attributes and elements:
|
The previous example of an XML configuration file specifies that Office 2016 ProPlus 32-bit edition, including Visio ProPlus, will be downloaded in English to the \\\\server\\Office2016 location where Office applications will be saved. The Product ID of the applications won't affect Office's final licensing. You can create Office 2016 App-V packages with various licensing from the same applications by specifying licensing in a later stage. The following table summarizes the XML file's customizable attributes and elements:
|
||||||
|
|
||||||
| Input | Description | Example |
|
| Input | Description | Example |
|
||||||
|--------------|----------------------------|----------------|
|
|--------------|----------------------------|----------------|
|
||||||
@ -127,7 +127,7 @@ The XML file included in the Office Deployment Tool specifies the product detail
|
|||||||
| Channel (part of **Add** element) | Optional. Defines which channel will be used to update Office after installation.<br>The default is **Deferred** for Microsoft 365 Apps for enterprise and **Current** for Visio Pro for Office 365 and Project Desktop Client. <br>For more information about update channels, see [Overview of update channels for Microsoft 365 Apps for enterprise](/DeployOffice/overview-of-update-channels-for-office-365-proplus). | `Channel="Current"`<br>`Channel="Deferred"`<br>`Channel="FirstReleaseDeferred"`<br>`Channel="FirstReleaseCurrent"` |
|
| Channel (part of **Add** element) | Optional. Defines which channel will be used to update Office after installation.<br>The default is **Deferred** for Microsoft 365 Apps for enterprise and **Current** for Visio Pro for Office 365 and Project Desktop Client. <br>For more information about update channels, see [Overview of update channels for Microsoft 365 Apps for enterprise](/DeployOffice/overview-of-update-channels-for-office-365-proplus). | `Channel="Current"`<br>`Channel="Deferred"`<br>`Channel="FirstReleaseDeferred"`<br>`Channel="FirstReleaseCurrent"` |
|
||||||
|
|
||||||
After editing the **configuration.xml** file to specify the desired product, languages, and the location where the Office 2016 applications will be saved to, you can save the configuration file under a name of your choice, such as "Customconfig.xml."
|
After editing the **configuration.xml** file to specify the desired product, languages, and the location where the Office 2016 applications will be saved to, you can save the configuration file under a name of your choice, such as "Customconfig.xml."
|
||||||
2. **Download the applications into the specified location:** Use an elevated command prompt and a 64-bit operating system to download the Office 2016 applications that will later be converted into an App-V package. The following is an example command:
|
2. **Download the applications into the specified location:** Use an elevated command prompt and a 64-bit operating system to download the Office 2016 applications that will later be converted into an App-V package. An example command is:
|
||||||
|
|
||||||
`\\server\Office2016\setup.exe /download \\server\Office2016\Customconfig.xml`
|
`\\server\Office2016\setup.exe /download \\server\Office2016\Customconfig.xml`
|
||||||
|
|
||||||
@ -135,10 +135,10 @@ After editing the **configuration.xml** file to specify the desired product, lan
|
|||||||
|
|
||||||
| Element | Description |
|
| Element | Description |
|
||||||
|-------------------------------|--------------------------------------|
|
|-------------------------------|--------------------------------------|
|
||||||
| ```\\server\Office2016``` | This is the network share location that contains the Office Deployment Tool and the custom **Configuration.xml** file, which in this example is **Customconfig.xml**. |
|
| ```\\server\Office2016``` | This network share location is the one that contains the Office Deployment Tool and the custom **Configuration.xml** file, which in this example is **Customconfig.xml**. |
|
||||||
| ``Setup.exe`` | This is the Office Deployment Tool. |
|
| ``Setup.exe`` | This element is the Office Deployment Tool. |
|
||||||
| ```/download``` | Downloads the Office 2016 applications that you specify in the **Customconfig.xml** file. |
|
| ```/download``` | Downloads the Office 2016 applications that you specify in the **Customconfig.xml** file. |
|
||||||
| ```\\server\Office2016\Customconfig.xml```| This passes the XML configuration file required to complete the download process. In this example, the file used is **Customconfig.xml**. After using the download command, Office applications should be found in the location specified in the configuration file, which in this example is ```\\Server\Office2016```. |
|
| ```\\server\Office2016\Customconfig.xml```| This element passes the XML configuration file required to complete the download process. In this example, the file used is **Customconfig.xml**. After the download command is used, Office applications should be found in the location specified in the configuration file, which in this example is ```\\Server\Office2016```. |
|
||||||
|
|
||||||
### Convert the Office applications into an App-V package
|
### Convert the Office applications into an App-V package
|
||||||
|
|
||||||
@ -194,7 +194,7 @@ After you download the Office 2016 applications through the Office Deployment To
|
|||||||
>Even if you use unique package IDs, you can still deploy only one App-V package to a single device.
|
>Even if you use unique package IDs, you can still deploy only one App-V package to a single device.
|
||||||
2. Use the /packager command to convert the Office applications to an Office 2016 App-V package.
|
2. Use the /packager command to convert the Office applications to an Office 2016 App-V package.
|
||||||
|
|
||||||
The following is an example packager command:
|
An example packager command is:
|
||||||
|
|
||||||
```syntax
|
```syntax
|
||||||
\\server\Office2016\setup.exe /packager \\server\Office2016\Customconfig.xml \\server\share\Office2016AppV
|
\\server\Office2016\setup.exe /packager \\server\Office2016\Customconfig.xml \\server\share\Office2016AppV
|
||||||
@ -204,11 +204,11 @@ After you download the Office 2016 applications through the Office Deployment To
|
|||||||
|
|
||||||
| Element | Description |
|
| Element | Description |
|
||||||
|-------------------------------|--------------------------------------|
|
|-------------------------------|--------------------------------------|
|
||||||
|```\\server\Office2016```|This is the network share location that contains the Office Deployment Tool and the custom Configuration.xml file, which in this example is Customconfig.xml.|
|
|```\\server\Office2016```|This network share location is the one that contains the Office Deployment Tool and the custom Configuration.xml file, which in this example is Customconfig.xml.|
|
||||||
|```Setup.exe```|This is the Office Deployment Tool.|
|
|```Setup.exe```|This element is the Office Deployment Tool.|
|
||||||
|```/packager```|This command creates the Office 2016 App-V package with the license type specified in the Customconfig.xml file.|
|
|```/packager```|This command creates the Office 2016 App-V package with the license type specified in the Customconfig.xml file.|
|
||||||
|```\\server\Office2016\Customconfig.xml```|This passes the configuration XML file that has been prepared for the packaging stage. In this example, the file is Customconfig.xml.|
|
|```\\server\Office2016\Customconfig.xml```|This element passes the configuration XML file that has been prepared for the packaging stage. In this example, the file is Customconfig.xml.|
|
||||||
|```\\server\share\Office2016AppV```|This specifies the location of the newly created Office App-V package.|
|
|```\\server\share\Office2016AppV```|This element specifies the location of the newly created Office App-V package.|
|
||||||
|
|
||||||
After you run the **/packager** command, the following folders appear up in the directory where you specified the package should be saved:
|
After you run the **/packager** command, the following folders appear up in the directory where you specified the package should be saved:
|
||||||
|
|
||||||
@ -249,7 +249,7 @@ Run the following command to publish an Office package globally:
|
|||||||
Add-AppvClientPackage <Path_to_AppV_Package > | Publish-AppvClientPackage -global
|
Add-AppvClientPackage <Path_to_AppV_Package > | Publish-AppvClientPackage -global
|
||||||
```
|
```
|
||||||
|
|
||||||
* You can add permissions to a group of computers instead of just a user group through the Web Management Console on the App-V Server. This lets packages be published globally to the computers in the corresponding group.
|
* You can add permissions to a group of computers instead of just a user group through the Web Management Console on the App-V Server. This feature lets packages be published globally to the computers in the corresponding group.
|
||||||
|
|
||||||
## Customizing and managing Office App-V packages
|
## Customizing and managing Office App-V packages
|
||||||
|
|
||||||
@ -286,7 +286,7 @@ The following steps will tell you how to enable Office plug-ins with your Office
|
|||||||
|
|
||||||
### Disabling Office 2016 applications
|
### Disabling Office 2016 applications
|
||||||
|
|
||||||
You can also disable specific applications in your Office App-V package. For example, if you don't want to use Access, you can disable Access while leaving all other Office applications available. When you disable an application, the user will no longer see its shortcut icon. You don't need to re-sequence the application to do this. When you change the Deployment Configuration File after the Office 2016 App-V package has been published, just save the changes and add the Office 2016 App-V package, then republish it with the new Deployment Configuration File to apply the new settings to Office 2016 App-V Package applications.
|
You can also disable specific applications in your Office App-V package. For example, if you don't want to use Access, you can disable Access while leaving all other Office applications available. When you disable an application, the user will no longer see its shortcut icon. You don't need to re-sequence the application to disable it. When you change the Deployment Configuration File after the Office 2016 App-V package has been published, just save the changes and add the Office 2016 App-V package, then republish it with the new Deployment Configuration File to apply the new settings to Office 2016 App-V Package applications.
|
||||||
|
|
||||||
>[!NOTE]
|
>[!NOTE]
|
||||||
>To exclude specific Office applications when you create the App-V package with the Office Deployment Tool, use the **ExcludeApp** setting.
|
>To exclude specific Office applications when you create the App-V package with the Office Deployment Tool, use the **ExcludeApp** setting.
|
||||||
@ -349,7 +349,7 @@ You may want to disable shortcuts for certain Office applications instead of unp
|
|||||||
3. Save the Deployment Configuration File.
|
3. Save the Deployment Configuration File.
|
||||||
4. Republish the Office 2016 App-V Package with the new Deployment Configuration File.
|
4. Republish the Office 2016 App-V Package with the new Deployment Configuration File.
|
||||||
|
|
||||||
Many additional settings can be changed through modifying the Deployment Configuration for App-V packages, for example, file type associations, Virtual File System, and more. For additional information on how to use Deployment Configuration Files to change App-V package settings, refer to the additional resources section at the end of this document.
|
Many more settings can be changed through modifying the Deployment Configuration for App-V packages, for example, file type associations, Virtual File System, and more. For additional information on how to use Deployment Configuration Files to change App-V package settings, refer to the additional resources section at the end of this document.
|
||||||
|
|
||||||
### Managing Office 2016 package upgrades
|
### Managing Office 2016 package upgrades
|
||||||
|
|
||||||
@ -372,7 +372,7 @@ The following table describes the requirements and options for deploying Visio 2
|
|||||||
|
|
||||||
| Task | Details |
|
| Task | Details |
|
||||||
|---------------------|---------------|
|
|---------------------|---------------|
|
||||||
| How do I package and publish Visio 2016 and Project 2016 with Office? | You must include Visio 2016 and Project 2016 in the same package with Office.<br>If you are not deploying Office, you can create a package that contains Visio and/or Project, as long as you follow the packaging, publishing, and deployment requirements described in this topic. |
|
| How do I package and publish Visio 2016 and Project 2016 with Office? | You must include Visio 2016 and Project 2016 in the same package with Office.<br>If you're not deploying Office, you can create a package that contains Visio and/or Project, as long as you follow the packaging, publishing, and deployment requirements described in this topic. |
|
||||||
| How can I deploy Visio 2016 and Project 2016 to specific users? | Use one of the following methods:<br>**To create two different packages and deploy each one to a different group of users**:<br>Create and deploy the following packages:<br>- A package that contains only Office—deploy to computers whose users need only Office.<br>- A package that contains Office, Visio, and Project—deploy to computers whose users need all three applications.<br><br>**To create only one package for the whole organization, or to create a package intended for users who share computers**:<br>1. Create a package that contains Office, Visio, and Project.<br>2. Deploy the package to all users.<br>3. Use [AppLocker](/windows/security/threat-protection/applocker/applocker-overview) to prevent specific users from using Visio and Project. |
|
| How can I deploy Visio 2016 and Project 2016 to specific users? | Use one of the following methods:<br>**To create two different packages and deploy each one to a different group of users**:<br>Create and deploy the following packages:<br>- A package that contains only Office—deploy to computers whose users need only Office.<br>- A package that contains Office, Visio, and Project—deploy to computers whose users need all three applications.<br><br>**To create only one package for the whole organization, or to create a package intended for users who share computers**:<br>1. Create a package that contains Office, Visio, and Project.<br>2. Deploy the package to all users.<br>3. Use [AppLocker](/windows/security/threat-protection/applocker/applocker-overview) to prevent specific users from using Visio and Project. |
|
||||||
|
|
||||||
## Related topics
|
## Related topics
|
||||||
|
Loading…
x
Reference in New Issue
Block a user