A real developer would do it via code, not use some namby-pamby UI :)
Save the following to a file SqlServerPort.
js and run from command prompt with:
CScript SqlServerPort.
js
Code:
// View and change SQL Server's TCP port number
function getSqlServer(Name, User, Password)
{
var oServer = new ActiveXObject("SQLDMO.SQLServer");
oServer.Connect(Name, User, Password);
return oServer;
}
function getTcpPortNumber(Server)
{
return Server.Registry.TcpPort;
}
function setTcpPortNumber(Server, PortNumber)
{
Server.Registry.TcpPort = PortNumber;
}
function tryClose(Server)
{
try
{
Server.Close();
}
catch(e)
{
//
}
}
function showUsage()
{
WScript.echo("CScript SqlServerPort.js SqlServerName UserName Password [New Port Number]");
}
function main()
{
var colArgs = WScript.Arguments;
if (colArgs.length < 3)
{
showUsage();
WScript.quit();
}
try
{
var oServer = getSqlServer(colArgs(0), colArgs(1), colArgs(2));
}
catch(e)
{
WScript.echo("Unable to connect to server.\n" + e.message + " (" + e.number + ")");
WScript.quit();
}
try
{
var iPortNumber = getTcpPortNumber(oServer);
WScript.echo("Server '" + colArgs(0) + "' using TCP port number: " + iPortNumber);
}
catch(e)
{
WScript.echo("Unable to find port number.\n" + e.message + " (" + e.number + ")");
tryClose(oServer);
WScript.quit();
}
if (colArgs.length == 4)
{
try
{
iNewPortNumber = Math.floor(colArgs(3));
if (!isNaN(iNewPortNumber) && iNewPortNumber > 0 && iNewPortNumber < 65536)
{
setTcpPortNumber(oServer, iNewPortNumber);
WScript.echo("TCP port now set to: " + iNewPortNumber);
}
else
{
WScript.echo("Invalid port number, port remains at: " + iPortNumber);
}
}
catch(e)
{
WScript.echo("Unable to set port number to '" + colArgs(3) + "'.\n" + e.message + " (" + e.number + ")");
}
}
tryClose();
WScript.echo("Done.");
WScript.quit();
}
main();
Only for SQL Server 2000, the username/password need to be that of a sysadmin.
--
Joe