我想創建簡單的 ping 演算法來使用 Powershell 連續查詢遠程 SQL Server 實體。我的目標是檢測最有可能由防火墻規則更改引起的小型網路中斷。
while($true)
{
$ClientDate = Get-Date
$ServerDate = Invoke-Sqlcmd -Query "SELECT SYSDATETIME() AS [Time];" -ServerInstance "RemoteSQLInstance" -ConnectionTimeout 1
"Client = " $ClientDate "| Server = " $ServerDate.Time
Start-Sleep -Seconds 1
}
當實體可訪問時,提到的代碼作業得很好,但是當實體變得不可訪問時,Powershell 需要標準的 30 秒才能輸出錯誤訊息(建立與 SQL Server 的連接時發生與網路相關或特定于實體的錯誤) . 我希望通過引入 -ConnectionTimeout 1 引數,我可以強制錯誤訊息立即出現(1 秒后)而不是默認的 30 秒,但它不會更改默認的 30 秒超時。我猜這個引數只有在通過網路到達 SQL Server 實體并且 SQL Server 未能在給定時間內建立握手時才有效。
如何告訴 Powershell 在遠程連接到 SQL 實體時不要等待默認的 30 秒?或者一般的任何遠程連接?
uj5u.com熱心網友回復:
在某些情況下, cmdlet似乎不支持該-ConnectionTimeout引數。Invoke-SqlCmd
過去,我通過滾動我自己的函式來解決這個問題,該函式直接使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/495220.html
