The Publishing Tab
When you launch the tool, it uses PowerShell and other system interfaces to analyze the configured package store and the App-V client as well.
The tool opens to the Publishing Tab, which is usually where you want to start. This display shows the package store and which applications have already been added or published and if they are currently in use. From here, the basic operations for adding and removing the package to/from the App-V client may be performed.
Operations on packages may be performed on this tab by selecting the package that you are interested in, and either:
- use the buttons at the bottom of the page.
- right click on the package for a menu.
The tool will only provide the options that are appropriate for that package at that time. For example, in the image above that package has not yet been added to the client, so all of the remaining buttons are disabled, and right click menus not present.
Top Panel: Available Package List
The table in the top panel shows each package discovered in the package store, sorted by name field by default. The fields in this table are:
- Name: The name field represents the internal name of the App-V package, no matter what the App-V file is called.
- Version: The Version string is also shown in this table. This is the internal version string generated by the sequencer.
- Add/Pub?: This field contains three codes,"A", and/or "U" and "G" that, when present, indicates that the package has been added and/or published to the current user and/or globally.
- Pend?: This field contains "U" and "G" codes that, when present, that the package has a pending operation that is held in queue by the client until a time after the package is no longer in use. Note, that after the package is no longer in use, a publishing/unpublishing/add/remove operation might be required to trigger the client to check the queue.
- InUse?: Contains value of either "True" or "False" depending on if the package is in use by any user on the system. Some operations may not be performed when a package is in use, or will be delay-queued for completion by the Client until the package is no longer in use.
Right-clicking on a package on the list produces a menu of the appropriate enabled buttons at the bottom of the display. Selecting an item is done to fill the detail display panel, and associate the buttons on the bottom of the tab to act on that package. Only one package may be selected at a time.
Bottom Panel: Detail Display
The bottom panel is a tree display of the internal AppXManifest file and all dynamic configuration files that were found in the same folder as the App-V file on the Package Server Share. You can click on a triangle to the left of an item to expand the display of its details. Fields in this display are available to copy into the clipboard for pasting in other tools and documents. The primary use of the detail display is to investigate the manifest file. The entire AppXManifest file is not shown in the display. The tool parses this file and displays the most relevant content.
You may also right click on any DeploymentConfig or UserConfig file for the package for a popup menu. You may view the config file in a browser, or if the ACE (Application Configuration Editor) tool is also installed you may edit the file from here.
NOTE ON GUID COPYING: "How can I copy the package ID and package version ID GUIDs?" is a frequent question I receive about the tool. In the bottom detail panel you can not only view the manifest, but you can also copy text from it. The trick is to left-click and drag the mouse to select the text. Then you may either Ctrl-C or right-click copy to copy to the clipboard. You can also copy from the Analyzer display where it is normal copy/paste..
Bottom Panel: Action Buttons
The bottom of the display has a number of action buttons. Some may be disabled as they are not allowed for the package selected in the top panel.
- Refresh: This button is always available and is not associated with a package. It causes the tool to re-read the Package store, Client store, Client Configuration, and standard Client Event logs.
- Analyze: This button will display a popup window to analyze the package, revealing internal package statistics and exposing all of the extension points, package settings, and additional analyzed information about the package. Hover mouse over items to expose additional details. Link to Analyzer Description Page. Shown below is the summary screen.
The menu on the left side of the analyzer allows you to see more detail of the items summarized. Yellow/Red highlighting indicates potential package issues. Hover over the highlighted item for a tooltip with additional information, or click on the left hand side to see extension type details. For example, here is the detail on Browser Plug-Ins detail for this package:
It shows that there might be a minor issue with the package if it is published to the user rather than machine.
- Add Pkg: This button will add the package to client, without using any DynamicConfiguration file.
- Add W/Cfg: This button will add the package to the client. If only one file is present in the folder with the source App-V package matching the string "*DeploymentConfig*.xml", it will be automatically used. If more than one file is found that matches, you will be prompted with a list of appropriate files and asked to choose which one to use. The DeploymentConfig file overrides settings in the internal AppXManifest file for all users that get the package on this machine.
- Remove: This button will remove the package from the client. If the package is published, it will first unpublish for you.
- Publish Globally: Publishes the package using the -Global option. This is the option used by either the App-V Management Server or SCCM when the package is assigned to a group containing the machine account identity.
- Pub2Me NoCfg, Publish To Me, Pub2Me WithCfg: Publishes the package without-Global option. One of these options is used by either the App-V Management Server or SCCM when the package is assigned to a group containing the user account identity.
- "Publish To Me" publishes without using any UserConfig.xml file.
- "Pub2Me W/Cfg" publishes using a UserConfig.xml file. If only one file is present in the folder with the source App-V package matching the string "*UserConfig*.xml", it will be automatically used. If more than one file is found that matches, you will be prompted with a list of appropriate files and asked to choose which one to use. A UserConfig file overrides settings in any DeploymentConfig file, or the internal AppXManifest, but only for the current user.
- "Pub2Me NoCfg" is an option supported by the App-V Client, but is not used when packages are deployed using the App-V Management Server or SCCM. In essence, this tells the client to ignore the settings from the DeploymentConfig file used at package add, but only for this user. It restores the original settings from the internal AppXManifest file for this user only.
- Unpub: Remove a prior publishing operation. It will select the correct mode to unpublish based on current publishing information. If the package is currently published both globally and to the user, it will unpublish the to the user. Click the button again to then unpublish globally.
- Mount: This asks the client to load 100% of the package into the local client cache.
- CIPolicy: Create a Code Integrity Policy file. Generates a Code Integrity Policy XML file for the files inside the cached package. The file will be placed (along with an error log file from the New-CIPolicy cmdlet) in the folder containing the source package. Once the file exists, a right-click menu for the package is added to view the XML file. This file would be suitable for merging into the companies "gold image" policy file.
- AV Scan: This button causes an AV Scan of the package. See About AV Scan for more information.
- Repair: Brings up a dialog to select repair operations. See below.
Selecting the repair button will bring up a separate dialog for selection and customization of the repair operations.
Repair consists of two parts:
- Repair of the package integrations (extensions). It can repair the changes made while publishing for the extension points, including shortcuts, file associations, protocol handlers, and so on. It also includes re-deploying the vc++ and msxml runtimes that are in the package. It does not perform an unpublish/publish operation, so any scripts associated with those operations are not run.
- Removal of user "Application Related Data" (ARD). ARD is file and registry data that changed during use of the virtual application that is redirected to user and package (or connection group) specific locations.
The repair operation can be tuned to perform repair on both parts, or either independently.
A repair operation may also be performed for the current user or all users on the machine (-Global). This selection appears to apply to the repair of extensions only, as only the ARD of the currently logged in user is available for removal.
And finally, the repair may be performed on the package itself, or on a connection group. Although the existence of a connection group does not affect extension points, it does affect where the ARD is redirected to.
This dialog allows multiple repair operations in a single request, but will attempt to determine the which selection is appropriate to remove the current effective ARD data.
You may select multiple groups and/or the package, and to repair both to the user and global (only the appropriate settings will be used). This typically will result in multiple repair operations to be performed, but in a test environment you are likely to be trying to clear everything out. Of course, nothing is as successful as restoring the VM to a snapshot, so don't depend on this action too much when troubleshooting.
A repair is not possible if the package or group is in use.