Requirements for Virtual Machines
The program can work with virtual machines hosted on Hyper-V, VMware and VirtualBox servers. There are specific requirements for virtualization servers, virtual machines and OS configurations on VMs, which are listed below. Make sure that your environment is configured to satisfy these requirements.
Virtualization Server Requirements
Virtualization servers that host virtual machines must meet the following requirements:
- The program supports local and remote Hyper-V servers.
- To work with virtual machines hosted locally (on localhost), make sure VirtualBox version 6.0 or above is running on the local machine before starting MSI Package Builder.
- To work with virtual machines hosted remotely, use a server with VirtualBox version 6.1.
- To work with virtual machines hosted locally (on localhost), make sure VMware Workstation (version 12 or above) is running on the local machine before starting MSI Package Builder. For MSI Package Builder to discover a VM, the VM should be powered on before creating a profile for it in the program.
- To work with virtual machines hosted remotely, you need to use the VMware ESXi server (version 6.0 or above) with a license that allows remote connections.
To work with the local VMware virtual machines using VMware Workstation, you need to make sure that VMware VIX is configured properly. VMware VIX is an API that allows manipulating files within a guest operating system. VMware VIX configuration is available in the vixwrapper-product-config.txt file located in the VMware Workstation installation folder. This file translates the product version specifications into the appropriate VIX implementations, so you have to specify correct settings there. For example, for all VMware Workstation builds of version 15 you have to specify Workstation-15.0.0 as VIX implementation.
# Workstation 15.5.0
# Workstation 15.5.5
# Workstation 15.5.6
VMware Workstation or VirtualBox may conflict with Hyper-V installed on the same machine. If you need to run VMware Workstation or VirtualBox on the machine with Hyper-V, you need to disable Hyper-V first. You can run the following command to disable Hyper-V and restart the PC to apply the changes.
bcdedit /set hypervisorlaunchtype off
Virtual Machines Requirements
Virtual machines and their configuration should meet the following requirements:
For all types of virtual machines:
- The virtual machine can run Windows Vista SP2 or a higher OS.
- In the VM profile, specify a Windows account (by providing the username/password) that has the Local Administrator permissions on the VM.
- Before starting monitoring, log in on the virtual machine with the user account specified in the VM profile. If a snapshot (a checkpoint on Hyper-V) is selected in the VM profile, it is recommended to use an “online” snapshot (checkpoint), i.e. the one with turned-on Windows and logged-in user.
It’s recommended to use “online” snapshots (or checkpoints on Hyper-V) to optimize the repackaging process. In such snapshots, Windows is running and the user is logged in, so you don’t need to start Windows and log in to Windows manually every time you make repackaging. To create an “online” snapshot, make sure you have configured the virtual machine to follow the repackaging best practices. Then start the virtual machine, log in to Windows and make a snapshot when you are logged in.
- Use checkpoints of the standard type only. Other types of checkpoints aren’t supported.
- Enable remote access in Windows on the virtual machine configured in the VM profile (see the explanation below).
- For a VM hosted locally, click ‘Yes’ on the Windows UAC prompt displayed on the virtual machine to allow monitoring.
- For a VM hosted remotely, enable remote access in Windows on the virtual machine configured in the VM profile (see the explanation below).
- Click ‘Yes’ on the Windows UAC prompt displayed on the virtual machine to allow monitoring.
How to Configure Windows Running on a Hyper-V or VirtualBox VM to Enable Remote Access
When the program uses a VM for monitoring, it copies an installation file to the VM before monitoring and retrieves the capturing results after monitoring. Virtualization servers provide different levels of support for communicating with VMs. To work with a Hyper-V server or with a remote VirtualBox server, you need to perform some extra configuration steps. You need to enable remote access in Windows on the VMs so that the program can communicate with those VMs.
You need to enable remote access in Windows for every VM you plan to use for repackaging that are hosted on a local or remote Hyper-V server or on a remote VirtualBox server. Follow the instructions below to enable remote access.
Enable Remote Access
Make sure that NetBIOS over TCP/IP is enabled on the network adapter of the virtual machine in Windows. This option is configured in the WINS settings of the TCP/IP protocol configuration. In the NetBIOS settings group, you should either choose the Enable NetBIOS over TCP/IP value or leave the Default value if a static IP is used or the DHCP server in your domain is configured to enable NetBIOS.
In addition, you need to enable File and Printer Sharing. You can do it in the Network and Sharing Center of Windows on the virtual machine. Open the connection properties and turn on File and Printer Sharing.
Enable Remote Access on Windows Running in a Workgroup
If a virtual machine runs Windows connected to a corporate domain, its remote access is already enabled after joining the domain, so no additional settings are required. If a virtual machine runs Windows connected to a workgroup, you need to enable remote access for it. To enable remote access, you should disable the UAC remote restrictions by creating the LocalAccountTokenFilterPolicy DWORD value and setting it to 1 in the following registry key:
You can use the Microsoft support article as the reference.
To make sure your virtualization server and virtual machine are configured properly, you need to use the button in VM Profile Manager to test the VM profile settings. If you get an error, it means that the VM has problems, so you need to check the requirements and try again.