Windows 7 / 8 und Windows Server 2008 R2 / 2012

PowerShell 3.0 - Die Neuerungen im Überblick

12.03.2013 von Thomas Joos
Mit Windows Server 2012 hat auch die PowerShell 3.0 offiziell Einzug gehalten - eines der wohl wichtigsten Admin-Werkzeuge. Und die neue PowerShell lässt sich auch unter Windows 7 und Windows Server 2008 R2 einsetzen. Wir haben die Neuerungen für Sie zusammengefasst.

In Windows 7 und Windows Server 2008 R2 können Sie die PowerShell 3.0 nachträglich installieren, standardmäßig verwenden Windows 7 und Windows Server 2008 R2 die PowerShell 2.0. In Windows 8 und Windows Server 2012 ist die PowerShell 3.0 vorinstalliert. Die PowerShell gehört zum Windows Management Framework 3.0, das in der finalen Version bei Microsoft zum Download bereit steht:

Download Windows Management Framework 3.0

Voraussetzung für den Einsatz in Windows 7 und Windows Server 2008 R2 ist das Service Pack 1. Für Windows XP und Windows Vista wird es die PowerShell 3.0 allerdings nicht mehr geben. PowerShell 2.0 und 3.0 lassen sich in Windows 7 und Windows Server 2008 R2 auch parallel betreiben; auf diese Weise stellt Microsoft die Kompatibilität von Skripten sicher.

Wer sich gleich intensiver mit der neuen PowerShell beschäftigen will, findet bei Microsoft eine Kurzreferenz. Zudem findet sich in der Virtual Academy des Herstellers ein Kurs für Einsteiger in die PowerShell 3.0.

Server, Remote-PowerShell und PowerShell Web Access verwalten

Die meisten neuen Serveranwendungen von Microsoft, zum Beispiel SQL Server 2012, oder die einzelnen Produkte in der System-Center-2012-Reihe setzen stark auf die PowerShell. Auch die neuen Serverdienste und -Rollen in Windows Server 2012 sowie viele Einstellungen in Windows 8 lassen sich in der PowerShell optimal verwalten. Die Zahl der CMDlets hat Microsoft auf weit mehr als 2000 erhöht.

Außerdem gibt es neue CMDlets, die Abfragen mit HTTP-Sitzungen verbinden können, zum Beispiel Invoke-WebRequest und Invoke-RestMethod. PowerShell 3.0 bietet zusätzlich noch PowerShell Web Access. Auf diese Weise lässt sich die PowerShell auch über einen Webbrowser nutzen. In diesem Fall können Sie die PowerShell auch auf Geräten nutzen, auf denen die PowerShell nicht installiert oder die nicht kompatibel zur PowerShell 3.0 sind. Die komplette Sitzung läuft dazu in einem Browser. Sie können in einer solchen Sitzung eine Verbindung zu jedem anderen Server aufbauen, wenn die PowerShell-Remote-Unterstützung auf dem entsprechenden Server aktiviert ist.

Zugriffshilfe: Installieren Sie PowerShell Web Access in Windows Server 2012.

Wie Sie die PowerShell Web Access einrichten und nutzen, zeigt Microsoft ausführlich in diesem TechNet-Artikel. PowerShell Web Access müssen Sie als Server-Feature in Windows Server 2012 über den Server-Manager installieren, damit der entsprechende Server als PowerShell-Gateway zu den anderen Servern dienen kann. Mehr Informationen dazu erhalten Sie in einem Blogbeitrag. Bei dieser Technik unterstützt Microsoft die meisten aktuellen Browser. Ab den folgenden Versionen können Sie PowerShell Web Access nutzen:

• Internet Explorer 8, 9 und 10

• Mozilla Firefox 10.0.2

• Google Chrome 17.0.963.56 für Windows

• Apple Safari 5.1.2 für Windows

• Apple Safari 5.1.2 für Mac OS

Abschalten: Die Remote-Verwaltung eines Servers über die PowerShell können Sie in der PowerShell auf dem Server aktivieren und deaktivieren.

Grundsätzlich funktioniert der Zugriff auch von Smartphones und Tablets. In diesem Fall unterstützt PowerShell Web Access die folgenden Systeme und neuere. Um Ihr Gerät zu testen, versuchen Sie einfach den Verbindungsaufbau zu einer Web Access-Sitzung.

• Windows Phone 7 and 7.5

• Google Android WebKit 3.1 Browser Android 2.2.1 (Kernel 2.6)

• Apple Safari für iPhone operating system 5.0.1

• Apple Safari für iPad 2 operating system 5.0.1

Damit Sie einen Server über die PowerShell remote verwalten können, müssen Sie die Remote-Verwaltung auf dem Server aktivieren. Dazu geben Sie auf dem entsprechenden Server den Befehl

Enable-PSRemoting -force

ein. Der Befehl aktiviert auch die Ausnahmen in der Windows-Firewall. Mit

Disable-PSRemoting -force

können Sie die Remote-Verwaltung eines Servers über die PowerShell wieder deaktivieren.

Skripte und Aufgaben mit der PowerShell

Eine der wichtigsten Neuerungen der PowerShell 3.0 ist die Unterstützung für Skriptbefehle die sehr lange andauern, zum Beispiel zur Wartung, Datensicherung oder Verteilung von Anwendungen. Microsoft hat dazu Funktionen der Windows Workflow Foundation (WWF) in die PowerShell integriert. Diese Technik erlaubt auch das parallele Ausführen mehrerer Befehle. Aktionen lassen sich in Abhängigkeit voneinander setzen und mit Bedingungen konfigurieren. Allerdings ist dieser Bereich ein wenig komplexer zu bedienen.

Ablaufplanung: Sie können zeitgesteuerte Skripts in Windows Server 2012 verwenden.

Sitzungen über das Netzwerk lassen sich trennen und wieder erneut aufbauen. Dazu gibt es die beiden neuen CMDlets Disconnect-PSSession und Connect-PSSession. Auch das Rechtemodell hat Microsoft verbessert und eine Delegierung von Berechtigungen integriert, um Benutzer mit weniger Rechten das Ausführen von Skripten zu erlauben.

PowerShell-Aufgaben lassen sich in der PowerShell 3.0 auch zeitgesteuert starten. Das geht zwar auch mit der PowerShell 2.0 eingeschränkt, allerdings müssen Sie dazu die Aufgabensteuerung in Windows Server 2008 R2 oder Windows 7 verwenden. In der neuen PowerShell können Sie die entsprechenden Einstellungen direkt im Skript vornehmen, ohne auf die Aufgabenplanung des Betriebssystems setzen zu müssen. Dazu stellt Microsoft das neue PowerShell-Modul PSScheduledJob zur Verfügung. Alle zur Verfügung stehenden Befehle lassen Sie sich mit

Get-Command -Module PSScheduledJob | Sort-Object Noun, Verb

anzeigen. Microsoft zeigt in einem Blog-Beitrag den Umgang mit der neuen Funktion.

Leichtere Bedienung mit der PowerShell in Windows 8 und Windows Server 2012

Eine wesentliche Neuerung in der PowerShell 3.0 ist die einfachere Bedienung. Zunächst müssen Sie in der neuen Version keine Module mehr laden wie in der PowerShell 2.0. Alle Erweiterungen und Module, die installiert sind, erkennt die PowerShell und kann sie automatisch verwenden, sobald Sie ein CMDlet eines bestimmten Moduls eingeben.

Unterstützung: Die PowerShell 3.0 bietet eine ausführlichere Hilfe als PowerShell 2.0 und kann Hilfedateien nachladen.

Die neue Version zeigt auch weniger Fehlermeldungen an, wenn eine Option eines CMDlets fehlt. Stattdessen fragt die PowerShell nach den noch fehlenden Optionen. In der PowerShell 3.0 hat Microsoft die Hilfefunktion deutlich erweitert. Wenn Sie eine Hilfe zu CMDlets aufrufen, kann sich die PowerShell selbstständig aktualisieren. Das funktioniert eingeschränkt auch mit der alten PowerShell 2.0, wenn Sie für das CMDlet get-help die Option -online verwenden, zum Beispiel mit

get-help get-command -online

Die PowerShell 3.0 bietet das neue CMDlet update-help, das die Hilfedateien der PowerShell aktualisieren kann. Dazu muss der Server über eine Internetverbindung verfügen. Der Befehl ruft die Hilfe direkt aus dem Internet ab.

Hilfreich: Sie können sich in der PowerShell 3.0 ein spezielles Hilfefenster anzeigen lassen.

Ebenfalls eine neue Funktion in der PowerShell 3.0 ist das CMDlet show-command. Dieses blendet ein neues Fenster mit allen Befehlen ein, die in der PowerShell verfügbar sind. Sie können im Fenster nach Befehlen suchen und sich eine Hilfe zum Befehl sowie Beispiele anzeigen lassen. Allerdings muss dazu die grafische Oberfläche der PowerShell, PowerShell ISE (Integrated Script Engine), installiert sein. Das ist in Windows 8 serienmäßig der Fall, in Windows Server 2012 müssen Sie dieses als Feature nachträglich installieren.

Sie können in der PowerShell auch eine Remote-Sitzung auf einem Server starten. Am besten verwenden Sie dazu die erwähnte PowerShell ISE. Nach dem Start können Sie eine Verbindung mit Datei\Neue Remote-PowerShell-Registerkarte öffnen. Hier geben Sie einen Servernamen und einen Benutzernamen ein, mit dem Sie sich verbinden wollen.

Server-Manager und Cloud-Backup

Überall im neuen Server-Manager lassen sich die anderen Server im Netzwerk schnell und einfach integrieren und verwalten. Über das Kontextmenü von Servern können Sie Server über das Netzwerk remote neu starten lassen, eine PowerShell-Sitzung auf dem Server starten oder eine RDP-Verbindung öffnen.

Fernsicherung: Windows Server 2012 lässt sich auch in der Cloud sichern.

Eine der Neuerungen in Windows Server 2012 ist die Möglichkeit eine Sicherung in die Cloud bei Microsoft abzulegen. Standardmäßig sind bereits jetzt 10 GByte Speicherplatz integriert. Microsoft Online Backup Service lässt sich ausschließlich mit Windows Server 2012 nutzen. Weder Windows 8 noch ältere Versionen können an die Cloud angebunden werden. Der Microsoft Online Backup Service ist direkt in die Windows-Datensicherung integriert und kann getrennt von einer lokalen Sicherung aktiviert und eingestellt werden. Zusätzlich benötigen Sie einen speziellen Agenten, der die Daten online speichern kann. Sie nutzen zur Sicherung und Wiederherstellung aber die bereits gewohnte Oberfläche der Windows-Datensicherung. Auch eine Steuerung in der Windows-PowerShell ist möglich, dazu stellt PowerShell 3.0 ein eigenes Modul zur Verfügung.

Achtung: Derzeit ist die Beta-Phase des Online-Backup-Service abgeschlossen, es können keine neuen Accounts mehr angelegt werden. Aktuell wird eine Preview-Phase angekündigt.

Auf einen Blick: Sie können sich die verfügbaren Befehle für Microsoft Online Backup in der PowerShell anzeigen lassen.

Haben Sie die Windows-Server-Sicherung und den Agenten installiert, finden Sie im Startbildschirm zwei neue Icons zur grafischen Oberfläche und direkt zur Microsoft Online Backup Shell, dem PowerShell-3.0-Modul der Online-Sicherung.

Die Befehle für die Online-Sicherung in der PowerShell können Sie auch in einer normalen PowerShell-3.0-Sitzung eingeben. In der PowerShell lassen Sie sich die verfügbaren CMDlets der Online-Sicherung mit

get-command *ob*

anzeigen. Alternativ verwenden Sie den Befehl

get-command -module MSOnlineBackup

Active Directory und PowerShell

Die Installation von Active Directory findet über die Installation der Severrolle oder mit der PowerShell statt. Dazu hat Microsoft zahlreiche neue CMDlets integriert, um Active Directory in der PowerShell zu verwalten und zu installieren.

Active Directory: Mit dem CMDlet-Install-ADDSDomainController installieren Sie in einer bestehenden Domäne zum Beispiel einen neuen Domänencontroller.

Die Befehle sehen Sie, wenn Sie in der PowerShell 3.0 in Windows Server 2012 zunächst das entsprechende Modul mit Import-Module ADDSDeployment laden. Die Befehle lassen Sie sich zum Beispiel mit

get-command *adds*

anzeigen. Mit dem CMDlet Install-ADDSDomainController installieren Sie in einer bestehenden Domäne zum Beispiel einen neuen Domänencontroller. Mit Install-ADDSDomain installieren Sie eine neue Domäne, mit Install-ADDSForest eine neue Gesamtstruktur. Um einen Domänencontroller herabzustufen verwenden Sie das CMDlet UnInstall-ADDSDomainController.

Übersicht: Lassen Sie sich die CMDlets zur Installation von Active Directory anzeigen.

Die CMDlets fragen alle notwendigen Optionen an und starten den Server neu. Konfigurationen wie DNS-Server und globaler Katalog nehmen Sie anschließend vor. Diese Aufgaben müssen Sie nicht mehr im Assistenten zur Installation vorgeben. Wenn Sie die Installation von Active Directory in der grafischen Oberfläche durchführen, können Sie sich die einzelnen Einstellungen am Ende als Skript anzeigen lassen.

Auch neue CMDlets zum Testen von Installation und Betrieb von Active Directory Microsoft integriert. Dazu gibt es die neuen CMDlets Test-ADDSDomainControllerInstallation, Test-ADDSDomainControllerUnInstallation, Test-ADDSDomainInstallation, Test-ADDSForestInstallation und Test-ADDSReadOnlyDomainControllerUnInstallation.

Die Verwaltungskonsole Active Directory Administrative Center stellt mehr Möglichkeiten zur Verfügung als die Vorgängerversion. So lässt sich in Windows Server 2012 auf diesem Weg der AD-Papierkorb aktivieren und verwenden. In der neuen Konsole können Administratoren die einzelnen Einstellungen, die sie vornehmen, auch als PowerShell-Befehl anzeigen.

Praktisch: Die neue Windows PowerShell History in Windows Server 2012 ist ein Gewinn.

Neu im unteren Bereich des Active Directory Administrative Centers ist die Windows PowerShell History. Diese zeigt alle durchgeführten Aufgaben und PowerShell-Befehle als Protokoll an. Dazu müssen Administratoren nur auf den Link klicken und sehen alle durchgeführten Aufgaben der grafischen Oberfläche als Befehl für die PowerShell. Dieses Fenster gilt aber nicht nur als Protokoll, sondern Sie können Befehle für Skripte aus dem Fenster heraus kopieren.

Für die meisten Serverrollen hat Microsoft in Windows Server 2012 neue CMDlets integriert, zum Beispiel zur Installation und Verwaltung von DHCP. Auf Core-Servern installieren Sie zum Beispiel mit dem Befehl

install-windowsfeature server-gui-shell

die grafische Oberfläche in der PowerShell. Mit Add-WindowsFeature DHCP installieren Sie DHCP auf einem Server, mit

Get-Module *DHCP* -ListAvailable

lassen Sie sich die verfügbaren CMDlets anzeigen, mit

Get-Command -Module DHCPServer

sehen Sie die Liste ausführlicher. Das funktioniert in der PowerShell 3.0 auch für andere Module. Um einen Bereich zu erstellen, verwenden Sie zum Beispiel den Befehl

Add-DHCPServerv4Scope. Get-DhcpServerv4Scope | Format-List *

zeigt Informationen zum Scope an. (mje)