/* BCErrorCheck.js Connect to build console machine and query current status. Optionally query for more details (slower). Copyright 2000 - Microsoft Author: Joe Porkka 6/2/00 */ function MachineInfo() { this.strName = ''; this.strIdentity = ''; } var MAX_MACHINENAME_LENGTH = 32; var g_aMachines; var g_fVerbose; Error.prototype.toString = Error_ToString; ParseArguments(WScript.Arguments); main(g_aMachines, g_fVerbose); WScript.Quit(0); function Error_ToString() { var i; var str = 'Exception('; for(i in this) { str += i + ": " + this[i] + " "; } return str + ")"; } // PadString(n, cLength) function PadString(str, cLength) { while (str.length < cLength) str += ' '; if (str.length > cLength) str = str.slice(0, cLength); return str; } // MyEval(expr) // evaluating uneval'ed objects creates a bunch of junk local variables. // by putting the eval call in a little subroutine, we avoid keeping those // locals around. function MyEval(expr) { try { return eval(expr); } catch(ex) { WScript.Echo("caught an exception: " + ex); WScript.Echo("evaluating " + expr); throw ex; } } function ParseArguments(Arguments) { var aMachines = new Array(); var fVerbose = false; var strArg; var chArg0; var chArg1; var argn; var fIsMachine = true; var machine; for(argn = 0; argn < Arguments.length; argn++) { strArg = Arguments(argn); chArg0 = strArg.charAt(0); chArg1 = strArg.toLowerCase().slice(1); if (chArg0 != '-' && chArg0 != '/') { if (fIsMachine) { machine = new MachineInfo(); machine.strMachine = strArg; } else { machine.strIdentity = strArg; aMachines[aMachines.length] = machine; } fIsMachine = !fIsMachine; } else { // Currently, no options switch(chArg1) { case 'v': fVerbose = true; break; default: Usage(); break; } } } if (aMachines.length == 0) Usage(); if (!fIsMachine) // we have computer name but don't have an identity Usage(); g_aMachines = aMachines; g_fVerbose = fVerbose; return true; } function Usage() { WScript.Echo(''); WScript.Echo('Usage: BCErrorCheck [-v] machine identity [machine identity...]'); WScript.Echo(' -v = verbose'); WScript.Quit(1); } function main(aMachines, fVerbose) { var i; for (i = 0; i < aMachines.length; ++i) { try { CheckMachine(aMachines[i].strMachine, aMachines[i].strIdentity, fVerbose); } catch(ex) { WScript.Echo("Error while checking " + aMachines[i].strMachine + "\\" + aMachines[i].strIdentity + ":" + ex); } } } function GetPostBuildIdentity(RemoteObj) { var i; var objEnviron = RemoteObj.Exec('getpublic', 'PrivateData.objEnviron'); objEnviron = MyEval(objEnviron); for (i=0; i