Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
prlctl change-sid <vm_id | vm_name>
Changes the Windows security identifier (SID) in the specified virtual machine.
Loading...
Loading...
Loading...
Loading...
prlctl register <path>
Registers a virtual machine in Parallels Desktop. The <path> parameter specifies a path to the virtual machine file.
--uuid <UUID>
If included, the specified UUID will be assigned to the virtual machine. A UUID can be generated using console utilities like uuidgen(1)
in macOS. If this option is not included, the original UUID will be used.
--regenerate-src-uuid
If included, the virtual machine source ID will be automatically generated (the SMBIOS product ID will be changed as well).
--force
If included, all validation checks will be skipped.
prlctl unregister <vm_id | vm_name>
Unregisters the specified virtual machine.
Notes: Use the register command when you have a virtual machine on the host that doesn't show up in the list of the virtual machines registered with Parallels Desktop. This can be a machine that was previously removed from Parallels Desktop or a machine that was manually copied from another location.
Once a VM is registered, all VM restrictions on the filesystem are removed. If you would like to protect the VM from editing, you should restrict registering or removing the VM in Parallels Desktop preferences.
The unregister command removes a virtual machine from Parallels Desktop but does not delete it from the host. You can re-register such a machine with Parallels Desktop later using the register command.
Syntax 1
prlctl list
Lists existing virtual machines. By default (when no parameters are included), only running VMs are displayed.
Optional parameters
-a, --all
Lists all existing virtual machines regardless of their state (running, stopped, suspended, etc.).
-f, --full
Shows the real IP address(es) for running virtual machines.
-o, --output field [, field...]
Displays only the specified field(s).
-s, --sort <field | -field>
Sorts by field (arguments are the same as those for -o). Add "-" (minus sign) before the field name to reverse the sort order.
-L
Lists fields which can be used for both the output (-o, --output) and sort order (-s, --sort) options.
-t, --template
Include templates in the output.
-j, --json
Produces output in JSON format.
Syntax 2
list -i, --info
Displays the VM configuration information. By default, the information for all existing VMs is shown.
Optional parameters
-f, --full
Shows the real IP address(es) for running virtual machines.
-j, --json
Produces output in JSON format.
vm_id | vm_name
Returns the information about a VM specified by ID or name.
prlctl installtools <vm_id | vm_name>
Installs Parallels Tools in the specified virtual machine. To use this command, the target virtual machine must be running.
prlctl enter <vm_id | vm_name>
Logs in to the virtual machine. The command creates a command prompt channel to a virtual machine and allows you to execute commands in it. Parallels Tools must be installed in the virtual machine.
--current-user or --user <user_name>
Include the --current-user option to log in as the user currently logged in inside the guest OS, or use the --user parameter and specify a user name.
--password <password>
The user password.
prlctl move <vm_id | vm_name> --dst <path>
Moves the files of a specified virtual machine to a location specified in the -dst parameter on the same computer. The command supports moving only stopped and suspended virtual machines.
prlctl convert <path>
This command is used to convert a third-party virtual machine to a Parallels virtual machine. The <path> parameter specifies a path to the original virtual machine.
--dst <path>
A path where the converted virtual machine files will be stored. If omitted, the default virtual machine location will be used.
--force
If included, the virtual machine conversion will continue even if the guest OS cannot be identified.
Note: The following third-party virtual machines and disks are supported:
Microsoft Hyper-V
Microsoft Virtual PC
Virtual Box
VMware
prlctl clone <vm_id | vm_name> --name <new_name>
Clones (makes an exact copy of) a specified virtual machine. The -name <new_name> parameter specifies a name to give to the new virtual machine.
--template
Make the new virtual machine a template.
--dst
Set the path to the directory where the virtual machine files will be stored. If omitted, the default location will be used.
--changesid
Change the current Windows security identifier (SID) of a Windows-based virtual machine template. It requires Parallels Tools to be installed in the virtual machine template.
--regenerate-src-uuid
Regenerate the virtual machine source ID (the SMBIOS product ID will also be changed).
--linked
Create a linked clone.
-i, --id <snapid>
Create a linked clone based on a snapshot with a given snapid.
--detach-external-hdd <yes | no>
Specifies what to do with hard disks located outside the source virtual machine file. If you specify yes, outside hard disks will be removed from the destination VM. If you specify no, outside hard disks will remain in the new VM. Please note that in either case, the outside hard disks will NOT be copied to the destination.
prlctl delete <vm_id | vm_name>
Deletes a virtual machine. The command removes a virtual machine from Parallels Desktop and permanently deletes all its files from the host computer. Once completed, this operation cannot be reversed.
The prlctl utility is used to perform management tasks on virtual machines. The utility supports a full range of tasks from creating and administering virtual machines to getting statistics and generating problem reports.
The general syntax is as follows:
prlctl command <vm_ID | vm_name> [options] [-v, --verbose number]
The parameters are:
command: one of the available commands.
vm_ID | vm_name: ID or name of the target virtual machine.
options: command options.
-v, --verbose number: Show verbose output. The greater the number, the more verbose output will be produced.
The subsequent sections describe the available prlctl commands grouped by functionality.
prlctl archive <vm_id | vm_name>
Archives the specified virtual machine bundle.
prlctl unarchive <vm_id | vm_name>
Unarchives the specified virtual machine bundle.
prlctl capture <vm_id | vm_name> --file <name>
Captures a screen area of a virtual machine to a file in PNG format. The --file <name> parameter specifies the target file name and path.
prlctl start <vm_id | vm_name>
Starts the specified virtual machine. The start command can be used to start a stopped virtual machine or to resume a paused virtual machine.
prlctl resume <vm_id | vm_name>
Resumes the specified virtual machine.
prlctl pause <vm_id | vm_name>
Pauses the specified virtual machine.
prlctl suspend <vm_id | vm_name>
Suspends the specified virtual machine.
prlctl restart <vm_id | vm_name>
Restarts the specified virtual machine. The restart command first gracefully shuts down a virtual machine and then starts it again.
prlctl reset <vm_id | vm_name>
Resets the specified virtual machine. The reset command first performs a 'hard' virtual machine shutdown and then starts it again.
prlctl reset-uptime <vm_id | vm_name>
Resets the specified virtual machine uptime counter (the counter start date/time will also will be reset with this action).
prlctl stop <vm_id | vm_name> [--kill] [--drop-state]
Stops the specified virtual machine. You can use the --kill option to forcibly stop the VM. The stop command can perform a 'hard' or a graceful virtual machine shutdown. If the --kill
parameter is included, the 'hard' shutdown will be performed. If the parameter is omitted, the outcome of the graceful shutdown attempt will depend on the following:
- If the Parallels Tools package is installed in a virtual machine, the graceful shutdown will be performed using its facilities.
- If the Parallels Tools package is not installed, the command will try to perform a graceful shutdown using ACPI. Depending on the ACPI support availability in the guest operating system, this may work or not.
Use the --drop-state parameter to reset the specified VM from a suspended state to being completely shut down. Activating this option ensures that the specified VM starts afresh next time, completing the entire boot-up process.
prlctl create <vm_name> --ostemplate <name>
Creates a virtual machine from the specified virtual machine template. The --ostemplate <name> parameter specifies the source template name. To obtain the list of available templates, use the prlctl list -t command.
--dst
A path to the directory where the virtual machine files will be stored. If omitted, the default location will be used.
--changesid
Change the Windows security identifier (SID) of a Windows-based virtual machine template. It requires Parallels Tools to be installed in the template. If omitted, the original SID will be used.
prlctl create <vm_name> [-o,--ostype <name | list>]
Creates a virtual machine and optimizes it for the OS type specified in the --ostype option. If the --ostype parameter is omitted, the virtual machine is optimized for Windows 10 by default. If you want to optimize the virtual machine for a different OS type, use the list option to get the list of available OS types: prlctl create vm_name -o list, then select a desired OS type name and use it as a value of the -o parameter.
prlctl create <vm_name> -d,--distribution <name | list>
Creates a virtual machine and optimizes it for the OS distribution specified in the --distribution option. Use the list option to get the list of available distributions: prlctl create vm_name -d list, then select a desired distribution name and use it as a value of the -o parameter.
Common optional parameters
--no-hdd
Create a virtual machine without hard disk drives.
--lion-recovery
Create a virtual machine from the Lion OS host recovery partition.
To create a macOS virtual machine, download a .ipsw file with macOS installation image, and execute the command with the following parameters:
prlctl create <macOS_VM_name> -o macos --restore-image <path to the .ipsw file>
E.g., prlctl create "macOS_beta" -o macos --restore-image /Users/{user_account}/Downloads/UniversalMac_14.5_23F79_Restore.ipsw
Note: Since virtual machines on Apple Silicon Macs only work via Apple's own Virtualization Framework, there are compatibility limitations between different macOS versions on your Mac and virtual machines. The only scenario that is guaranteed to work is running the same major version of macOS on your virtual machine as on your Mac computer. For more information on possible limitations of macOS virtual machines on Apple Silicon Macs, please refer to this knowledge base article.
By default, the virtual machine is created with 64GB of disk space. If you want to create a machine with a different disk size, the process is slightly different:
Having downloaded a .ipsw installation file, run the following command: prlctl create <macOS_VM_name> -o macos --no-hdd --restore-image <path to the .ipsw file> This command will create a virtual machine shell with no hard drive.
Use the following command to add a virtual hard drive and specify its size (in megabytes): prlctl set <macOS_VM_name> --device-add hdd --type plain --size <size_in_megabytes> Note that only plain drive type is currently supported for macOS virtual machines on Apple Silicon Macs. For more information on supported virtual drive types, refer to this chapter of the guide.
Start the installation process by executing the following command: prlctl start <macOS_VM_name>
Wait for the installation to complete and follow on-screen instructions to choose language, create a user account, etc.
Fetch the .ipsw file download URL by executing the following command in the Terminal: /Applications/Parallels\ Desktop.app/Contents/MacOS/prl_macvm_create --getipswurl
Copy the resulting URL and open it in your browser to download the .ipsw file.
Once the file has been downloaded, execute the following command in the Terminal: /Applications/Parallels\ Desktop.app/Contents/MacOS/prl_macvm_create <path_to_ipsw> <path_to_macVM> --disksize <size_in_bytes> E.g., /Applications/Parallels\ Desktop.app/Contents/MacOS/prl_macvm_create ~/Downloads/UniversalMac_13.3_22E252_Restore.ipsw ~/Parallels/macOS.macvm --disksize 80000000000
Wait for the installation process to complete.
Once finished, locate the file in ~/Parallels/ (your home folder > "Parallels"), drag and drop it to Control Center, or open it with Parallels Desktop via Finder.
Note: In this process, once your macOS VM is created, you won't be able to change the size of its virtual hard drive.
prlctl send-key-event <VM ID> -k,--key <key> | -s,--scancode <scancode> [-e,--event <press|release>] [-d,--delay <msec>]
Sends a single keyboard event (key press or release) identified with a specific key code or scancode to a specified virtual machine with a specified delay (in milliseconds).
prlctl send-key-event <VM ID> -j,--json
Sends a sequence of keyboard events by reading JSON input from stdin. Example of the format is:
prlctl exec <vm_id | vm_name> <command>
Executes a command inside a virtual machine. Parallels Tools must be installed in the virtual machine. Commands in Linux guests are invoked with bash -c.
--current-user or --user <user_name>
Include the --current-user option to log in as the user currently logged in inside the guest OS; or use the --user parameter and specify a user name.
--password <password>
The user password
-r, --resolve-paths
Enable converting host paths to guest.
prlctl protection-set <vm_id | vm_name>
Protects the specified encrypted virtual machine expiration date settings with a password.
prlctl protection-remove <vm_id | vm_name>
Disables password protection of the specified encrypted virtual machine expiration date settings.
prlctl status <vm_id | vm_name>
Displays the status of the specified virtual machine.
Note: These commands are not supported for macOS virtual machines.
prlctl encrypt <vm_id | vm_name> [--dry-run]
Encrypts the specified virtual machine. You can use the the --dry-run option to check preconditions for successful encryption. The encrypt command will encrypt the specified virtual machine and all its data. A user will be prompted to enter an encryption password after the command is executed. The password will be required to decrypt the virtual machine later. The encryption password can be modified for an encrypted virtual machine using the change-passwd command (see below).
prlctl decrypt <vm_id | vm_name> [--dry-run]
Decrypts the specified encrypted virtual machine. You can use the --dry-run option to check preconditions for successful decryption. The decrypt command will decrypt the specified virtual machine. A user will have to enter a password that was specified when the virtual machine was encrypted.
prlctl change-passwd <vm_id | vm_name>
Changes the encryption password for the specified virtual machine. A user will be asked to enter the current and the new password.