Hi~ I am writing a powershell script to connect to an SQL 2012 to run a query. but seems it cant connect:
Add-Type -Path 'C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Smo\11.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.Smo.dll'
$today=(Get-Date).ToString('MM-dd-yyyy')
$log='C:\'+$today+'.log'
$filepath='C:\'+$today+'.csv'
$filepath2='C:\'+$today+'.xls'
$finalDataSet = New-Object System.Data.Datatable
get-content 'C:\SLDATA\Serverlist.txt' | foreach-object {
$SQLServer=$_
$SQLDBName = "master"
$SqlQuery = "select @@version"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = SSPI"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
trap
{
"Cannot connect to $SQLServer" | Out-file $log
continue
}
$SqlConnection.open()
if ($SqlConnection.state -eq 'Open')
{
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
#$DataSet = New-Object System.Data.DataSet
$Datatable = New-object System.Data.Datatable
$SqlAdapter.Fill($datatable)
$SqlConnection.Close()
$finalDataSet.Merge($datatable)
clear
#$DataSet.Tables[0] | select name
#$finaldataset.Tables.add($datatable)
#$finaldataset
}
}
$finalDataSet | sort-object FileSizeMB -descending | export-csv $filepath -force -notypeinformation
I am wondering if that's my SMO is too old to connect to SQL 2012. Connect to SQL 2005 and 2008 are ok.