要求:以下代码将提供实例名称和数据库详细信息&数据库状态来自路径SQL_Servers.txt
中C:\PowerSQL\
中可用的实例或服务器列表。
对于少数服务器,它无法连接&抛出错误。我想将这些失败的尝试服务器名称保存在单独的文本文件中作为Log.txt。
ForEach ($instance in Get-Content "C:\PowerSQL\SQL_Servers.txt")
{
Import-Module SQLPS -DisableNameChecking
Invoke-SQLcmd -Server $instance -Database master 'select @@servername as InstanceName,name as DatabaseName,state_desc as DBStatus from sys.databases' | Format-Table
}
非常感谢您的帮助。
答案 0 :(得分:0)
以下代码已满足我的要求。
Import-Module SQLPS -DisableNameChecking
ForEach ($instance in Get-Content "C:\PowerSQL\SQL_Servers.txt")
{
try {
Invoke-SQLcmd -Server $instance -Database master 'select @@servername as InstanceName,name as DatabaseName,state_desc as DBStatus from sys.databases'
$results += New-Object PSObject -Property $instanceinfo
} catch {
Add-Content "C:\PowerSQL\ErrorLog.txt" $instance
}
}
$results | export-csv -Path C:\PowerSQL\SQLServerInstance.csv -NoTypeInformation