Da ich kein Fan von CSV Datein bin und gerne alles in einer Datenbank habe, habe ich folgende Funktion geschrieben, sodass ich nicht zig mal in einem Skript dieselben Zeilen wiederholen muss.
function Query-SQL {
<#
.SYNOPSIS
.DESCRIPTION
.PARAMETER Table
.EXAMPLE
PS C:\>
PS C:\> Query-SQL -SqlQuery "select * from dbo.TestTable" -SQLServer $SQLServer -SQLUser $SQLUser -SQLPwd $SQLPwd -SQLDBName $SQLDBName
.NOTES
Author: Joachim Armbruster
Blog : http://PowerShell24.de/
#>
Param
(
[parameter(Mandatory=$true)]$SqlQuery,
$SQLServer,
$SQLUser,
$SQLPwd,
$SQLDBName
)
# =================================================================================================
# =================================================================================================
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; uid = $SQLUser; pwd = $SQLPwd; Database = $SQLDBName; Integrated Security = False"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet) | Out-Null
$SqlResult = $DataSet.Tables[0].Rows
$SqlConnection.Close()
return $SqlResult
}
# SQL-Daten der Datenbank $SQLServer = "192.168.0.101" $SQLUser = "DB-Reader" $SQLPwd = "P@ssw0rd" $SQLDBName = "ReportDB" $SqlQuery = "SELECT * FROM dbo.Accounts" $Beispiel = Query-SQL -SQLServer $SQLServer -SQLUser $SQLUser -SQLPwd $SQLPwd -SQLDBName $SQLDBName -SqlQuery $SqlQuery