Name
VMOpen
Description
($err, $vmHandle) = VMOpen($hostHandle,
$vmxFilePathName);
This function opens a virtual machine on the host that is identified by the
hostHandle parameter and returns a context to that machine as a virtual machine handle.
Parameters
- hostHandle
-
The handle of a host object, typically returned from HostConnect.
- vmxFilePathName
-
The path name of the virtual machine configuration
file on the local host.
Return Value
$err. The error code returned by the operation. For returned values, see Topics > Error Codes.
$vmHandle. The handle to the opened virtual machine.
Remarks
- This function opens a virtual machine on the host that is identified by the
hostHandle parameter. The virtual machine is identified by vmxFilePathName,
which is a path name to the configuration file (.VMX file) for that virtual
machine.
- The format of the path name depends on the host operating system.
For example, a path name for a Windows host requires backslash as
a directory separator, whereas a Linux host requires a forward slash.
If the path name includes backslash characters, you need to precede each
one with an escape character. For VMware vSphere (ESX or vCenter Server)
or VMware Server 2.x, the path contains a preceding data store, for
example [storage1] vm/vm.vmx.
- For ESX/ESXi hosts and VMware Server, a virtual machine must be registered before you
can open it. You can register a virtual machine by opening it with the
VMware Server Console, through the vmware-cmd command with the register
parameter, or with
RegisterVM.
- For vSphere, the Virtual Machine opened may not be the one desired
if more than one Datacenter contains vmxFilePathName.
- For ESX/ESXi hosts and vSphere, the user account specified in the call to
HostConnect
must have "System.View" privilege at the level of the Datacenter containing
the ESX server that hosts the VM to be opened.
- For ESX/ESXi hosts and vSphere, the user account specified in the call to
HostConnect
must have sufficient privileges to access guest operations in the virtual
machine.
For vSphere 4.1 and later, the privilege is "Virtual
Machine.Interaction.Acquire Guest Control Ticket".
For 4.0, the privilege is "Virtual Machine.Interaction.Console Interaction".
Side Effects
None.
Requirements
use VMware::Vix::Simple;
use VMware::Vix::API::Constants;
since VMware Server 1.0
Example
my $err = VIX_OK;
my $hostHandle = VIX_INVALID_HANDLE;
my $vmHandle = VIX_INVALID_HANDLE;
($err, $hostHandle) = HostConnect(VIX_API_VERSION,
VIX_SERVICEPROVIDER_VMWARE_WORKSTATION,
undef, # hostName
0, # hostPort
undef, # userName
undef, # password
0, # options
VIX_INVALID_HANDLE); # propertyListHandle
die "HostConnect() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;
($err, $vmHandle) = VMOpen($hostHandle,
"c:\\Virtual Machines\\vm1\\win2000.vmx");
die "VMOpen() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;