function Invoke-SQL {
param(
[Parameter(Mandatory)]
[string]$dataSource,
[Parameter(Mandatory)]
[string]$database,
[Parameter(Mandatory)]
[string]$sqlCommand
)
Begin {
$connectionString = “Data Source=$($dataSource); Integrated Security=SSPI; Initial Catalog=$($database)”
$retVal = “”
$connection = New-Object system.data.SqlClient.SQLConnection($connectionString)
$command = New-Object system.data.sqlclient.sqlcommand($sqlCommand,$connection)
$command.CommandTimeout = 0
try {
$retVal = $connection.Open()
} catch {
print “Invoke-SQL: connectionString=[$($connectionString)] Error=[$($Error[0])] retVal=[$($retVal)]”
}
$adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command
$dataset = New-Object System.Data.DataSet
try {
$retVal = $adapter.Fill($dataSet)
} catch {
print “Invoke-SQL: sqlCommand=[$($sqlCommand)] Error=[$($Error[0])] retVal=[$($retVal)]”
}
$connection.Close() > $null
$dataSet.Tables
}
}