You can start SQL Server Configuration Manager locally to connect to a remote SQL Server using the registered server list in SSMS.
If you right-click on a Server in SSMS 2012 you can only connect to a SQL Server 2012 instance.
To remotely connect to any SQL Server simply run one of the following:-
SQL 2008
SQLServerManager10.msc /32 /COMPUTER:Your Server Name here
SQL 2012
SQLServerManager11.msc /32 /COMPUTER:Your Server Name here
Or you can use this Powershell script which checks using WMI what SQL namespaces are installed and then launches the appropriate version of the configuration manager...
{code lang:powershell lines:true hidden:false showtitle:false}param (
[Parameter(Mandatory = $true)][string]$serverName
)
function FindTheSQLNameSpace() {
return (Get-WMIObject -ComputerName $serverName -NameSpace root\Microsoft\SQLServer -Class "__NAMESPACE" `
-Filter "__RELPATH Like '%ComputerManagement%'" | Sort-Object -Property "Name" -Descending | Select Name -First 1);
}
$nameSpace = (FindTheSQLNameSpace $serverName);
$cmd="";
switch ($nameSpace.Name)
{
"ComputerManagement11" {$cmd = "SQLServerManager11.msc"}
"ComputerManagement10" {$cmd = "SQLServerManager10.msc"}
default {$cmd = "SQLServerManager.msc"}
}
$cmd += " /32 /COMPUTER:$($serverName)";
Invoke-Expression "& $($cmd)";
{/code}
[Parameter(Mandatory = $true)][string]$serverName
)
function FindTheSQLNameSpace() {
return (Get-WMIObject -ComputerName $serverName -NameSpace root\Microsoft\SQLServer -Class "__NAMESPACE" `
-Filter "__RELPATH Like '%ComputerManagement%'" | Sort-Object -Property "Name" -Descending | Select Name -First 1);
}
$nameSpace = (FindTheSQLNameSpace $serverName);
$cmd="";
switch ($nameSpace.Name)
{
"ComputerManagement11" {$cmd = "SQLServerManager11.msc"}
"ComputerManagement10" {$cmd = "SQLServerManager10.msc"}
default {$cmd = "SQLServerManager.msc"}
}
$cmd += " /32 /COMPUTER:$($serverName)";
Invoke-Expression "& $($cmd)";
{/code}
{jcomments lock}