Quantcast
Channel: VMware Communities : Popular Discussions - VIX API
Viewing all articles
Browse latest Browse all 34639

How to Power On a remote host virtual machine

$
0
0

 

I am using vix api and vmware workstation.  My scripts in perl and C++ can power on a guest operating system in my computer (localhost).  However, I cannot power on a remote VM in another computer on my network.  The scripts give the following  errors:

 

 

C++ script:

The virtual machine cannot be found

 

 

Perl Script:

VMopen() failed, 4000 The virtual machine cannot be found

 

 

Here is part of my code:

 

 

C++:

 

 

VixHandle hostHandle = VIX_INVALID_HANDLE;

     VixHandle jobHandle = VIX_INVALID_HANDLE;

     VixHandle vmHandle = VIX_INVALID_HANDLE;

     VixError err;

     char vmxFilePath[] = "c:
home
My Virtual Machines
Windows Server 2003 Enterprise Edition
Windows Server 2003 Enterprise Edition.vmx";

 

 

     jobHandle = VixHost_Connect(1,

          VIX_SERVICEPROVIDER_VMWARE_WORKSTATION,

          "10.55.10.100",                    // hostName

          902,                       // hostPort

          "xxxxxx",                    // userName              

          "yyyyyyy",                    // password

          0,                       // options

          VIX_INVALID_HANDLE,      // propertyListHandle

          NULL,                    // callbackProc

          NULL);                   // clientData

 

 

     // Wait for completion of operation.

     err = VixJob_Wait(jobHandle,

          VIX_PROPERTY_JOB_RESULT_HANDLE,

          &hostHandle,

          VIX_PROPERTY_NONE);

 

 

     if (VIX_OK != err) {

          goto abort;

     } else {

          printf ("connect success\n");

     }

 

 

     Vix_ReleaseHandle(jobHandle);

 

 

     // Use VixVM_Open with the hostHandle and the vmxFilePath to open your virtual machine.

     jobHandle = VixVM_Open(hostHandle,

          vmxFilePath,

          NULL,           // callbackProc

          NULL);          // clientData

 

 

 

     err = VixJob_Wait(jobHandle,

          VIX_PROPERTY_JOB_RESULT_HANDLE,

          &vmHandle,

          VIX_PROPERTY_NONE);

 

 

     if (VIX_OK != err) {

          goto abort;

     } else {

          printf ("%s: open success\n",vmxFilePath);

     }

 

 

     // Use VixVM_PowerOn to power on your VM.

 

 

     jobHandle = VixVM_PowerOn(vmHandle,

          VIX_VMPOWEROP_NORMAL,           // options

          VIX_INVALID_HANDLE,             // propertyListHandle

          NULL,                           // *callbackProc,

          NULL);                          // *clientData

 

 

     err = VixJob_Wait(jobHandle, VIX_PROPERTY_NONE);

 

 

     if (VIX_OK != err) {

          goto abort;

     } else {

          printf ( "%s: power on success\n",vmxFilePath);

     }

 

 

     Vix_ReleaseHandle(jobHandle);

 

 

 

 

 

Perl Code:

 

 

use VMware::Vix::Simple;

use VMware::Vix::API::Constants;

 

 

my $err = VIX_OK;

my $hostHandle = VIX_INVALID_HANDLE;

my $vmHandle = VIX_INVALID_HANDLE;

 

 

($err, $hostHandle) = HostConnect(1,

                                  VIX_SERVICEPROVIDER_VMWARE_WORKSTATION,

                                  "10.55.10.100", # hostName

                                  902, # hostPort

                                  "xxxxxx", # userName

                                  "yyyyyyy", # password

                                  0, # options

                                  VIX_INVALID_HANDLE); # propertyListHandle

 

 

die "HostConnect() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;

 

 

($err, $vmHandle) = VMOpen($hostHandle,

                           "c:
home
My Virtual Machines
Windows Server 2003 Enterprise Edition
Windows Server 2003 Enterprise Edition.vmx");

die "VMOpen() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;

 

$err = VMPowerOn($vmHandle,

                 VIX_VMPOWEROP_LAUNCH_GUI, # 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,

                      "administrator", # userName

                      "C*vmuser$$", # password

                      0); # options

die "VMLoginInGuest() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;

 

 

 

 

 

 

Help please.  Both work well with the localhost when I change the hostname and port to NULL and 0.

 

 

 

 

 

Thanks

 

 

 

 

 

 

 

 


Viewing all articles
Browse latest Browse all 34639

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>