Software-Review: Quest PowerGUI

Aus der Notwendigkeit heraus, das mittlerweile einige Sachen anstehen bzw. anstanden, die per Powershell zu automatisieren sind, hab ich mich auf die Suche nach einem ansprechenden Powershell-Editor begeben und bin auf dieser Suche dann auch fündig geworden: Quest PowerGUI

Herunterzuladen gibt’s das ganze hier: PowerGUI Downloads

4

Während der Installation können die zu installierenden Module ausgewählt werden. Für die Active Directory, Network und Exchange 2007 Module (wahrscheinlich auch für die Module des Operations Manager 2007, aber nicht explizit getestet), müssen die entsprechenden Quest Management Shells heruntergeladen werden, was der Installer aber vor dem Fortsetzen der Installation sofort anbietet.

Im Anschluss an die Installation findet sich im Startmenü ein neuer Ordner “PowerGUI”, in welchem die Links zur PowerGUI und zum PowerGUI Script Editor liegen.

Beim starten von PowerGUI präsentiert sich eine aufgeräumte Oberfläche, welche die mit installierten Erweiterungen als entsprechenden Baum auf der linken Seite darstellt, hier beispielhaft für meine lokalen Netzwerkverbindungen:

PowerGUI GUI

Für mich selber viel spannender ist allerdings der PowerGUI Script Editor.

Script Editor

Features des  Editors in kurzer Abfolge:

  • Syntaxhighlighting
  • Intellisense
  • Debugger
  • vorgefertigte Snippets für Standardfunktionen wie foreach usw.

Meine Meinung nach den ersten Stunden mit der PowerGUI und dem zugehörigen Script Editor: Ein gutes, ausgereiftes Freeware-Tool, dessen Download und Installation sich auf jeden Fall lohnt, wenn man öfter oder viel mit der Powershell unterwegs ist und in größerem Umfang scripten muss.

Bei PowerGUI.org finden sich gute Tutorials für Neueinsteiger, ein noch recht überschaubares Forum sowie ein kleines, aber feines Wiki.

Viel Spaß beim selber testen und erkunden.

/Edit: Leider gab es ein paar Probleme mit den im Beitrag eingebetteten Bildern, daher jetzt nochmal die Korrektur. Bitte entschuldigt die Unannehmlichkeiten.

Whitepaper zum Thema Powershell-Support in MS SQL Server 2008

SQL Server MVP Allan White (http://sqlblog.com/blogs/allen_white/default.aspx) hat bei / mit MS ein Whitepaper mit dem Titel “Understandig and Using PowerShell Support in SQL Server 2008” veröffentlicht. Er beschäftigt sich darin mit Themen wie SQL Server Management Objects, Backup und Agent Jobs.

Das Whitepaper ist hier zu finden: Understanding and Using PowerShell Support in SQL Server 2008

Hinweis: Um die Coding-Beispiele nachvollziehen zu können, muss das entsprechende PowerShell Snapin eingerichtet sein. Dies kann in einem meiner älteren Artikel nochmal nachgelesen werden: Einrichten der SQL Server Powershell

Einrichten der SQL Server Powershell

Eines der neuen Features des SQL Server 2008 ist die Möglichkeit, die Powershellumgebung zu nutzen. Damit ist es möglich, von einer konfigurierten Powershell auf die folgenden SQL Server Versionen zuzugreifen:

  • SQL Server 2008
  • SQL Server 2005 (min. SP 2)
  • SQL Server 2000 (min. SP 4)

Selbstverständlich kann bei einer Verbindung auf eine Version vor SQL Server 2008 nur der entsprechende Funktionsumfang der jeweiligen, verbundenen SQL Server Version genutzt werden.

In diesem Beitrag möchte ich kurz darauf eingehen, wie man diese einrichtet.

Man öffne eine jungfräuliche Powershell, navigiere in das Verzeichnis der Wahl (im besten Falle ein separates für die PS-Konfiguration, was ich mir vorher anlege) und führe in nacheinander die beiden folgenden Kommandos aus:

add-pssnapin SqlServerProviderSnapin100
add-pssnapin SqlServerCmdletSnapin100

Damit haben wir die beiden verfügbaren SQL Server PS-Snapins in unsere aktuelle Konsole hinzugefügt und könnten damit sofort losarbeiten. Allerdings wären diese Einstellung mit der Beendigung der Powershell-Session wieder verloren. Um diese wiederverwenden zu können, lassen sich die aktuellen Powershellkonfigurationen exportieren. Damit können wir uns eine SQL Server-Powershellkonfiguration herstellen. Durchgeführt wird das mit dem folgenden Befehl:
Export-Console -Path <Dateiname>.psc1

Die Konfig-Datei welche wir erhalten, sieht von innen folgendermaßen aus:

[CODE]
<?xml version="1.0" encoding="utf-8"?>
<PSConsoleFile ConsoleSchemaVersion="1.0">
<PSVersion>1.0</PSVersion>
<PSSnapIns>
<PSSnapIn Name="SqlServerProviderSnapin100" />
<PSSnapIn Name="SqlServerCmdletSnapin100" />
</PSSnapIns>
</PSConsoleFile>

[/CODE]

BTW: Die Wiederverwendung "meiner" Konfig erlaube ich hiermit ausdrücklich. 😉 Eine SQL Server Powershell kann ich dann mit dem folgenden Kommando starten:
powershell.exe  -psconsolefile <Dateiname>.psc1

Herzlichen Glückwunsch, die SQL Server Powershell liegt uns zu Füßen. Und wo liegt jetzt der erste praktische Nutzen dieser Einrichtung? Vorrausgesetzt das wir mit dem aktuell angemeldeten Benutzer die notwendigen Berechtigungen haben, könnten wir mal eben die aktuelle Version des verbundenen SQL Servers abfragen. Die Query um dies per SQL zu tun sollte im allgemeinen bekannt sein:
Select @@Version

Dies ganze werden wir jetzt in ein PS-Kommando verpacken und ausführen:
invoke-sqlcmd -Query "Select @@version"

Auf meiner aktuellen SQL Server Testmaschine erhalte ich dabei das folgende Resultset zurück:
Microsoft SQL Server 2008 (RTM) – 10.0.1600.22 (Intel X86)