У меня есть следующий код PowerShell:
function Get-SmoConnection
{
param
([string] $serverName = "", [int] $connectionTimeout = 0)
if($serverName.Length -eq 0)
{
$serverConnection = New-Object `
Microsoft.SqlServer.Management.Common.ServerConnection
}
else
{
$serverConnection = New-Object `
Microsoft.SqlServer.Management.Common.ServerConnection($serverName)
}
if($connectionTimeout -ne 0)
{
$serverConnection.ConnectTimeout = $connectionTimeout
}
try
{
$serverConnection.Connect()
$serverConnection
}
catch [system.Management.Automation.MethodInvocationException]
{
$null
}
}
$connection = get-smoconnection "ServerName" 2
if($connection -ne $null)
{
Write-Host $connection.ServerInstance
Write-Host $connection.ConnectTimeout
}
else
{
Write-Host "Connection could not be established"
}
Кажется, что это работает, за исключением части, которая пытается установить время ожидания SMO-соединения. Если соединение установлено успешно, я могу убедиться, что для ServerConnection.ConnectTimeout установлено значение 2 (секунды), но когда я подставляю поддельное имя для экземпляра SQL Server, он все равно пытается подключиться к нему в течение ~ 15 секунд (что, я считаю, значение тайм-аута по умолчанию).
У кого-нибудь есть опыт установки таймаута SMO-соединения? Заранее спасибо.