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