//*************************************************// // 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 } //*************************************************//