Category: End-User Computing

Moving a VMware Horizon View virtual desktop between separate Horizon View environments

Requirements:

Sometimes you may build two distinct VMware Horizon View environments for separate business units, for Disaster Recovery, or for testing purposes.

In that case, a need may arise to move a virtual desktop between the independent Horizon View infrastructures.

Assumptions:

There are many ways Horizon View may be configured. However, this article assumes the following settings in both environments:

  • Manual, non-automated, dedicated pools for virtual desktops
  • Full clone virtual desktops
  • All user data is contained inside the virtual desktop, most likely on drive C
  • All virtual desktop disks (vmdks, C and others) are contained within the same VM directory on the storage
  • Storage is presented to ESXi through the NFSv3 protocol
  • Microsoft Active Directory domain is the same across both sites
  • VLANs/subnets the same or different between the two sites
  • DHCP is configured for the desktop VM in both sites
  • Virtual desktop has Windows 7 or Windows 10 operating system
  • Connection Servers do not replicate between environments
  • No Cloud Pod federation
  • Horizon View v7.4
  • vCenter VCSA 6.5 Update 1e
  • ESXi 6.5 for some hosts and 6.0 Update 3 for other hosts

There are other ways to move a virtual desktop when the Horizon View is setup with automation and Linked Clones, but they are subject for a future article.

The first Horizon View infrastructure will be called “Source” in this article. The second Horizon View infrastructure, where the virtual desktop needs to be moved, will be called “Destination” in this article.

Instructions:

  1. Record which virtual desktop names are assigned to which Active Directory users on the Source side. You can do that by Exporting a CSV file from the Pool’s Inventory tab.
  2. If the Source Horizon View infrastructure is still available (not destroyed due to a disaster event), then continue with the following steps on the Source environment. If the Source Horizon View infrastructure has been destroyed due to a disaster, go to Step 9.
  3. Power off the virtual desktop. Ensure that in Horizon View Manager you don’t have a policy on your pool to keep powering the virtual desktop on.
  4. In Horizon View Manager, click on the pool name, select the Inventory tab.
  5. Right click the desktop name and select Remove.
  6. Choose “Remove VMs from View Manager only.”
  7. In vSphere Web Client, right click the desktop VM and select “Remove from Inventory.”
  8. Unmount the NFSv3 datastore that contains the virtual desktop from Source ESXi hosts.
  9. At this point how the datastore gets from Source to the Destination will vary based on your conditions.
    • For example, for testing purposes, the NFSv3 datastore can be mounted on the Destination hosts.
    • In case of disaster, there could be storage array technologies in place that replicate the datastore to the Destination side. If the Source storage array is destroyed, go to the Destination storage array and press the Failover button. Failover will usually make the Destination datastore copy Read/Write.
  10. Add the NFSv3 datastore that contains the virtual desktop to the Destination ESXi hosts, by going through the “New Datastore” wizard in vSphere Web Client.
  11. Browse the datastore File structure. Go to the directory of the virtual desktop’s VM, find the .vmx file.
  12. Right click on the .vmx file and select “Register VM…”
  13. Leave the same name for the desktop VM as offered by the wizard.
  14. Put the desktop VM in the correct VM folder and cluster/resource pool, that is visible by the Destination’s Horizon View infrastructure.
  15. Edit the desktop VM’s settings and select the new Port Group that exists on the Destination side (if required).
  16. Power on the desktop VM from the vSphere Web Client.
  17. You might get the “This virtual machine might have been moved or copied.” question.
    • When vSphere sees that the storage path of the VM does not match what was originally in the .vmx file, you might get this question.
    • Answering “Moved” keeps the UUID of the virtual machine, and therefore the MAC address of the network adapter and a few other things.
    • Answering “Copied” changes the UUID of the virtual machine, and therefore the MAC address of the network adapter and a few other things.
  18. In the majority of cases (testing, disaster recovery), you will be moving the desktop virtual machine from one environment to another. Therefore, answer “I Moved It,” to keep the UUID and thus the MAC address the same.
  19. Wait until the desktop virtual machine obtains the IP address from the Destination’s DHCP server, and registers itself with the DNS server and Active Directory.
    • Remember, we are assuming the same Active Directory domain across both sites. As a result, the desktop VM’s AD computer name and object will remain the same.
    • Monitor the IP address and DNS assignment from the vSphere Web Client’s Summary tab for the desktop VM.
  20. In Destination’s Horizon View Manager, click on the Manual, Full Clone, Non-automated, Dedicated pool that you have created already.
    • If you did not create the pool yet, create a new pool and put any available VM at the Destination  in the pool. The VM that you put will just be a placeholder to create the pool. Once the pool is created, you can remove the placeholder VM and only keep your moved virtual desktops.
  21. Go to the Entitlements tab and add any user group or users to be entitled to get desktops from the pool. Most likely, it will the the same user group or user that was entitled to the pool on the Source side.
  22. Select the Inventory tab and click the Add button.
  23. Add the desktop VM that you just moved.
  24. Check the status of the desktop VM. First, the status will say “Waiting for agent,” then “In progress,” then “Available.”
  25. Right click on the desktop VM and select Assign User.
  26. Select the correct Active Directory user for the desktop.
  27. As the user to login to the virtual desktop using Horizon View Client or login on behalf of the user.
  28. For the first login after the move, the user may be asked by Windows to “Restart Now” or “Restart Later.” Please direct the user to “Restart Now.”
  29. After the restart, the user may utilize the Horizon View Client to login to the Destination’s moved desktop normally.

 

How to use Adobe Flash Player after its End of Life — absolutely free

***NOW UPDATED with Apple MacOS instructions, in addition to Microsoft Windows*** 

***Also updated with the solution to the mms.cfg file not working due to the UTF-8 bug***

You may have seen plenty of announcements over the past few years about Adobe Flash coming to the end of life. Various browser manufacturers announced they will disable Flash. Microsoft announced they will uninstall Flash from Windows using a Windows Update (although only the Flash that came automatically with Windows, NOT user-installed Flash). Apple completely disabled Flash in Safari. Below is the dreaded Flash End of Life logo that you will see once Flash is finally turned off:

Yes, I agree with Steve Jobs — Flash is buggy and not secure. However, there are many IT manufacturers out there that used Flash to build their management software interfaces. Some common examples are VMware vSphere, Horizon, and HPE CommandView. That management software is not going away, even though most of it is older. In fact, some of these Flash-managed devices will be there for the next 10 years. So, what can the desperate IT administrator do to manage his or her devices?

Adobe sends users for extended Flash support to a company called Harman. HPE charges money for older CommandView support. Do not pay any money to these companies to use Flash.

Preparation

I am not recommending Chrome or Edge browsers for the below solution because they will auto-update and newer versions will not support Flash at all. Further, turning off auto-update in Chrome and Edge is difficult.

Here are 3 methods to get Flash running on your favorite website. Windows methods assume 64-bit Operating systems. If you want to try 32-bit Windows, the files are available, but the functionality has not been tested (although it will probably work). All the files talked about in these methods are downloadable below:

firefox-flash-end-solution-versions.zip_.pdf — Right click on the link and choose “Save Link As” or “Download Linked File As”. Save the file to your computer. Unhide file extensions. Remove _.pdf from the end of the name and Unzip/ExtractAll the file.

The file contains:

policies.json
Firefox Setup 78.6.0esr-64bit.exe
Firefox Setup 78.6.0esr-32bit.exe
Firefox 78.6.0esr.dmg

flash-eol-versions.zip_-1.pdf — Right click on the link and choose “Save Link As” or “Download Linked File As”. Save the file to your computer. Unhide file extensions. Remove _-1.pdf from the end of the name and Unzip/ExtractAll the file.

The file contains:

mms.cfg
Flash player for Firefox and Win7 – use this for Solution: install_flash_player.exe
Flash for Safari and Firefox – Mac: install_flash_player_osx.dmg
Flash for Opera and Chromium – Mac: install_flash_player_osx_ppapi.dmg
Flash Player for Chromium and Opera browsers: install_flash_player_ppapi.exe
Flash Player for IE active x: install_flash_player_ax.exe
Flash Player Beta 32 bit – May 14-2020: flashplayer_32_sa.exe flashplayer_32_sa.dmg
flash_player_32_0_admin_guide.pdf

Method 1 — Microsoft Windows, if you have Internet Explorer browser and Flash already installed

This method applies to many older Windows Operating systems like Server 2008, 2012, 2016 and Windows 7 and even older Windows 10. It assumes a 64-bit operating system.

  1. Do NOT upgrade Internet Explorer to the Microsoft Edge browser.
  2. Set Internet Explorer to be the default browser in Default Programs.
  3. Download the mms.cfg file.
  4. Open the mms.cfg file with Notepad.
  5. Edit the URL on the right of the Equals sign with an address of the Flash website or file that you need.
    1. Ex. AllowListUrlPattern=https://localhost/admin/
  6. If you need additional websites, place them on the next lines, like in this example.
    1. AllowListUrlPattern=https://localhost/admin/
    2. AllowListUrlPattern=http://testwebsite.com/
    3. AllowListUrlPattern=*://*.finallystopflash.com/
  1. Save mms.cfg file on the desktop.
    1. Important: if you did not use my file, but you are creating the file yourself, makes sure in Notepad Save As dialog, you select “All Files” as the type, and “UTF-8” as the Encoding.
  2. Copy the mms.cfg file into the following directory: C:\Windows\SysWOW64\Macromed\Flash\
    1. That disables Flash updates and allows to use Flash on specified websites.
    2. If you don’t see this directory, it means Flash is not installed and you need to use Method 2 instead.
  3. Restart the Internet Explorer browser.
  4. Go to your website.
  5. This will open Internet Explorer with Flash functional.

Method 2 — Microsoft Windows, if you don’t have Internet Explorer and/or Flash installed

This method applies to almost any Windows machine. It assumes a 64-bit operating system.

  1. If you already have another version of Firefox installed, uninstall it.
  2. Download the “Firefox Setup 78.6.0esr-64bit.exe” and “policies.json” files. This Firefox installer is the Enterprise version (what you need).
  3. Install Firefox ESR, but do NOT open it, or if it opens, close right away.
  4. In the “C:\Program Files\Mozilla Firefox\” directory, create a folder called “distribution”
  5. Put “policies.json” file into the folder “distribution” — this disables automatic Firefox updates.
  6. Start Firefox ESR.
  7. Go to URL: about:policies
  8. Check that “DisableAppUpdate” policy is there and it says “True”.
  9. Set Firefox to be the default browser in Default Programs.
  10. Download “Flash player for Firefox and Win7 – use this for Solution: install_flash_player.exe” and “mms.cfg”.
  11. Double click on the install_flash_player.exe to install Flash for Firefox. Click all Next prompts.
    1. If you are prompted to choose “Update Flash Player Preferences”, select “Never Check for Updates”.
  12. Open mms.cfg file with Notepad
  13. Edit the URL on the right of the Equals sign with an address of the Flash website or file that you need.
    1. Ex. AllowListUrlPattern=https://localhost/admin/
  14. If you need additional websites, place them on the next lines, like in these examples:
    1. AllowListUrlPattern=https://localhost/admin/
    2. AllowListUrlPattern=http://testwebsite.com/
    3. AllowListUrlPattern=*://*.finallystopflash.com/
  15. Save mms.cfg file on the desktop.
    1. Important: if you did not use my file, but you are creating the file yourself, makes sure in Notepad Save As dialog, you select “All Files” as the type, and “UTF-8” as the Encoding.
  16. Copy the “mms.cfg” file into the following directory: C:\Windows\SysWOW64\Macromed\Flash\
    1. That disables Flash updates and allows to use Flash on specified websites.
  17. Restart Firefox ESR.
  18. When going to the flash website you specified, click on the big logo in the middle, then “Allow”.

Method 3 — Apple MacOS

This method applies to almost any MacOS version.

  1. If you already have another version of Firefox installed, uninstall it.
  2. Download “Firefox 78.6.0esr.dmg” and “policies.json” files. This Firefox ESR for Mac installer is the Enterprise version (what you need).
  3. Open the DMG file. Drag the Firefox ESR icon to the Applications folder, which installs it on the Mac. Do NOT open Firefox ESR yet.
  4. Open the Terminal application.
  5. Type the following and press Enter (start typing from xattr).
    1. xattr -r -d com.apple.quarantine /Applications/Firefox.app
      1. This allows Firefox customization without corrupting the application.
  1. Go to the Applications folder. 
  2. Right click on the Firefox.app application and select “Show Package Contents”.
  3. Go to Contents>Resources folder and when there create a folder called “distribution”.
  4. Put “policies.json” file into the folder “distribution” — this disables automatic Firefox updates.
  1. Start Firefox ESR.
  2. Go to URL: about:policies
  3. Check that “DisableAppUpdate” policy is there and it says “True”.
  4. Download “Flash for Safari and Firefox – Mac: install_flash_player_osx.dmg” and “mms.cfg”.
  5. Double click on the install_flash_player_osx.dmg to mount the disk. Double click the installer to install Flash for Firefox. 
  6. When asked to choose on “Update Flash Player Preferences”, select “Never Check for Updates (not recommended)”.
  1. Place the mms.cfg file on the Desktop. Open mms.cfg file with TextEdit.
  2. Edit the URL on the right of the Equals sign with an address of the Flash website or file that you need.
    1. Ex. AllowListUrlPattern=https://localhost/admin/
  3. If you need additional websites, place them on the next lines, like in these examples:
    1. AllowListUrlPattern=https://localhost/admin/
    2. AllowListUrlPattern=http://testwebsite.com/
    3. AllowListUrlPattern=*://*.finallystopflash.com/
  1. Save mms.cfg file to the Desktop. Copy the mms.cfg file.
  2. Paste the “mms.cfg” file into the following directory:
    1. /Library/Application Support/Macromedia/     (Mac Hard Drive>Library>Application Support>Macromedia)
  3. If there is already an existing mms.cfg file in there, Replace it.
    1. That disables Flash updates and allows to use Flash on specified websites.
  1. Restart Firefox ESR for Mac. 
  2. When going to the flash website you specified, click on the big logo in the middle, then “Allow”.

References

https://support.mozilla.org/en-US/questions/1283061

https://community.adobe.com/t5/flash-player/adobe-flash-availability-after-2020/td-p/10929047?page=1

https://support.mozilla.org/en-US/kb/deploying-firefox-customizations-macos

Collateral for my presentation at the Workshop of the Association of Environmental Authorities of NJ (AEANJ)

I was glad for a chance to present at the Workshop of the Association of Environmental Authorities of NJ (AEANJ). There were great questions from the audience.

Thank you to attendees, Leon McBride for the invitation, Peggy Gallos, Karen Burris, and to my colleague Lucy Valle for videotaping.

My presentation is called “Data Portability, Data Security, and Data Availability in Cloud Services”

Here are the collateral files for the session:

Slides:

AEANJ Workshop 2016-slides-YuryMagalif

Video:

AEANJ Workshop 2016 Video – Yury Magalif

Collateral for my presentation at the NJ CTO Study Council

This was my first time presenting at the new NJ CTO Study Council event, and it was a wonderful experience. We did a Virtual Desktop demo which worked flawlessly.

Thank you to attendees and my speaking partners Dr. Richard O’Malley, Ralph Barca, Stan Bednarz, Dan Riordan, and to my colleagues Jeff Jackson and Ian Erikson for help with the presentation.

My presentation is called “Virtualization Roadmap through K-12”

Here are the collateral files for the session:

Slides:

NJ CTO Study Council – VIRTUALIZATION – ROADMAP THROUGH K12 – November 2014