Name

VMRunScriptInGuest

Description

$err = VMRunScriptInGuest($vmHandle,
                          $interpreter,
                          $scriptText,
                          $options,
                          $propertyListHandle);

This function runs a script in the guest operating system.

Parameters

vmHandle
Identifies a virtual machine. Call VMOpen() to create a virtual machine handle.
interpreter
The path to the script interpreter.
scriptText
The text of the script.
options
Run options for the program. See the notes below.
propertyListHandle
Must be VIX_INVALID_HANDLE.

Return Value

$err. The error code returned by the operation. For returned values, see Topics > Error Codes.

Remarks

returns as soon as the program starts in the guest.

Side Effects

None.

Requirements

use VMware::Vix::Simple;
use VMware::Vix::API::Constants;
since VMware Workstation 6.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;
                       
$err = VMPowerOn($vmHandle,
                 0, # powerOnOptions
                 VIX_INVALID_HANDLE);  # propertyListHandle
die "VMPowerOn() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;


$err = VMWaitForToolsInGuest($vmHandle,
                             300); # timeoutInSeconds
die "VMWaitForToolsInGuest() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;

$err = VMLoginInGuest($vmHandle,
                      "vixuser", # userName
                      "secret", # password
                      0); # options
die "VMLoginInGuest() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;

#
#  Perl script to reverse the lines in a file
#
my $scripttext = 
"if (!open IN, "<", "in.txt") { die "failed to open input file"};\n" .
"if (!open OUT, ">", "out.txt") { die "failed to open output file"};\n" .
"@input = <IN>;\n" .
"@reverse = reverse @input;\n" .
"print OUT @reverse;\n";

# Run the target program.
$err =  VMRunScriptInGuest($vmHandle,
                           "c:\\perl\\perl.exe",
			   $scripttext,
                           0, # options
                           VIX_INVALID_HANDLE);
die "VMRunScriptInGuest() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;
                               
ReleaseHandle($vmHandle);
HostDisconnect($hostHandle);

Copyright (C) 2007-2008 VMware, Inc. All rights reserved.