snmp_mib_archive/UpdateMibs.js
Heston Snodgrass 89bf4b016e initial commit
2016-12-15 15:03:18 -07:00

339 lines
7.3 KiB
JavaScript
Executable File

var oShell = new ActiveXObject('Wscript.Shell');
var oFS = new ActiveXObject('Scripting.FileSystemObject');
var ForReading = 1;
var ForWriting = 2;
// User downloads zip file from web
// User unzips to a directory
// User executes in the directory Mib71Update
// Use the WScript object to output message
//function Msg(sString)
function Msg(sString)
{
WScript.Echo(sString);
}
function ErrMsg(sFncName, err)
{
Msg(sFncName + '- Error: ' + err.number + ' ' + err.description);
}
function IsValidKey(sKey)
{
var bRetVal = false;
try
{
// no such key -2147024894 Invalid root in registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Compaq\Insight Manager XE\3.22\".
oShell.RegRead(sKey);
bRetVal = true;
}
catch(err)
{
Msg(err.number + ' ' + err.description);
}
return bRetVal;
}
//
// FindFiles
//
function FindFiles(sFolder,sExt,nRecurse)
{
var FileList = new Array();
try
{
var f = oFS.GetFolder(sFolder);
var fc = new Enumerator(f.files);
for (; !fc.atEnd(); fc.moveNext())
{
if (sExt == oFS.GetExtensionName(fc.item().Path))
{
FileList.push(fc.item().Name);
}
}
if (nRecurse-- > 0)
{
// recurse into subdirectories
fc = new Enumerator(f.SubFolders);
for (; !fc.atEnd(); fc.moveNext())
{
FileList += FindFiles(fc.item(), sExtnRecurse);
}
}
}
catch (err)
{
ErrMsg('FindFiles ', err);
}
return FileList;
}
//
// MakeDir
//
function MakeDir( sDest )
{
if( oFS.FolderExists( sDest ) )
{
return true;
}
oFS.CreateFolder( sDest );
return oFS.FolderExists( sDest );
}
//
// CopyFiles
//
function CopyFiles(sSrcFiles, sDest)
{
var bRetVal = false;
try
{
oFS.Copyfile( sSrcFiles, sDest );
bRetVal = true;
}
catch (err)
{
ErrMsg('CopyFiles ', err);
}
return bRetVal;
}
//
// moveFile
//
function MoveFile( sSrcFile, sDest)
{
var bRetVal = false;
try
{
if( oFS.FileExists(sSrcFile) )
{
oFS.CopyFile( sSrcFile, sDest );
oFS.DeleteFile( sSrcFile );
bRetVal = true;
}
}
catch (err)
{
ErrMsg('MoveFile ', err);
}
return bRetVal;
}
//
// ServiceRunning
//
function ServiceRunning( sServiceName )
{
return true;
var bRetVal = false;
try
{
var sTempFile = oFS.GetTempName();
oShell.Run('cmd /c net start > ' + sTempFile,0,true);
oFile = oFS.OpenTextFile(sTempFile,ForReading);
var sResults = oFile.ReadAll();
oFile.Close();
oFS.DeleteFile(sTempFile);
if (-1 != sResults.indexOf(sServiceName))
{
bRetVal = true;
}
}
catch(err)
{
ErrMsg('ServiceRunning ', err);
}
return bRetVal;
}
//
// PerformNimCmd
//
function PerformNimCmd(sCmd, sRunDir)
{
var sCmdArgs = 'cmd /c ' + sRunDir.charAt(0) + ': && cd ' + sRunDir + ' && ' + sCmd;
var oExec = oShell.Exec(sCmdArgs);
var oStdOut = oExec.StdOut;
while( !oStdOut.AtEndOfStream )
{
WScript.Echo(oStdOut.ReadLine());
}
var oStdErr = oExec.StdErr;
while( !oStdErr.AtEndOfStream )
{
WScript.Echo(oStdErr.ReadLine());
}
}
//
// UpdateNimbusMibs
//
function UpdateNimbusMibs( sSrcDir, sDestDir )
{
var bRetVal = false;
try
{
if (sDestDir.length)
{
Msg('\nCopying all mib files to ' + sDestDir + '\\mibs\\');
CopyFiles( sSrcDir + '\\*.mib', sDestDir + '\\mibs\\');
Msg('\nCopied all mib files successfully....');
Msg('\nCopying all cfgs files to ' + sDestDir + '\\mibs\\');
CopyFiles(sSrcDir + '\\*.cfg',sDestDir + '\\mibs\\');
Msg('\nCopied all cfg files successfully....');
}
var changedcfg_fh = oFS.OpenTextFile('modifiedcfgs.list', ForReading);
Msg('\nFollowing MIBs may have been already registered in HP SIM, so un-installing them.');
Msg('If your SIM does not have these MIBs already installed, then you may get an error message while un-installing it, which you can ignore.');
while (!changedcfg_fh.AtEndOfStream)
{
var line2 = changedcfg_fh.ReadLine();
var lower2 = line2.toLowerCase();
var idx = lower2.indexOf('.cfg');
var mibfilename = line2.substring(0,idx) + '.mib';
PerformNimCmd('mxmib -d ' + mibfilename, sDestDir);
}
var main_fh = oFS.OpenTextFile('cfgstoimport.list', ForReading);
while (!main_fh.AtEndOfStream)
{
// The following is an example of how to move files without importing them
// with MxMib
// MoveFile(sSrcDir + '\\bladetype4-network.cfg', sDestDir + '\\mibs\\');
var line = main_fh.ReadLine();
var lower = line.toLowerCase();
var s = lower.indexOf('.cfg');
if (s != -1)
{
PerformNimCmd('mxmib -a ' + line, sDestDir);
}
}
bRetVal = true
}
catch (err)
{
ErrMsg('UpdateNimbusMibs() : Systems Insight Manager ', err);
}
main_fh.Close();
return bRetVal;
}
//
// HandleNimbus - This script will run in a 32 bit environment
//
function Handle32Nimbus()
{
var sServiceName = 'HP Systems Insight Manager';
var bRetVal = false;
try
{
// Get the 32 bit path
var sRootDir = oShell.RegRead('HKEY_LOCAL_MACHINE\\SOFTWARE\\Hewlett-Packard\\Systems Insight Manager\\Settings\\InstallPath');
if( sRootDir != null )
{
if (ServiceRunning(sServiceName) )
{
bRetVal = UpdateNimbusMibs(oShell.CurrentDirectory, sRootDir);
if (bRetVal)
{
Msg('MIB Update for Management CD completed successfully.');
}
else
{
Msg('System Insight Manager MIB Update not Successful');
}
}
else
{
Msg('Systems Insight Manager: No Mib update, System Insight Manger service not running');
}
}
else
{
Msg('Systems Insight Manager: No Mib update, System Insight Manger is not installed');
}
}
catch(err)
{
ErrMsg('Systems Insight Manager ', err);
Msg('Systems Insight Manager: No Mib update, System Insight Manger service not running');
}
}
//
// Handle64Nimbus - This script will run in a 64 bit environment
//
function Handle64Nimbus()
{
var sServiceName = 'HP Systems Insight Manager';
var bRetVal = false;
try
{
// Get the HP SIM x64 path
var sRootDir = oShell.RegRead('HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Hewlett-Packard\\Systems Insight Manager\\Settings\\InstallPath');
if( sRootDir != null )
{
if (ServiceRunning(sServiceName) )
{
bRetVal = UpdateNimbusMibs(oShell.CurrentDirectory, sRootDir);
if (bRetVal)
{
Msg('System Insight Manager MIB Update completed');
}
else
{
Msg('System Insight Manager MIB Update not Successful');
}
}
else
{
Msg('Systems Insight Manager: No Mib update, System Insight Manger service not running');
}
}
else
{
Msg('Systems Insight Manager: No Mib update, System Insight Manger is not installed');
}
}
catch(err)
{
ErrMsg('Systems Insight Manager ', err);
Msg('Systems Insight Manager: No Mib update, System Insight Manger service not running');
}
}
function CheckFor64Bit()
{
var bRetVal = false;
try
{
// Get the HP SIM x64 path
var sRootDir = oShell.RegRead('HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Hewlett-Packard\\Systems Insight Manager\\Settings\\InstallPath');
Msg('Systems Insight Manager running in 64 bit environment');
bRetVal = true;
}
catch(err)
{
Msg('Systems Insight Manager running in 32 bit environment');
}
return bRetVal;
}
//CheckFor64Bit();
if( CheckFor64Bit())
{
Handle64Nimbus();
}
else
{
Handle32Nimbus();
}