Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 804
  • Last Modified:

Virtual Server 2005 R2 does not restart from Saved state after backup

I have MS Virtual Server 2005 R2 running on Windows Server 2003 R2 Enterprise 32bit with several instances of VM servers. When a backup of the host server takes place, one or more of the virtual servers will  go into a saved state and not start backup. Is there a script to check the state of a virtual server/device and restart it from this saved state? It appears some what to be ramdom on what instance does not start backup.
0
mstraley
Asked:
mstraley
1 Solution
 
Kelv1979Commented:
Hi

Credit for this belongs to David Wang really who produced the script i use for compacting my VHDs, check out the full script at http://blogs.msdn.com/david.wang/archive/2006/04/17/HOWTO-Perform-VHD-Maintenance-Automatically.aspx

However, if you just want to check the state and then start up the VHD the bit you need is below. Save it as a .js file and call it from the command prompt using cscript filename.js

Hope this helps


var ERROR_FILE_NOT_FOUND    = 2;
var ERROR_INVALID_PARAMETER = 87;
 
var GUEST_OS_SLEEP_RESOLUTION = 5000;
var CLEAR_LINE = String.fromCharCode( 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 );
var CRLF = "\r\n";
 
var VM_STATE_OFF            = 1;
var VM_STATE_SAVED          = 2;
var VM_STATE_RUNNING        = 5;
var VM_STATE_PAUSED         = 6;
 
var strServer               = "SERVER_NAME";
var strVMName               = "VM_NAME";
 
var Fso     = new ActiveXObject( "Scripting.FileSystemObject" );
var objVS   = new ActiveXObject( "VirtualServer.Application", strServer );
var objVM   = objVS.FindVirtualMachine( strVMName );
var task;
 
//
// Locate the named Virtual Machine
// If it is not found, bail.
//
if ( null == objVM )
{
    LogEcho( "Virtual Machine " + "\"" + strVMName + "\"" + " was not found on server " + strServer );
    Quit( ERROR_FILE_NOT_FOUND );
}
 
LogEcho( "Selected Virtual Machine " + "\"" + strVMName + "\"" + " on server " + strServer );
 
//
// Virtual Machine is not running. Start/resume it
//
 
if ( objVM.State != VM_STATE_RUNNING )
{
    LogEcho( "VM is NOT already running." );
 
    if ( objVM.State == VM_STATE_OFF ||
         objVM.State == VM_STATE_SAVED )
    {
        LogEcho( "Starting VM..." );
        task = objVM.Startup();
        WaitForTask( task );
    }
    else if ( objVM.State == VM_STATE_PAUSED )
    {
        LogEcho( "Resuming VM..." );
        task = objVM.Resume();
    }
    else
    {
        LogEcho( "Unexpected VM State: " + objVM.State );
        Quit( ERROR_INVALID_PARAMETER );
    }
}
else
{
    LogEcho( "VM is already running." );
}
 
function Quit( errorNumber )
{
    WScript.Quit( errorNumber );
}
 
function LogEcho( str )
{
    WScript.Echo( str );
}
 
function FormatErrorString( e )
{
    return e.number + ": " + e.description;
}
 
function WaitForTask( task )
{
    var complete;
    var strLine = "";
    var cchLine = 0;
 
    while ( (complete = task.PercentCompleted) <= 100 )
    {
        strLine = CLEAR_LINE.substring( 0, cchLine ) + complete + "%   ";
        cchLine = strLine.length;     //this should not exceed CLEAR_LINE
 
        WScript.Stdout.Write( strLine );
 
        if ( complete >= 100 )
        {
            // Delete the % display so that next line is clean.
            WScript.Stdout.Write( CLEAR_LINE );
            break;
        }
 
        WScript.Sleep( GUEST_OS_SLEEP_RESOLUTION );
    }
}

Open in new window

0
 
mstraleyAuthor Commented:
I believe this is what I was looking for, thank you for your help.
0

Featured Post

NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now