我们使用 powershell 检查我们的 SQL 服务器。该脚本遍历文本文件中的所有服务器,并在可以连接时将输出发送到文本文件。但是当它无法连接时,它会在 PS 窗口中显示错误并跳转到列表中的第二个服务器。问题是,当我们安排此脚本运行(无人值守)时,我们不会在文本文件中收到任何失败的报告。我真正想要它做的是....尝试连接到 SQL 服务器,如果可以,则将输出发送到文件,如果不能,则将“无法连接到服务器名称”之类的内容写入文件。以下是我用作示例的脚本
function checkSQLRestart([string] $Hostname )
{
$con="server=$Hostname;database=master;Integrated security=sspi"
$da=New-Object System.Data.SqlClient.SqlDataAdapter ("
declare @ServerRestartDate datetime
set @ServerRestartDate = (select crdate from master..sysdatabases where dbid=2)
if(@ServerRestartDate>GETDATE()-1)
print @@servername +' was restarted in last 24 hours. Restart date/time = '+cast(@ServerRestartDate as varchar(20))
",$con)
$dt=New-Object System.Data.DataTable
$da.fill($dt)|Out-Null
$svr
$dt|Format-table -AutoSize |Out-File $OutputFile -Append
}
我尝试使用类似的东西
if($da -eq -1)
{
write-host "failed to connect"
}
但它没有用。
请问有什么帮助吗?
您需要尝试/捕获异常。