Josh Spencer

Profiling Applications with VMware User Environment Manager, Part 3: Built-In and Custom Exclusions

Co-authored by Pim van de Vis, Product Engineer, User Environment Manager, Research & Development, VMware

In Part 1 of this blog series, you were introduced to the VMware User Environment Manager Application Profiler. In Part 2, VLC Media Player was profiled, predefined settings were applied, and you were introduced to a few Application Profiler best practices and troubleshooting techniques. In Part 3 we use Google Chrome to demonstrate Application Profiler exclusions, including when, why, and how to use them.

Introduction to Exclusions with Application Profiler

Windows applications tend to write registry and file system data in a variety of locations. A portion of the data is relevant to persisting the user experience from session to session, and that of course is what we are interested in when profiling an application to provide personalization. Most applications also create files we may not want to persist, such as temp, log, and crash dump files. Depending on the application and how it is used, these files may quickly grow in size, negatively impacting the user experience.

The VMware User Environment Manager Application Profiler includes a number of built-in exclusions for both the registry and the file system. In most cases these defaults suffice, and applications profile quite easily. There are, however, applications such as Chrome that write user-specific configuration data to locations that are excluded by default. In this blog post you will see which locations are excluded by default, how to make exceptions when needed, and how to create your own exclusions to keep user profile archives small.

It is worth mentioning that you can download a custom Flex configuration template already optimized for Chrome from the Community Forum, along with a variety of other templates. The rest of this blog post is aimed at showing the logic and process to create a configuration file for Chrome.

Environment

Installing Application Profiler and performing the initial profiling process is outside the scope of this blog post, and is well-documented in the VMware User Environment Manager Application Profiler Administration Guide. This blog post focuses on the advanced scenario of troubleshooting and customizing a profiled application using exclusions.

The following describes the configuration used to profile Chrome. For a comprehensive list of supported operating systems for Application Profiler, see the VMware User Environment Manager Application Profiler Administration Guide.

Application Packaging and Profiling Machine Configuration (Profiling VM)

The application packaging and profiling machine (also called the profiling VM) is configured with the following:

  • Windows 10 Anniversary Update (AU) VM.
  • VMware App Volumes Agent version 2.12.
  • VMware User Environment Manager Application Profiler version 9.1.
  • svc-profiler domain account has local administrative privileges.

The App Volumes Agent is an optional component, and is part of the VMware End-User-Computing JMP solution. This agent is included so the same VM can be used to build an AppVolumes AppStack for application deployment, and to profile the application for personalization with User Environment Manager. If you would like to learn more, or include App Volumes in your environment, refer to the App Volumes Reviewer&#rsquo;s Guide.

End-User Machine Configuration

The end-user machine in this example has the following configuration:

  • Windows 10 AU instant-clone VM.
  • VMware App Volumes Agent version 2.12.
  • VMware User Environment Manager FlexEngine version 9.1.
  • jspencer is a standard end user domain account.

Application Profiling with User Environment Manager

Google Chrome version 57.0.2987.133 was captured to an App Volumes AppStack using all default installation options. The AppStack was then used to deliver Chrome to the profiling VM.

The following steps are taken during the User Environment Manager application profiling process:

  1. Launch Chrome.
  2. Browse to vmware.com and create a bookmark for the site.
  3. Configure Chrome to display the bookmarks bar.
  4. Stop (close) Chrome.

At this point we would expect the Application Profiler to detect Chrome being stopped, and prompt us to complete the profiling process. This is not the case, which is an indication that the Application Profiler still sees one or more running processes related to Chrome. Windows Task Manager does not indicate that Chrome is running, as there are no processes named chrome.exe.

Clicking the Stop Analysis button on the Application Profiler window brings up a list of running child processes from the application (Chrome) being profiled.

Notice there are two unique process IDs (PIDs) for chrome.exe. Yet, we still do not see chrome.exe listed in Windows Task Manager. During the application profiling process, if Application Profiler does not detect the application stop event, the cause is typically related to child processes. Depending on the application, one of two methods for troubleshooting will commonly be used. We look at each of these in the following section.

Analyzing Application Does Not Detect Application Stop

When you stop an application and the Application Profiler does not detect the event, the most common cause is that the primary executable spawned one or more child processes, which are still running. This is often the case when an application creates a Task Bar icon, or continues to run some service in the background of Windows.

When this occurs, click the Stop Analysis button and check the Windows Task Manager to see if there is a match for the process name and PID displayed. If a match is found, attempt to locate the running component and shut it down gracefully. In the case of a Task Bar icon, you might right-click and choose to exit the application. Closing all child processes gracefully (rather than ending the processes via Task Manager) ensures all user data that might be written to the registry or file system completes, and can therefore be properly analyzed by Application Profiler.

Chrome is a somewhat unique application in that it often spawns child processes that do not notify Windows when they close. This results in Application Profiler reporting process names and PIDs that are not detected by Windows Task Manager, as seen in the previous graphic. Because of this, it is necessary to force Application Profiler to stop, even though it indicates the child processes are still running, in order to continue the application profiling process. Doing so has other implications to DirectFlex, which we cover later in this blog post.

For now, we continue with the application profiling process. To do so, the Yes button is clicked on the Analysis Session Is Running window to stop the profiling session, despite the extra chrome.exe processes.

Using File Exclusions with Chrome

Upon completion of the application analysis, we see a single registry tree to be included in the Chrome configuration file.

If we complete the application profiling process and start providing personalization for Chrome with this configuration file, we find bookmarks are not preserved for our end users. This should not be the case, as we specifically created a bookmark during the application profiling process. Additional features in the Application Profiler can be used to determine why this is happening.

Selecting the Manage Exclusions option within Application Profiler brings up a list of default exclusions for the file system or registry.

Clicking the Settings tab and deselecting the Enable File Exclusions check box disables the default file exclusions list in real time, and displays the files and folders that were previously excluded. In this case, the updated Flex Config File output window indicates there were files created or modified in %LocalAppData%Google. In addition, we see an extensive list of files in %LocalAppData%Temp (and other locations not displayed in the graphic) that Chrome modified during the profiling process. These files and folders were excluded by the Application Profiler default exclusions, as it is uncommon for applications to write user configuration data to these locations.

Browsing to %LocalAppData% on the local file system of the profiling VM, we can see Chrome created the folder User Data to store a variety of user configuration information.

Chrome essentially creates several databases, and stores inside of them user configuration settings such as bookmarks. Because of this, it is necessary to include %LocalAppData%GoogleChrome in the Flex configuration file. To do this, the IncludeFolderTrees section is manually added to the original Flex configuration file. Note that Enable File Exclusions has been selected, as we do not want to include all of the files that had been automatically excluded.

Completing the profiling process and using this configuration file to provide personalization for Chrome would properly persist bookmarks and other user configuration settings between sessions. Success!?

Well…sort of. Yes, we fixed the personalization problem, but we have created a new problem that may not be apparent right away.

User Profile Archive Growth

Importing and exporting user profile archive files to provide personalization of applications is a foundational feature of User Environment Manager. These operations can be done at login and logout, or at application start and stop, when using DirectFlex. Application configuration is typically done using registry settings or simple configuration files such as INI or XML. Because these settings require little space on disk, only small amounts of data are being transferred during import and export, resulting in excellent performance for end users.

Chrome uses databases to store its user configuration data, and these databases can grow very quickly. As an example, browsing with Chrome for less than two minutes to sites such as YouTube caused my %LocalAppData%GoogleChromeUser Data folder to grow to 16 MB. It is common for this directory to grow to hundreds of megabytes over time, which could impact the performance of user profile archive import and export operations.

Although we do not have the space in this blog post to cover all the testing, we have found that specific directories tend to grow significantly, though they are not really adding value to the personalization process. By creating a few manual exclusions, we can significantly reduce the size of the user profile archives.

One last addition we can make to reduce the size of the user profile archives is to exclude any TMP files. A quick search of %LocalAppData%GoogleChrome finds a number of these files that will grow over time, but add no value to personalization. Note the wildcard (*) support for exclusions.

With these additions to the Flex configuration file in place, we can now complete the application profiling process. Before we start providing personalization of Chrome to end users, we need to consider how or if DirectFlex will be used with Chrome.

Configuring DirectFlex for Profiled Applications

Application Profiler by default enables DirectFlex for profiled applications. DirectFlex is a feature of the User Environment Manager Agent (FlexEngine), which imports settings when an application is started and exports user customizations when the application is stopped, rather than at login and logout. When an application is stopped, DirectFlex should detect the stop of the application process and any child processes, then proceed with the export.

As seen during profiling, Chrome creates several chrome.exe processes as the application is used. DirectFlex tries to keep track of each process, because the export operation should occur when the last chrome.exe process exits. Because Chrome does not notify Windows of all the child processes it creates, DirectFlex may not accurately detect when Chrome is stopped, as seen during the profiling process. This may prevent the export operation from occurring as intended.

In the case of Chrome, there are two recommended methods to solve this.

DirectFlex Settings for Google Chrome

The first option is to simply disable DirectFlex for Chrome by deselecting the check box in the User Environment Manager console after application profiling is complete. Note the prompt to answer Enable config processing during logon and logoff? when DirectFlex is disabled.

The second option is to continue using DirectFlex to import settings when Chrome is started, but to configure User Environment Manager to export the settings on logout, rather than at application stop. This removes the requirement for DirectFlex to determine when Chrome has been stopped. Again, this configuration is made from the User Environment Manager console post-profiling. Select Export at logoff from the Export moment drop-down menu.

Conclusion

The following is a brief summary of the application profiling concepts and practices covered in this blog post, which you can apply to your own applications.

  • When profiling, stopping or closing the application should automatically cause the Application Profiler to complete the analysis phase. If this does not occur, it is an indication that the application has one or more child processes that are still running.
  • If child processes are left running after the application is stopped, the most likely cause is a Task Bar icon or background service. Use the Task Manager to determine whether Windows sees application processes, and attempt to gracefully stop them.
  • Default exclusions work for profiling most applications. Toggle exclusions on and off from the Application Profiler to determine if your application is writing information in one of the excluded locations.
  • User profile archives are typically small (less than 1 MB), which is important for providing a good user experience during import and export operations. Watch for archives that grow quickly or very large, as they may be storing unnecessary files.
  • Use manual exclusions to prevent storing unnecessary files and folders in user profile archives. Specifically, watch for large files, and files or folders with names or extensions such as TMP, LOG, CACHE, and so on.
  • For additional detail on exclusions, see the VMware User Environment Manager Application Profiler Administration Guide.

The post Profiling Applications with VMware User Environment Manager, Part 3: Built-In and Custom Exclusions appeared first on VMware End-User Computing Blog.

Read more..

Profiling Applications with VMware User Environment Manager, Part 3: Built-In and Custom Exclusions

Co-authored by Pim van de Vis, Product Engineer, User Environment Manager, Research & Development, VMware

In Part 1 of this blog series, you were introduced to the VMware User Environment Manager Application Profiler. In Part 2, VLC Media Player was profiled, predefined settings were applied, and you were introduced to a few Application Profiler best practices and troubleshooting techniques. In Part 3 we use Google Chrome to demonstrate Application Profiler exclusions, including when, why, and how to use them.

Introduction to Exclusions with Application Profiler

Windows applications tend to write registry and file system data in a variety of locations. A portion of the data is relevant to persisting the user experience from session to session, and that of course is what we are interested in when profiling an application to provide personalization. Most applications also create files we may not want to persist, such as temp, log, and crash dump files. Depending on the application and how it is used, these files may quickly grow in size, negatively impacting the user experience.

The VMware User Environment Manager Application Profiler includes a number of built-in exclusions for both the registry and the file system. In most cases these defaults suffice, and applications profile quite easily. There are, however, applications such as Chrome that write user-specific configuration data to locations that are excluded by default. In this blog post you will see which locations are excluded by default, how to make exceptions when needed, and how to create your own exclusions to keep user profile archives small.

It is worth mentioning that you can download a custom Flex configuration template already optimized for Chrome from the Community Forum, along with a variety of other templates. The rest of this blog post is aimed at showing the logic and process to create a configuration file for Chrome.

Environment

Installing Application Profiler and performing the initial profiling process is outside the scope of this blog post, and is well-documented in the VMware User Environment Manager Application Profiler Administration Guide. This blog post focuses on the advanced scenario of troubleshooting and customizing a profiled application using exclusions.

The following describes the configuration used to profile Chrome. For a comprehensive list of supported operating systems for Application Profiler, see the VMware User Environment Manager Application Profiler Administration Guide.

Application Packaging and Profiling Machine Configuration (Profiling VM)

The application packaging and profiling machine (also called the profiling VM) is configured with the following:

  • Windows 10 Anniversary Update (AU) VM.
  • VMware App Volumes Agent version 2.12.
  • VMware User Environment Manager Application Profiler version 9.1.
  • svc-profiler domain account has local administrative privileges.

The App Volumes Agent is an optional component, and is part of the VMware End-User-Computing JMP solution. This agent is included so the same VM can be used to build an AppVolumes AppStack for application deployment, and to profile the application for personalization with User Environment Manager. If you would like to learn more, or include App Volumes in your environment, refer to the App Volumes Reviewer&#rsquo;s Guide.

End-User Machine Configuration

The end-user machine in this example has the following configuration:

  • Windows 10 AU instant-clone VM.
  • VMware App Volumes Agent version 2.12.
  • VMware User Environment Manager FlexEngine version 9.1.
  • jspencer is a standard end user domain account.

Application Profiling with User Environment Manager

Google Chrome version 57.0.2987.133 was captured to an App Volumes AppStack using all default installation options. The AppStack was then used to deliver Chrome to the profiling VM.

The following steps are taken during the User Environment Manager application profiling process:

  1. Launch Chrome.
  2. Browse to vmware.com and create a bookmark for the site.
  3. Configure Chrome to display the bookmarks bar.
  4. Stop (close) Chrome.

At this point we would expect the Application Profiler to detect Chrome being stopped, and prompt us to complete the profiling process. This is not the case, which is an indication that the Application Profiler still sees one or more running processes related to Chrome. Windows Task Manager does not indicate that Chrome is running, as there are no processes named chrome.exe.

Clicking the Stop Analysis button on the Application Profiler window brings up a list of running child processes from the application (Chrome) being profiled.

Notice there are two unique process IDs (PIDs) for chrome.exe. Yet, we still do not see chrome.exe listed in Windows Task Manager. During the application profiling process, if Application Profiler does not detect the application stop event, the cause is typically related to child processes. Depending on the application, one of two methods for troubleshooting will commonly be used. We look at each of these in the following section.

Analyzing Application Does Not Detect Application Stop

When you stop an application and the Application Profiler does not detect the event, the most common cause is that the primary executable spawned one or more child processes, which are still running. This is often the case when an application creates a Task Bar icon, or continues to run some service in the background of Windows.

When this occurs, click the Stop Analysis button and check the Windows Task Manager to see if there is a match for the process name and PID displayed. If a match is found, attempt to locate the running component and shut it down gracefully. In the case of a Task Bar icon, you might right-click and choose to exit the application. Closing all child processes gracefully (rather than ending the processes via Task Manager) ensures all user data that might be written to the registry or file system completes, and can therefore be properly analyzed by Application Profiler.

Chrome is a somewhat unique application in that it often spawns child processes that do not notify Windows when they close. This results in Application Profiler reporting process names and PIDs that are not detected by Windows Task Manager, as seen in the previous graphic. Because of this, it is necessary to force Application Profiler to stop, even though it indicates the child processes are still running, in order to continue the application profiling process. Doing so has other implications to DirectFlex, which we cover later in this blog post.

For now, we continue with the application profiling process. To do so, the Yes button is clicked on the Analysis Session Is Running window to stop the profiling session, despite the extra chrome.exe processes.

Using File Exclusions with Chrome

Upon completion of the application analysis, we see a single registry tree to be included in the Chrome configuration file.

If we complete the application profiling process and start providing personalization for Chrome with this configuration file, we find bookmarks are not preserved for our end users. This should not be the case, as we specifically created a bookmark during the application profiling process. Additional features in the Application Profiler can be used to determine why this is happening.

Selecting the Manage Exclusions option within Application Profiler brings up a list of default exclusions for the file system or registry.

Clicking the Settings tab and deselecting the Enable File Exclusions check box disables the default file exclusions list in real time, and displays the files and folders that were previously excluded. In this case, the updated Flex Config File output window indicates there were files created or modified in %LocalAppData%Google. In addition, we see an extensive list of files in %LocalAppData%Temp (and other locations not displayed in the graphic) that Chrome modified during the profiling process. These files and folders were excluded by the Application Profiler default exclusions, as it is uncommon for applications to write user configuration data to these locations.

Browsing to %LocalAppData% on the local file system of the profiling VM, we can see Chrome created the folder User Data to store a variety of user configuration information.

Chrome essentially creates several databases, and stores inside of them user configuration settings such as bookmarks. Because of this, it is necessary to include %LocalAppData%GoogleChrome in the Flex configuration file. To do this, the IncludeFolderTrees section is manually added to the original Flex configuration file. Note that Enable File Exclusions has been selected, as we do not want to include all of the files that had been automatically excluded.

Completing the profiling process and using this configuration file to provide personalization for Chrome would properly persist bookmarks and other user configuration settings between sessions. Success!?

Well…sort of. Yes, we fixed the personalization problem, but we have created a new problem that may not be apparent right away.

User Profile Archive Growth

Importing and exporting user profile archive files to provide personalization of applications is a foundational feature of User Environment Manager. These operations can be done at login and logout, or at application start and stop, when using DirectFlex. Application configuration is typically done using registry settings or simple configuration files such as INI or XML. Because these settings require little space on disk, only small amounts of data are being transferred during import and export, resulting in excellent performance for end users.

Chrome uses databases to store its user configuration data, and these databases can grow very quickly. As an example, browsing with Chrome for less than two minutes to sites such as YouTube caused my %LocalAppData%GoogleChromeUser Data folder to grow to 16 MB. It is common for this directory to grow to hundreds of megabytes over time, which could impact the performance of user profile archive import and export operations.

Although we do not have the space in this blog post to cover all the testing, we have found that specific directories tend to grow significantly, though they are not really adding value to the personalization process. By creating a few manual exclusions, we can significantly reduce the size of the user profile archives.

One last addition we can make to reduce the size of the user profile archives is to exclude any TMP files. A quick search of %LocalAppData%GoogleChrome finds a number of these files that will grow over time, but add no value to personalization. Note the wildcard (*) support for exclusions.

With these additions to the Flex configuration file in place, we can now complete the application profiling process. Before we start providing personalization of Chrome to end users, we need to consider how or if DirectFlex will be used with Chrome.

Configuring DirectFlex for Profiled Applications

Application Profiler by default enables DirectFlex for profiled applications. DirectFlex is a feature of the User Environment Manager Agent (FlexEngine), which imports settings when an application is started and exports user customizations when the application is stopped, rather than at login and logout. When an application is stopped, DirectFlex should detect the stop of the application process and any child processes, then proceed with the export.

As seen during profiling, Chrome creates several chrome.exe processes as the application is used. DirectFlex tries to keep track of each process, because the export operation should occur when the last chrome.exe process exits. Because Chrome does not notify Windows of all the child processes it creates, DirectFlex may not accurately detect when Chrome is stopped, as seen during the profiling process. This may prevent the export operation from occurring as intended.

In the case of Chrome, there are two recommended methods to solve this.

DirectFlex Settings for Google Chrome

The first option is to simply disable DirectFlex for Chrome by deselecting the check box in the User Environment Manager console after application profiling is complete. Note the prompt to answer Enable config processing during logon and logoff? when DirectFlex is disabled.

The second option is to continue using DirectFlex to import settings when Chrome is started, but to configure User Environment Manager to export the settings on logout, rather than at application stop. This removes the requirement for DirectFlex to determine when Chrome has been stopped. Again, this configuration is made from the User Environment Manager console post-profiling. Select Export at logoff from the Export moment drop-down menu.

Conclusion

The following is a brief summary of the application profiling concepts and practices covered in this blog post, which you can apply to your own applications.

  • When profiling, stopping or closing the application should automatically cause the Application Profiler to complete the analysis phase. If this does not occur, it is an indication that the application has one or more child processes that are still running.
  • If child processes are left running after the application is stopped, the most likely cause is a Task Bar icon or background service. Use the Task Manager to determine whether Windows sees application processes, and attempt to gracefully stop them.
  • Default exclusions work for profiling most applications. Toggle exclusions on and off from the Application Profiler to determine if your application is writing information in one of the excluded locations.
  • User profile archives are typically small (less than 1 MB), which is important for providing a good user experience during import and export operations. Watch for archives that grow quickly or very large, as they may be storing unnecessary files.
  • Use manual exclusions to prevent storing unnecessary files and folders in user profile archives. Specifically, watch for large files, and files or folders with names or extensions such as TMP, LOG, CACHE, and so on.
  • For additional detail on exclusions, see the VMware User Environment Manager Application Profiler Administration Guide.

The post Profiling Applications with VMware User Environment Manager, Part 3: Built-In and Custom Exclusions appeared first on VMware End-User Computing Blog.

Read more..

Profiling Applications with VMware User Environment Manager, Part 3: Built-In and Custom Exclusions

Co-authored by Pim van de Vis, Product Engineer, User Environment Manager, Research & Development, VMware

In Part 1 of this blog series, you were introduced to the VMware User Environment Manager Application Profiler. In Part 2, VLC Media Player was profiled, predefined settings were applied, and you were introduced to a few Application Profiler best practices and troubleshooting techniques. In Part 3 we use Google Chrome to demonstrate Application Profiler exclusions, including when, why, and how to use them.

Introduction to Exclusions with Application Profiler

Windows applications tend to write registry and file system data in a variety of locations. A portion of the data is relevant to persisting the user experience from session to session, and that of course is what we are interested in when profiling an application to provide personalization. Most applications also create files we may not want to persist, such as temp, log, and crash dump files. Depending on the application and how it is used, these files may quickly grow in size, negatively impacting the user experience.

The VMware User Environment Manager Application Profiler includes a number of built-in exclusions for both the registry and the file system. In most cases these defaults suffice, and applications profile quite easily. There are, however, applications such as Chrome that write user-specific configuration data to locations that are excluded by default. In this blog post you will see which locations are excluded by default, how to make exceptions when needed, and how to create your own exclusions to keep user profile archives small.

It is worth mentioning that you can download a custom Flex configuration template already optimized for Chrome from the Community Forum, along with a variety of other templates. The rest of this blog post is aimed at showing the logic and process to create a configuration file for Chrome.

Environment

Installing Application Profiler and performing the initial profiling process is outside the scope of this blog post, and is well-documented in the VMware User Environment Manager Application Profiler Administration Guide. This blog post focuses on the advanced scenario of troubleshooting and customizing a profiled application using exclusions.

The following describes the configuration used to profile Chrome. For a comprehensive list of supported operating systems for Application Profiler, see the VMware User Environment Manager Application Profiler Administration Guide.

Application Packaging and Profiling Machine Configuration (Profiling VM)

The application packaging and profiling machine (also called the profiling VM) is configured with the following:

  • Windows 10 Anniversary Update (AU) VM.
  • VMware App Volumes Agent version 2.12.
  • VMware User Environment Manager Application Profiler version 9.1.
  • svc-profiler domain account has local administrative privileges.

The App Volumes Agent is an optional component, and is part of the VMware End-User-Computing JMP solution. This agent is included so the same VM can be used to build an AppVolumes AppStack for application deployment, and to profile the application for personalization with User Environment Manager. If you would like to learn more, or include App Volumes in your environment, refer to the App Volumes Reviewer&#rsquo;s Guide.

End-User Machine Configuration

The end-user machine in this example has the following configuration:

  • Windows 10 AU instant-clone VM.
  • VMware App Volumes Agent version 2.12.
  • VMware User Environment Manager FlexEngine version 9.1.
  • jspencer is a standard end user domain account.

Application Profiling with User Environment Manager

Google Chrome version 57.0.2987.133 was captured to an App Volumes AppStack using all default installation options. The AppStack was then used to deliver Chrome to the profiling VM.

The following steps are taken during the User Environment Manager application profiling process:

  1. Launch Chrome.
  2. Browse to vmware.com and create a bookmark for the site.
  3. Configure Chrome to display the bookmarks bar.
  4. Stop (close) Chrome.

At this point we would expect the Application Profiler to detect Chrome being stopped, and prompt us to complete the profiling process. This is not the case, which is an indication that the Application Profiler still sees one or more running processes related to Chrome. Windows Task Manager does not indicate that Chrome is running, as there are no processes named chrome.exe.

Clicking the Stop Analysis button on the Application Profiler window brings up a list of running child processes from the application (Chrome) being profiled.

Notice there are two unique process IDs (PIDs) for chrome.exe. Yet, we still do not see chrome.exe listed in Windows Task Manager. During the application profiling process, if Application Profiler does not detect the application stop event, the cause is typically related to child processes. Depending on the application, one of two methods for troubleshooting will commonly be used. We look at each of these in the following section.

Analyzing Application Does Not Detect Application Stop

When you stop an application and the Application Profiler does not detect the event, the most common cause is that the primary executable spawned one or more child processes, which are still running. This is often the case when an application creates a Task Bar icon, or continues to run some service in the background of Windows.

When this occurs, click the Stop Analysis button and check the Windows Task Manager to see if there is a match for the process name and PID displayed. If a match is found, attempt to locate the running component and shut it down gracefully. In the case of a Task Bar icon, you might right-click and choose to exit the application. Closing all child processes gracefully (rather than ending the processes via Task Manager) ensures all user data that might be written to the registry or file system completes, and can therefore be properly analyzed by Application Profiler.

Chrome is a somewhat unique application in that it often spawns child processes that do not notify Windows when they close. This results in Application Profiler reporting process names and PIDs that are not detected by Windows Task Manager, as seen in the previous graphic. Because of this, it is necessary to force Application Profiler to stop, even though it indicates the child processes are still running, in order to continue the application profiling process. Doing so has other implications to DirectFlex, which we cover later in this blog post.

For now, we continue with the application profiling process. To do so, the Yes button is clicked on the Analysis Session Is Running window to stop the profiling session, despite the extra chrome.exe processes.

Using File Exclusions with Chrome

Upon completion of the application analysis, we see a single registry tree to be included in the Chrome configuration file.

If we complete the application profiling process and start providing personalization for Chrome with this configuration file, we find bookmarks are not preserved for our end users. This should not be the case, as we specifically created a bookmark during the application profiling process. Additional features in the Application Profiler can be used to determine why this is happening.

Selecting the Manage Exclusions option within Application Profiler brings up a list of default exclusions for the file system or registry.

Clicking the Settings tab and deselecting the Enable File Exclusions check box disables the default file exclusions list in real time, and displays the files and folders that were previously excluded. In this case, the updated Flex Config File output window indicates there were files created or modified in %LocalAppData%Google. In addition, we see an extensive list of files in %LocalAppData%Temp (and other locations not displayed in the graphic) that Chrome modified during the profiling process. These files and folders were excluded by the Application Profiler default exclusions, as it is uncommon for applications to write user configuration data to these locations.

Browsing to %LocalAppData% on the local file system of the profiling VM, we can see Chrome created the folder User Data to store a variety of user configuration information.

Chrome essentially creates several databases, and stores inside of them user configuration settings such as bookmarks. Because of this, it is necessary to include %LocalAppData%GoogleChrome in the Flex configuration file. To do this, the IncludeFolderTrees section is manually added to the original Flex configuration file. Note that Enable File Exclusions has been selected, as we do not want to include all of the files that had been automatically excluded.

Completing the profiling process and using this configuration file to provide personalization for Chrome would properly persist bookmarks and other user configuration settings between sessions. Success!?

Well…sort of. Yes, we fixed the personalization problem, but we have created a new problem that may not be apparent right away.

User Profile Archive Growth

Importing and exporting user profile archive files to provide personalization of applications is a foundational feature of User Environment Manager. These operations can be done at login and logout, or at application start and stop, when using DirectFlex. Application configuration is typically done using registry settings or simple configuration files such as INI or XML. Because these settings require little space on disk, only small amounts of data are being transferred during import and export, resulting in excellent performance for end users.

Chrome uses databases to store its user configuration data, and these databases can grow very quickly. As an example, browsing with Chrome for less than two minutes to sites such as YouTube caused my %LocalAppData%GoogleChromeUser Data folder to grow to 16 MB. It is common for this directory to grow to hundreds of megabytes over time, which could impact the performance of user profile archive import and export operations.

Although we do not have the space in this blog post to cover all the testing, we have found that specific directories tend to grow significantly, though they are not really adding value to the personalization process. By creating a few manual exclusions, we can significantly reduce the size of the user profile archives.

One last addition we can make to reduce the size of the user profile archives is to exclude any TMP files. A quick search of %LocalAppData%GoogleChrome finds a number of these files that will grow over time, but add no value to personalization. Note the wildcard (*) support for exclusions.

With these additions to the Flex configuration file in place, we can now complete the application profiling process. Before we start providing personalization of Chrome to end users, we need to consider how or if DirectFlex will be used with Chrome.

Configuring DirectFlex for Profiled Applications

Application Profiler by default enables DirectFlex for profiled applications. DirectFlex is a feature of the User Environment Manager Agent (FlexEngine), which imports settings when an application is started and exports user customizations when the application is stopped, rather than at login and logout. When an application is stopped, DirectFlex should detect the stop of the application process and any child processes, then proceed with the export.

As seen during profiling, Chrome creates several chrome.exe processes as the application is used. DirectFlex tries to keep track of each process, because the export operation should occur when the last chrome.exe process exits. Because Chrome does not notify Windows of all the child processes it creates, DirectFlex may not accurately detect when Chrome is stopped, as seen during the profiling process. This may prevent the export operation from occurring as intended.

In the case of Chrome, there are two recommended methods to solve this.

DirectFlex Settings for Google Chrome

The first option is to simply disable DirectFlex for Chrome by deselecting the check box in the User Environment Manager console after application profiling is complete. Note the prompt to answer Enable config processing during logon and logoff? when DirectFlex is disabled.

The second option is to continue using DirectFlex to import settings when Chrome is started, but to configure User Environment Manager to export the settings on logout, rather than at application stop. This removes the requirement for DirectFlex to determine when Chrome has been stopped. Again, this configuration is made from the User Environment Manager console post-profiling. Select Export at logoff from the Export moment drop-down menu.

Conclusion

The following is a brief summary of the application profiling concepts and practices covered in this blog post, which you can apply to your own applications.

  • When profiling, stopping or closing the application should automatically cause the Application Profiler to complete the analysis phase. If this does not occur, it is an indication that the application has one or more child processes that are still running.
  • If child processes are left running after the application is stopped, the most likely cause is a Task Bar icon or background service. Use the Task Manager to determine whether Windows sees application processes, and attempt to gracefully stop them.
  • Default exclusions work for profiling most applications. Toggle exclusions on and off from the Application Profiler to determine if your application is writing information in one of the excluded locations.
  • User profile archives are typically small (less than 1 MB), which is important for providing a good user experience during import and export operations. Watch for archives that grow quickly or very large, as they may be storing unnecessary files.
  • Use manual exclusions to prevent storing unnecessary files and folders in user profile archives. Specifically, watch for large files, and files or folders with names or extensions such as TMP, LOG, CACHE, and so on.
  • For additional detail on exclusions, see the VMware User Environment Manager Application Profiler Administration Guide.

The post Profiling Applications with VMware User Environment Manager, Part 3: Built-In and Custom Exclusions appeared first on VMware End-User Computing Blog.

Read more..

Profiling Applications with VMware User Environment Manager, Part 3: Built-In and Custom Exclusions

Co-authored by Pim van de Vis, Product Engineer, User Environment Manager, Research & Development, VMware

In Part 1 of this blog series, you were introduced to the VMware User Environment Manager Application Profiler. In Part 2, VLC Media Player was profiled, predefined settings were applied, and you were introduced to a few Application Profiler best practices and troubleshooting techniques. In Part 3 we use Google Chrome to demonstrate Application Profiler exclusions, including when, why, and how to use them.

Introduction to Exclusions with Application Profiler

Windows applications tend to write registry and file system data in a variety of locations. A portion of the data is relevant to persisting the user experience from session to session, and that of course is what we are interested in when profiling an application to provide personalization. Most applications also create files we may not want to persist, such as temp, log, and crash dump files. Depending on the application and how it is used, these files may quickly grow in size, negatively impacting the user experience.

The VMware User Environment Manager Application Profiler includes a number of built-in exclusions for both the registry and the file system. In most cases these defaults suffice, and applications profile quite easily. There are, however, applications such as Chrome that write user-specific configuration data to locations that are excluded by default. In this blog post you will see which locations are excluded by default, how to make exceptions when needed, and how to create your own exclusions to keep user profile archives small.

It is worth mentioning that you can download a custom Flex configuration template already optimized for Chrome from the Community Forum, along with a variety of other templates. The rest of this blog post is aimed at showing the logic and process to create a configuration file for Chrome.

Environment

Installing Application Profiler and performing the initial profiling process is outside the scope of this blog post, and is well-documented in the VMware User Environment Manager Application Profiler Administration Guide. This blog post focuses on the advanced scenario of troubleshooting and customizing a profiled application using exclusions.

The following describes the configuration used to profile Chrome. For a comprehensive list of supported operating systems for Application Profiler, see the VMware User Environment Manager Application Profiler Administration Guide.

Application Packaging and Profiling Machine Configuration (Profiling VM)

The application packaging and profiling machine (also called the profiling VM) is configured with the following:

  • Windows 10 Anniversary Update (AU) VM.
  • VMware App Volumes Agent version 2.12.
  • VMware User Environment Manager Application Profiler version 9.1.
  • svc-profiler domain account has local administrative privileges.

The App Volumes Agent is an optional component, and is part of the VMware End-User-Computing JMP solution. This agent is included so the same VM can be used to build an AppVolumes AppStack for application deployment, and to profile the application for personalization with User Environment Manager. If you would like to learn more, or include App Volumes in your environment, refer to the App Volumes Reviewer&#rsquo;s Guide.

End-User Machine Configuration

The end-user machine in this example has the following configuration:

  • Windows 10 AU instant-clone VM.
  • VMware App Volumes Agent version 2.12.
  • VMware User Environment Manager FlexEngine version 9.1.
  • jspencer is a standard end user domain account.

Application Profiling with User Environment Manager

Google Chrome version 57.0.2987.133 was captured to an App Volumes AppStack using all default installation options. The AppStack was then used to deliver Chrome to the profiling VM.

The following steps are taken during the User Environment Manager application profiling process:

  1. Launch Chrome.
  2. Browse to vmware.com and create a bookmark for the site.
  3. Configure Chrome to display the bookmarks bar.
  4. Stop (close) Chrome.

At this point we would expect the Application Profiler to detect Chrome being stopped, and prompt us to complete the profiling process. This is not the case, which is an indication that the Application Profiler still sees one or more running processes related to Chrome. Windows Task Manager does not indicate that Chrome is running, as there are no processes named chrome.exe.

Clicking the Stop Analysis button on the Application Profiler window brings up a list of running child processes from the application (Chrome) being profiled.

Notice there are two unique process IDs (PIDs) for chrome.exe. Yet, we still do not see chrome.exe listed in Windows Task Manager. During the application profiling process, if Application Profiler does not detect the application stop event, the cause is typically related to child processes. Depending on the application, one of two methods for troubleshooting will commonly be used. We look at each of these in the following section.

Analyzing Application Does Not Detect Application Stop

When you stop an application and the Application Profiler does not detect the event, the most common cause is that the primary executable spawned one or more child processes, which are still running. This is often the case when an application creates a Task Bar icon, or continues to run some service in the background of Windows.

When this occurs, click the Stop Analysis button and check the Windows Task Manager to see if there is a match for the process name and PID displayed. If a match is found, attempt to locate the running component and shut it down gracefully. In the case of a Task Bar icon, you might right-click and choose to exit the application. Closing all child processes gracefully (rather than ending the processes via Task Manager) ensures all user data that might be written to the registry or file system completes, and can therefore be properly analyzed by Application Profiler.

Chrome is a somewhat unique application in that it often spawns child processes that do not notify Windows when they close. This results in Application Profiler reporting process names and PIDs that are not detected by Windows Task Manager, as seen in the previous graphic. Because of this, it is necessary to force Application Profiler to stop, even though it indicates the child processes are still running, in order to continue the application profiling process. Doing so has other implications to DirectFlex, which we cover later in this blog post.

For now, we continue with the application profiling process. To do so, the Yes button is clicked on the Analysis Session Is Running window to stop the profiling session, despite the extra chrome.exe processes.

Using File Exclusions with Chrome

Upon completion of the application analysis, we see a single registry tree to be included in the Chrome configuration file.

If we complete the application profiling process and start providing personalization for Chrome with this configuration file, we find bookmarks are not preserved for our end users. This should not be the case, as we specifically created a bookmark during the application profiling process. Additional features in the Application Profiler can be used to determine why this is happening.

Selecting the Manage Exclusions option within Application Profiler brings up a list of default exclusions for the file system or registry.

Clicking the Settings tab and deselecting the Enable File Exclusions check box disables the default file exclusions list in real time, and displays the files and folders that were previously excluded. In this case, the updated Flex Config File output window indicates there were files created or modified in %LocalAppData%Google. In addition, we see an extensive list of files in %LocalAppData%Temp (and other locations not displayed in the graphic) that Chrome modified during the profiling process. These files and folders were excluded by the Application Profiler default exclusions, as it is uncommon for applications to write user configuration data to these locations.

Browsing to %LocalAppData% on the local file system of the profiling VM, we can see Chrome created the folder User Data to store a variety of user configuration information.

Chrome essentially creates several databases, and stores inside of them user configuration settings such as bookmarks. Because of this, it is necessary to include %LocalAppData%GoogleChrome in the Flex configuration file. To do this, the IncludeFolderTrees section is manually added to the original Flex configuration file. Note that Enable File Exclusions has been selected, as we do not want to include all of the files that had been automatically excluded.

Completing the profiling process and using this configuration file to provide personalization for Chrome would properly persist bookmarks and other user configuration settings between sessions. Success!?

Well…sort of. Yes, we fixed the personalization problem, but we have created a new problem that may not be apparent right away.

User Profile Archive Growth

Importing and exporting user profile archive files to provide personalization of applications is a foundational feature of User Environment Manager. These operations can be done at login and logout, or at application start and stop, when using DirectFlex. Application configuration is typically done using registry settings or simple configuration files such as INI or XML. Because these settings require little space on disk, only small amounts of data are being transferred during import and export, resulting in excellent performance for end users.

Chrome uses databases to store its user configuration data, and these databases can grow very quickly. As an example, browsing with Chrome for less than two minutes to sites such as YouTube caused my %LocalAppData%GoogleChromeUser Data folder to grow to 16 MB. It is common for this directory to grow to hundreds of megabytes over time, which could impact the performance of user profile archive import and export operations.

Although we do not have the space in this blog post to cover all the testing, we have found that specific directories tend to grow significantly, though they are not really adding value to the personalization process. By creating a few manual exclusions, we can significantly reduce the size of the user profile archives.

One last addition we can make to reduce the size of the user profile archives is to exclude any TMP files. A quick search of %LocalAppData%GoogleChrome finds a number of these files that will grow over time, but add no value to personalization. Note the wildcard (*) support for exclusions.

With these additions to the Flex configuration file in place, we can now complete the application profiling process. Before we start providing personalization of Chrome to end users, we need to consider how or if DirectFlex will be used with Chrome.

Configuring DirectFlex for Profiled Applications

Application Profiler by default enables DirectFlex for profiled applications. DirectFlex is a feature of the User Environment Manager Agent (FlexEngine), which imports settings when an application is started and exports user customizations when the application is stopped, rather than at login and logout. When an application is stopped, DirectFlex should detect the stop of the application process and any child processes, then proceed with the export.

As seen during profiling, Chrome creates several chrome.exe processes as the application is used. DirectFlex tries to keep track of each process, because the export operation should occur when the last chrome.exe process exits. Because Chrome does not notify Windows of all the child processes it creates, DirectFlex may not accurately detect when Chrome is stopped, as seen during the profiling process. This may prevent the export operation from occurring as intended.

In the case of Chrome, there are two recommended methods to solve this.

DirectFlex Settings for Google Chrome

The first option is to simply disable DirectFlex for Chrome by deselecting the check box in the User Environment Manager console after application profiling is complete. Note the prompt to answer Enable config processing during logon and logoff? when DirectFlex is disabled.

The second option is to continue using DirectFlex to import settings when Chrome is started, but to configure User Environment Manager to export the settings on logout, rather than at application stop. This removes the requirement for DirectFlex to determine when Chrome has been stopped. Again, this configuration is made from the User Environment Manager console post-profiling. Select Export at logoff from the Export moment drop-down menu.

Conclusion

The following is a brief summary of the application profiling concepts and practices covered in this blog post, which you can apply to your own applications.

  • When profiling, stopping or closing the application should automatically cause the Application Profiler to complete the analysis phase. If this does not occur, it is an indication that the application has one or more child processes that are still running.
  • If child processes are left running after the application is stopped, the most likely cause is a Task Bar icon or background service. Use the Task Manager to determine whether Windows sees application processes, and attempt to gracefully stop them.
  • Default exclusions work for profiling most applications. Toggle exclusions on and off from the Application Profiler to determine if your application is writing information in one of the excluded locations.
  • User profile archives are typically small (less than 1 MB), which is important for providing a good user experience during import and export operations. Watch for archives that grow quickly or very large, as they may be storing unnecessary files.
  • Use manual exclusions to prevent storing unnecessary files and folders in user profile archives. Specifically, watch for large files, and files or folders with names or extensions such as TMP, LOG, CACHE, and so on.
  • For additional detail on exclusions, see the VMware User Environment Manager Application Profiler Administration Guide.

The post Profiling Applications with VMware User Environment Manager, Part 3: Built-In and Custom Exclusions appeared first on VMware End-User Computing Blog.

Read more..

Profiling Applications with VMware User Environment Manager, Part 2: Applying and Troubleshooting Predefined Settings

In Part 1 of this blog series, you were introduced to the VMware User Environment Manager Application Profiler. In Part 2 we will profile a popular video playback application called VLC Media Player, capture specific application settings, apply these as predefined settings when an end user launches the application, and explore troubleshooting techniques as needed.

Introduction

Configuring a specific toolbar layout, setting a region-specific language, disabling automatic updates—these are just a few of many reasons IT might want to configure predefined application settings. Unfortunately, this is not always a simple task. Software vendors store configuration data in a variety of locations, and various packaging and deployment technologies have their own methods for customizing application settings.

VMware User Environment Manager provides an easy and consistent way to apply and enforce predefined settings for all your Windows applications. We will use the Application Profiler tool to capture these settings.

Environment

Installing Application Profiler and performing the initial profiling process is outside the scope of this blog post, and is well-documented in the VMware User Environment Manager Application Profiler Administration Guide. This blog post will focus on the advanced scenario of troubleshooting a profiled application.

The following describes the configuration used to profile VLC. For a comprehensive list of supported operating systems for Application Profiler, see the VMware User Environment Manager Application Profiler Administration Guide.

Application Packaging and Profiling Machine Configuration (Profiling VM)

The application packaging and profiling machine (also called the profiling VM) is configured with the following:

  • Windows 10 Anniversary Update (AU) VM.
  • VMware App Volumes Agent version 2.12.
  • VMware User Environment Manager Application Profiler version 9.1.
  • svc-profiler domain account has local administrative privileges.

 

The App Volumes Agent is an optional component, and is part of the VMware End-User-Computing JMP Solution. This agent is included so the same VM can be used to build an App Volumes AppStack for application deployment, and to profile the application for personalization with User Environment Manager. If you would like to learn more, or include App Volumes in your environment, refer to the App Volumes Reviewer&#rsquo;s Guide.

End-User Machine Configuration

The end-user machine in this example has the following configuration:

  • Windows 10 AU
  • VMware App Volumes Agent version 2.12.
  • VMware User Environment Manager FlexEngine version 9.1.
  • jspencer is a standard end user domain account.

Application Profiling

VLC Media Player version 2.2.4 was captured to an App Volumes AppStack using all default installation options. The AppStack was then used to deliver VLC to the profiling VM. During the User Environment Manager application profiling process, the View > Playlist setting was selected for the default view.

Note: Playlist is the item being selected. Docked Playlist is a default setting, independent of Playlist.

Upon completion of the profiling process, we see that the configuration change was written to the file system, in the %AppData%vlc folder.

Selecting Config File with Predefined Settings from Application Profiler produces four files:

  • INI – User Environment Manager configuration file containing the import and export locations. This file defines the parameters for User Environment Manager to manage the application.
  • ICO – Icon used by User Environment Manager Management Console and the Self-Support tool.
  • FLAG – Flag file for FlexEngine, when DirectFlex is enabled (default).
  • ZIP – Contains the predefined user settings.

I prefer to modify the Default Save Path so saved files are automatically added to User Environment Manager.

While you may be tempted to open and edit the ZIP file directly from Windows Explorer, it is critical that the Edit Profile Archive button be used instead. User Environment Manager uses the standard ZIP file format to prevent the creation of proprietary file formats, but the writes to and reads from the ZIP files are optimized for performance. Using tools outside of User Environment Manager to edit these ZIP files makes them unreadable by FlexEngine.

By editing the profile archive, we can browse the contents and make changes as needed.

Notice that VLC uses an INI file to record the user settings. When View > Playlist was selected during application profiling, playlist-visible=true was recorded in the INI. However, there are a number of additional settings that were automatically recorded in the INI.

When configuring predefined application settings, user settings that are stored in an INI file may result in different behavior than user settings stored in registry keys. We will come back to predefined settings later in this post.

For now, we are going to take a step back and run the application profiling process again for VLC. This time, View > Playlist is selected, and Tools > Preferences > Menus Language is configured for French.

Upon completion of the profiling process, we see that the configuration changes were written to the file system, in the %AppData%vlc folder, and to the registry, in HKCUSoftwareVideoLAN.

When we edit the profile archive this time, we see both AppData and Registry folders.

While it is not a common practice for application vendors, this version of VLC Media Player stores the language setting in the registry, while a variety of other user settings are stored in an INI file.

As mentioned in Part 1 of this series on the Application Profiler it is important to &#rsquo;know thine app.&#rdquo;

Configuring and Applying Predefined Settings

To configure and apply the predefined settings, we use the User Environment Manager Management Console.

The VMware User Environment Manager Administration Guide provides a detailed description of the four types of predefined settings you can choose from. For our purposes, we will configure VLC Media Player predefined settings to Partially Enforced Settings. Partially Enforced Settings are applied after the user profile archive has been imported. This effectively merges the user personal settings with the partially enforced settings. In case of a conflict, the partially enforced settings win and overwrite the user personal settings.

To test our configuration, I will log in to a View instant-clone desktop in as jspencer. The same App Volumes AppStack that was used to deliver VLC to the application-packaging VM is used to dynamically deliver VLC to the VM when I log in. When I launch VLC for the first time, the menus are in French, and the interface is configured for Playlist view. Success!

While logged in as jspencer, I will disable the Playlist view, change the language to American English, and clear all of the check boxes on this preferences page.

Based on the way the Partially Enforced Settings option is designed to behave, we would expect the following behavior the next time VLC is opened by jspencer:

  • The menus will be in French and the Playlist view will be enabled. This is because both settings were configured during application profiling, and applied as partially enforced predefined settings.
  • The check boxes cleared on the preferences page will remain cleared. This is because these settings are not specified by the predefined settings, and are therefore user settings that will be stored in the user-profile archive.

After closing and re-opening the application, we see that all of my changes were discarded, including the check boxes on the preferences page. This is not what we expected!

But why did this happen?

We are seeing the result of an application storing its user settings in an INI file. To understand this, let us look at the workflow when a user logs in to a Windows desktop with User Environment Manager enabled.

  1. User logs in.
  2. User profile archive, including any custom user settings, is imported to Windows.
  3. Predefined application settings are imported to Windows.

User Environment Manager behaves differently during Step 3 depending on whether the application settings are stored in the registry or in an INI file.

User Environment Manager can parse individual registry settings. You might think of this as merging only the specified, predefined registry keys to the Windows registry. In our test case, only the language setting is forced on the end user by the predefined application settings registry import. Any other user settings that happen to get recorded in HKCUSoftwareVideoLAN are preserved for the end user. This enables IT to enforce specific application settings, while granting the end user flexibility to customize and preserve any other settings.

When applications store configuration data in files (INI,XML, or others), User Environment Manager can only overwrite the entire file. In our test case, the Playlist view predefined setting is stored in an INI file. That file is part of the predefined applications settings that are applied after the user profile archive is imported. The user jspencer made several changes (cleared check boxes) to the preferences page, which were stored in that same INI file. Going back to the previous workflow, the problem becomes apparent.

  1. User login.
  2. User profile archive, including the INI file customized per the user settings, is imported to Windows.
  3. Predefined application settings, including a copy of the INI file created during the application profiling process, overwrites the INI file imported in Step 2.

Another Issue with Text Files

Even though I am logged in to the end-user VM as jspencer, browsing to the VLC application settings INI shows a value that includes the user name (svc-profiler) of the account that was used during the application profiling process.

The intended behavior is for this line to be populated with the user name of the currently logged-in user—jspencer in this case.

User Environment Manager supports using placeholders to accommodate variables in text files.

Editing the profile archive allows us to modify the text file manually. In this case, I have replaced jspencer with the system variable %username%. See the User Environment Manager Administration Guide for proper syntax and usage.

Now when jspencer runs the application, the user name is properly reflected in the INI.

Conclusion

The following is a brief summary of the application profiling concepts and practices covered in this blog post, which you can apply to your own applications.

  • Always use the Application Profiler or the User Environment Manager tools to edit a profile archive ZIP
  • Applications might store user settings in the registry, in files, or both. Taking the time to fully understand the way your application behaves (&#rsquo;know thine app&#rdquo;) will ensure successful application profiling.
  • When applications store user settings in an INI file, the intended behavior of partially enforced predefined settings might
  • When applications store user settings in a file, values from the profiling VM or profiling user account might be preserved in the predefined application settings. Placeholders enable the use of system variables to address this possibility.

 

The post Profiling Applications with VMware User Environment Manager, Part 2: Applying and Troubleshooting Predefined Settings appeared first on VMware End-User Computing Blog.

Read more..

Profiling Applications with VMware User Environment Manager, Part 1: Introduction to Application Profiler

With contributions from:

Jim Yanik, Senior Manager, End-User-Computing Technical Marketing, VMware

Pim Van De Vis, Product Engineer, User Environment Manager, Research & Development, VMware

Stephane Asselin, Lead Architect, App Volumes, VMware

Successful management of applications across physical, virtual, and cloud devices is becoming increasingly important. Whether your organization fits neatly in to one of those silos, or spans all three, the challenge is finding tools designed to work well for any one platform, and seamlessly across them all. VMware User Environment Manager is one of those tools. With a little savvy, you can provide a superior experience for your end users while simplifying profile management.

Introduction

Personalization, or management of user-specific application settings, is one of many features included with VMware User Environment Manager. This feature enables end users to roam between disparate devices, while preserving custom application settings. IT benefits from simplified application installations, while delivering necessary configuration settings based on any number of environmental conditions.

If you are new to User Environment Manager, I encourage you to visit the VMware User Environment Manager Product Page for an overview, and the VMware User Environment Manager video series on YouTube for more detail. You will learn about a variety of features and benefits such as dynamic policy configuration across physical, virtual, and cloud desktops. An overview of User Environment Manager is outside the scope of this blog post, but there is a fundamental concept which is sometimes overlooked or misunderstood. VMware User Environment Manager takes a whitelist approach to managing the user profile. Given this design approach, IT must specify which applications and settings will be managed. Although it does mean a little more work up front, this solution prevents excessive profile growth and profile corruption, enables user settings to roam across Windows versions, and provides IT granular control to manage as much or as little of the user experience as needed.

Preserving user-specific application settings and applying or enforcing specific default application settings are key features of User Environment Manager. Both of these concepts are illustrated in a recent blog post titled VMware User Environment Manager, Part 2: Complementing Mandatory Profiles with VMware User Environment Manager which demonstrates the power and flexibility of combining User Environment Manager with Microsoft Mandatory Profiles. VMware provides application management templates for commonly-used software packages, and the VMware User Environment Manager Community Forum contains many more templates created with an included tool called Application Profiler.

Application Profiler is a standalone tool that helps you determine where in the file system or registry an application is storing its user settings. The output from Application Profiler is a configuration file which can be used to preserve and roam application settings for your end users. Optionally, you can record a default set of application settings, and apply and/or enforce these defaults for your users based on a variety of conditions.

For more information or to get started with the Application Profiler tool, see the VMware User Environment Manager Application Profiler Administration Guide.

The Pareto Principle

The Pareto Principle, commonly referred to as the 80/20 rule, states that 80% of the effects come from 20% of the causes. I have been using application management software in some form or another for nearly two decades. In that time, I have found the Pareto Principle to be particularly applicable in that a small number of applications tend to cause the vast majority of challenges for IT.

While the Application Profiler tool is easy to use, and most applications can be profiled with little more effort than a simple installation, there are exceptions. The aforementioned Community Forum is a great place to look when you are having trouble profiling an application, but what if you cannot find the particular application template you need?

Know Thine App

A friend once gave me a t-shirt with this expression on it. Over the years, I have found it to be invaluable advice, though it is sometimes easier said than done.

Because Windows is an open platform, application developers have a great deal of flexibility in the way applications they design behave. While guidelines and best practices have been established over the years, we still occasionally find and application which writes a log file to C:Temp!

Understanding the behavior of an application, not just during installation, but as the application is opened, modified, updated, and so on, is critical to successfully managing the application lifecycle. There are a number of tools available, such as the Sysinternals Suite, to help you understand how an application behaves. These are powerful tools, but as you can see they are plentiful, and can be time-consuming and cumbersome to use.

The VMware User Environment Manager Application Profiler tool is purpose-built to help you easily understand how an application behaves. With real-time application analysis capabilities, Application Profiler automatically generates configuration files which enable application management.

What to Expect from This Blog Series

The purpose of this blog series is to enable you, the IT Administrator, to successfully profile and manage any applications you choose. In each subsequent blog post we will explore a new application.

Going back to the Pareto Principle, most applications are simple to profile using the steps detailed in the VMware User Environment Manager Application Profiler Administration Guide. Because of this, applications known to require some troubleshooting will be chosen for this series. You will get a chance to see the symptoms of applications that do not initially profile correctly, and the process used to resolve the problem. You can then take these practices and apply them to applications in your environment.

This series is designed for a User Environment Manager administrator with at least a basic understanding of the Application Profiler tool. If you are new to Application Profiler, review the guide listed previously before continuing to the rest of the series.

Summary

Managing applications with User Environment Manager improves the experience for end users and simplifies application lifecycle management for IT. Profiling applications is a simple process, and most applications will work out of the box. For problematic applications, you can find configuration templates on the Community Forum. If you cannot find what you are looking for, the skills you learn in this blog series should help you to create your own templates. Have you already created a configuration template? Be sure to share!

The post Profiling Applications with VMware User Environment Manager, Part 1: Introduction to Application Profiler appeared first on VMware End-User Computing Blog.

Read more..

Go Que Newsroom Categories

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 20 bytes)
in /home/content/36/8658336/html/goquecom/wp-includes/wp-db.php on line 2022

Query Monitor