Powershell 命令确认 SQL Server Smo.Server 对象有效

Powershell 命令确认 SQL Server Smo.Server 对象有效

我在 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

什么也没有返回。经过大约 20 分钟的研究,我意识到在创建 $server 对象时忘记包含计算机名称。

代码应该是:

$sql_instance = "MYSERVER\SQLEXPRESS"

我的问题是:如何验证创建的服务器对象实际上代表有效的 SQL Server 实例?

我想象这样的事情:If $server.IsNotValid -eq "True" Then Throw Exception

答案1

$server.ConnectionContext.Connect()

如果您无法连接到服务器,将会出错。

答案2

据我所知,您无法测试与 SQL 服务器的连接,直到您尝试检索属性(或明确与服务器连接建立连接)$conn = new-object Microsoft.SqlServer.Management.Common.ServerConnection

我现在无法测试,但我相信如果连接调用失败,您将收到错误。如果没有,您应该尝试检索任何属性。

相关内容