Comando Powershell para confirmar se o objeto Smo.Server do SQL Server é válido

2

Eu tinha o seguinte código em um script do PowerShell:

$sql_instance = "SQLEXPRESS"
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') 
$server = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $sql_instance
Write-Host $server.InstanceName

E nada foi retornado. Após cerca de 20 minutos de pesquisa, percebi que esqueci de incluir o nome do computador ao criar o objeto $ server.

O código deveria ter sido:

$sql_instance = "MYSERVER\SQLEXPRESS"

A minha pergunta é: como posso verificar se o objeto do servidor criado está realmente representando uma instância válida do SQL Server?

Eu imagino algo como: If $server.IsNotValid -eq "True" Then Throw Exception

    
por 8kb 01.09.2010 / 03:35

2 respostas

4
$server.ConnectionContext.Connect()

será erro se você não conseguir se conectar ao servidor.

    
por 01.09.2010 / 14:05
1

Até onde eu sei, você não pode testar uma conexão com o SQL Server até tentar recuperar uma propriedade (ou fazer explicitamente uma conexão com a conexão do servidor) $conn = new-object Microsoft.SqlServer.Management.Common.ServerConnection

Não posso testá-lo agora, mas acredito que você receberá um erro se a chamada de conexão falhar. Caso contrário, você deve tentar recuperar alguma propriedade.

    
por 01.09.2010 / 03:59