//*************************************************//
// Dump_SQL_Reg.js
var oApplication = new ActiveXObject ("SQLDMO.Application");
var oServerGroups = oApplication.ServerGroups
var reReplaceXMLChars = new RegExp ("<|>|&|'","g");
var serverGroupEnum = new Enumerator(oServerGroups);
var xml = "\n\n";
// Grab the alias list (if any)
var aliaslist = getSQLAliasXML();
xml += aliaslist;
for (;!serverGroupEnum.atEnd();serverGroupEnum.moveNext())
{
oServerGroup = serverGroupEnum.item();
xml += " \n";
registeredServerEnum = new Enumerator(oServerGroup.RegisteredServers);
for (;!registeredServerEnum.atEnd();registeredServerEnum.moveNext())
{
oRegisteredServer = registeredServerEnum.item();
xml += " \n";
}
xml +=" \n";
}
xml += "";
WScript.Echo (xml);
/*
|| returns the alias on the current machine in an XML fragment
||
||
||
*/
function getSQLAliasXML()
{
var XMLFrag = ""
var hive = "HKLM";
var key = "SOFTWARE\\Microsoft\\MSSQLServer\\Client\\ConnectTo";
aAliasValues = HKLM_EnumValue(key);
if (aAliasValues != null)
{
var WshShell = WScript.CreateObject ("WScript.Shell");
var buffer = "";
XMLFrag += " \n";
for (var x=0; x < aAliasValues.length; x++)
{
buffer = WshShell.RegRead (hive + "\\" + key + "\\" + aAliasValues[x]);
XMLFrag += " \n";
}
XMLFrag += " \n";
}
return (XMLFrag);
}
/*
|| Pass path to registry Key in HKLM
|| Returns an array with the values in the key
|| null if key is not found
||
*/
function HKLM_EnumValue (regPath)
{
HKLM = 0x80000002;
sRegPath = regPath;
try
{
oLoc = new ActiveXObject("WbemScripting.SWbemLocator");
oSvc = oLoc.ConnectServer(null, "root\\default");
oReg = oSvc.Get("StdRegProv");
oMethod = oReg.Methods_.Item("EnumValues");
oInParam = oMethod.InParameters.SpawnInstance_();
oInParam.hDefKey = HKLM;
oInParam.sSubKeyName = sRegPath;
oOutParam = oReg.ExecMethod_(oMethod.Name, oInParam);
if (oOutParam.sNames != null)
return (oOutParam.sNames.toArray());
else
return (null);
}
catch(err)
{
WScript.Echo("Error occurred\nCode: " + hex(err.number) +"; Description: " + err.description);
}
}
//User-defined function to format error codes.
//VBScript has a Hex() function but JScript does not.
function hex(nmb)
{
if (nmb > 0)
return nmb.toString(16);
else
return (nmb + 0x100000000).toString(16);
}
// Strip out special chars
function XMLEncode(str)
{
return
}
//*************************************************//