Um mittels Powershell Daten von einem SQL-Server auszulesen und diese anschließend auszuwerten, wurde die folgende Funktion „Get-SQLData“ geschrieben.
Die geschriebene Funktion setzt keine SQL-Module voraus, sondern lediglich den SQL-Client aus dem .NET Framework Data Provider für SQL-Server welcher ab .NET Framework 4.5 verfügbar ist.
Die Parameter $Server, $Datenbank und $Query sind Pflicht und müssen somit beim Aufruf der Funktion angegeben werden.
Function Get-SQLData {
param(
[Parameter(Mandatory=$true)]$Server,
[Parameter(Mandatory=$true)]$Database,
$User,
$Password,
[Parameter(Mandatory=$true)]$Query
)
# *** SQL-String ***
$ConnectionString = "Server=$Server ;uid=$User; pwd=$Password; Database=$Database; Integrated Security = False;"
$Connection = New-Object System.Data.SqlClient.SqlConnection
$Connection.ConnectionString = $ConnectionString
# *** Query ***
$Command = $Connection.CreateCommand()
$Command.CommandText = $Query
$adapter = New-Object -TypeName System.Data.SqlClient.SqlDataAdapter $Command
$dataset = New-Object -TypeName System.Data.DataSet
$adapter.Fill($dataset)
$dataset.Tables[0]
}
Ein Aufruf der Funktion würde beispielweise so aussehen:
$Objekt = Get-SQLData -Server "Beispielserver" -Database "Beispieldatenbank" -Query "SELECT * FROM Beispielname"
Als Resultat erhält man ein eigenes Objekt, pro Record wird eine eigene Zeile geschrieben und pro Spalte auch eine entsprechende Objekt-Eigenschaft. Auf die jeweilige Objekt-Eigenschaft wird so zugegriffen.
$Objekt.Eigenschaft