Zugriff auf MySQL-Datenbank mit der Powershell

Datenbankverbindungen lassen sich mit der Powershell ganz einfach aufbauen, auch zu Nicht-Microsoftprodukten, wie hier zu einem MySQL-Server.

Wir brauchen für MySQL nur die Datei “mysql.data.dll”, welche z.B. in dem Paket “Windows Binaries, no installer (ZIP)” enthalten ist. Der Link führt hier zur Version 5.2 von MySQL. Diese Datei einfach entpacken und in das Verzeichnis neben das Powershellskript legen.

Das WPS-Skript könnte dann wie folgt aussehen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[void][system.reflection.Assembly]::LoadWithPartialName("MySql.Data")
 
# DB-Verbindung aufbauen
$strConnectionString = "server=strServer; port=3306; uid=strBenutzer; pwd=strKennwort; database=strDatenbank; Pooling=False"
$objConnection = New-Object MySql.Data.MySqlClient.MySqlConnection($strConnectionString)
$objConnection.Open()
 
# Objekte MySqlCommand und MySqlDataAdapter erzeugen
$strStatement = "SELECT * FROM kunden"
$objCommand = New-Object MySql.Data.MySqlClient.MySqlCommand($strStatement, $objConnection)
$objDataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($objCommand)
 
# Dataset erzeugen
$objDataSet = New-Object System.Data.DataSet
$objDataAdapter.Fill($objDataSet) > $null
 
# Ergebnis ausgeben
$Ergebnis = $objDataSet.Tables[0]
$Ergebnis | Format-Table *

Bezeichnung eines Laufwerkes ändern

Bei mehreren Partitionen oder Netzlaufwerken ist es meist sinnvoll, wenn man diesen eindeutige Bezeichnungen gibt. Mit der Powershell ändert man diese Drive Labels wie folgt:

1
2
$Laufwerk = New-Object System.Io.DriveInfo("D")
$Laufwerk.VolumeLabel = "Daten-HD"

Hat man die “PowerShell Community Extensions” installiert, so geht das mit dem Commandlet “Set-VolumeLabel” noch einfacher:

1
Set-VolumeLabel "D:" "Daten-HD"

Freien Speicher eines Laufwerkes anzeigen

Hier habe ich gezeigt wie man Laufwerksinformationen per WMI abfragen kann. Das geht mit der Powershell und den .Net-Klassen aber auch anders:

1
2
$Laufwerk = New-Object System.IO.DriveInfo("E")
$Laufwerk.TotalFreeSpace

Hier wird der freie Speicher des Laufwerkes “E:” angezeigt.

Mehr Informationen:
“System.IO.DriveInfo” bietet noch mehr Informationen zu einem Laufwerk.
Welche? Einfach folgendes eingeben:

1
New-Object System.Io.DriveInfo("E") | Get-Member

Internet Explorer mit Webseite öffnen

Den Internet Explorer mit einer bestimmten Webseite öffnen… nichts leichter als das. Hier nehmen wir uns ein Com-Objekt zur Hilfe.

1
2
3
$objWebClient = New-Object -com "InternetExplorer.Application"
$objWebClient.Navigate("http://www.google.de")
$objWebClient.visible = $true

In der ersten Zeile wird eine neue Instanz des “Internet Explorers” erstellt. Anschließend mit diesem Objekt die Webseite “google.de” angesurft und dann das Fenster sichtbar gemacht.