Home PowerShell Neue Features in PowerShell Version 3.0 – Beta
formats

Neue Features in PowerShell Version 3.0 – Beta

PowerShell Version 3.0 steht nun als Beta Version zum Download bereit.

Alle Punkte die ich hier aufführe können sich bis zur endgültigen Version noch ändern.

Es lohnt sich trotzdem, die PowerShell V3 anzusehen.

 

Download: Windows Management Framework 3.0 – Beta

 

PowerShell Version 3.0 basiert nun auf dem .NET Framework 4.0 und wird nicht mehr durch die Common Language Runtime (CLR), sondern durch die Dynamic Language Runtime (DLR) ausgeführt.

Dadurch sollen PowerShell Scripts bis zu 6-mal schneller werden.

Die PowerShell Syntax wird nun auch über einen Abstract Syntax Tree (AST) beschrieben.

Artikel: PowerShell 3 – Finally on the DLR!

Artikel: Inside PowerShell 3: The New Parser and Compiler

 

Um Abwärtskompatibel zu bleiben muss PowerShell Version 2.0 nicht deinstalliert werden. PowerShell Version 3.0 und 2.0 können nebeneinander existieren.

(PowerShell in einer bestimmten Version starten: PowerShell.exe -version 2.0)

Artikel: PowerShell 2 and 3, Side by Side

 

PowerShell V3.0 ist in Windows 8 und Server 2012 Integriert. PowerShell Version 3.0 kann für die Betriebssysteme Windows Server 2008 R2 (mit Service Pack 1) und Windows 7 als Download nachgerüstet werden (siehe Download).

Für Windows Vista, Server 2008, XP und früher, wird es PowerShell V3.0 nicht geben!

PowerShell V3 Beta lässt sich nur auf Windows Systemen installieren die das englische Sprachpaket installiert haben!

Siehe hier: System requirements und hier: Test-Driving PowerShell v3: How To Install And Run PSv3 BETA

 

Die zwei wichtigsten Neuerungen neben vielen guten Erweiterungen in PowerShell sind die Einführungen von Workflows mit der Windows Workflow Foundation (WF, früher auch WWF und WinWF) und die Unterstützung vom Common Information Model (CIM).

Im Server 2012 sind nun ca. 50+ Module und ca. 250+ Cmdlets mehr enthalten als im Server 2008 R2.
Damit bringt die Windows PowerShell nun mehr als 2300 Cmdlets mit.

 


PowerShell Workflow

 

In einem Workflow werden mehrere Aktivitäten oder Befehlen zusammengefasst. Diese können wahlweise sequentiell oder parallel ablaufen. Komplizierte und lang laufende Verwaltungsaufgaben sind dadurch unterbrechbar (z.B. durch den Neustart eines Zielsystems), abbrechbar und wiederholbar. Der Ursprungszustand des Ziels kann bei einem Abbruch des Workflow wiederhergestellt werden (rollback).

Dieses Thema ist jedoch sehr umfangreich und richtet sich eher an Entwickler, da Kenntnisse mit der Windows Workflow Foundation (WF, früher auch WWF und WinWF) nötig sind.

Artikel: When Windows PowerShell Met Workflow

Artikel: Getting Started with Windows PowerShell Workflow

Video: Bruce Payette – PowerShell Workflows

Video : Make your product manageable Jeffrey Snover, Refaat Issa; Workflow, CIM/WSMan, Write a WMI providers with CDXML, REST APIs

 

Workflow Module

 

Microsoft hat für Workflows auch eine Modul Dateiendung (.xaml) vorgesehen.

Näheres ist nicht bekannt.

Quelle: http://technet.microsoft.com/en-us/library/hh849709.aspx

 

PowerShell Common Information Model (CIM)

 

Seit Windows NT ist Windows Management Instrumentation (WMI) ein mächtiges Werkzeug um Windows Geräte zu verwalten.

WMI hatte aber den Nachteil teilweise inkompatibel zum DMTF CIM Standard zu sein.

Nun wurde in der eine große Anzahl von PowerShell CIM Modulen hinzugefügt, die sich an den DMTF Standard halten. Dies hat den Vorteil das nun damit auch Geräte verwaltet werden können die nicht unter Windows laufen (Unix, Linux) oder gar kein Betriebssystem haben (Verwaltung von UEFI Bios und „nackter“ Hardware Intel AMT).

WMI arbeitet über COM / DCOM und dem Remote Procedure Call Server (RPC). Dies war insbesondere Problematisch wenn die WMI Kommunikation durch Firewalls hindurch musste.

Die neuen CIM Cmdlets hingegen nutzen WS-Management (kurz: WS-Man) als Standard Übertragung.

Die CIM Cmdlets Beherrschen aber auch die „alte“ Kommunikation über den RPC Server.

WS-Management bietet eine enge Verbindung zu dem Web Based Enterprise Management (WBEM) und hat als Webservice den Vorteil einfacher durch Firewall Grenzen zu Kommunizieren.

Unter dem Namen NanoWBEM wird ein subset von (Kern)Funktionen in der Sprache C entwickelt, das als „Mini CIM“ auf Kleingeräten eingesetzt werden soll.

Artikel: Standards-based Management in Windows Server “8”

Artikel: Improved WMI experience in PowerShell 3.0

Artikel: Out-of-band Hardware Management using WS-Management and Powershell

Video : Make your product manageable Jeffrey Snover, Refaat Issa; Workflow, CIM/WSMan, Write a WMI providers with CDXML, REST APIs

 

CDXML und CDXMLModule

 

CDXML Dateien definieren ein Cmdlet in der Beschreibungssprache XML. Diese werden in der PowerShell 3.0 häufig dazu eingesetzt um die neuen CIM Cmdlets zu erstellen. Diese XML Beschreibung des CIM Cmdlets führt ein mapping der „neuen“ CIM Funktionen auf die „alten“ WMI Klassen durch.

Diese XML Beschreibungen werden in dem neuen PowerShell Modulformat .cdxml zusammengefasst.

Artikel: Standards-based Management in Windows Server “8”

Quelle: http://technet.microsoft.com/en-us/library/hh849709.aspx

Video : Make your product manageable Jeffrey Snover, Refaat Issa; Workflow, CIM/WSMan, Write a WMI providers with CDXML, REST APIs

 

Updateable Help

 

PowerShell Version 3.0 wird ohne Hilfe Dateien ausgeliefert. Diese muss online abgerufen werden oder separat heruntergeladen werden (mit dem Update-Help Cmdlet). Dies wurde gemacht um die PowerShell Hilfe immer Aktuell halten zu können.

Artikel: PowerShell V3 and Updateable Help

Artikel: PowerShell 3.0: Save-Help woes and solution

Artikel: PowerShell 3.0 Update-Help

 

Robust sessions

 

Windows PowerShell Version 3.0 unterstützt nun robuste Sitzungen, die sich automatisch von kurzen Netzausfällen (Unterbrechungen) erholen und das manuelle unterbrechen der Sitzung erlauben.

So kann man den Computer abschalten und sich von einem unterschiedlichen Computer wieder verbinden. Ohne das die Aufgabe unterbrochen werden muss.
Dieses Feature findet sich auch in der neuen Version von WinRM.

 

Web Access

 

Ein anderes interessantes Feature ist Windows PowerShell Web Access. Ein Windows Server kann mit dem Webserver IIS, die PowerShell für Web-Browser und mobile Geräte zur Verfügung stellen.

Somit ist die PowerShell von jedem Gerät aus erreichbar das einen Webbrowser zur Verfügung stellt.

Durch den Einsatz von IIS ist es auch einfacher die User Credentials durch den Browser hindurch zu nutzen.

Artikel: Introducing Windows PowerShell Web Access in Windows Server 8 Beta
Artikel: Windows PowerShell Web Access

Artikel: Use the Web-based Windows PowerShell Console

Artikel: Deploy Windows PowerShell Web Access

Artikel: Install PowerShell Web Access on non-English machines

Video: PowerShell Web Access demo

 

Web service

 

Windows PowerShell Web Service ermöglicht einem Administrator, einen Satz von PowerShell Cmdlets als ein RESTful-Netzendpunkt zugänglich zu machen.

Dies nutz das offene Daten-Protokoll OData.

Damit können auch Nutzer auch ohne Windows über PowerShell Befehle ausführen und die Ergebnisse empfangen.

 

Delegated Administration

 

Um einem User bestimmte Aufgaben zu übertragen, kann dem User ein eingeschränkter Satz an Cmdlets mit den dazu gehörigen Credentials zur Verfügung gestellt werden (näheres ist nicht bekannt).

 

Server Manager

 

Der neue Server-Manager hat die Fähigkeit, gleichzeitige Operationen gegen viele Maschinen auszuführen, sowie Rollen und Merkmale hinzuzufügen. Ebenso hat er die neue Metrooberfläche.

Die Remoting-Möglichkeiten im neuen Server-Manager basieren sowohl auf PowerShell (Standard) als auch auf WMI.

Der neue Server-Manager generiert PowerShell Script-Code der hinter den Kulissen ausgeführt wird.

Dieser ist sowohl im Active Directory Domain Services Installationsassistenten als auch im Active Directory Administrative Center, zu sehen.

Von diesen Script-Code kann man lernen oder Ihn Modifizieren.

Dies ist leider nicht so in den anderen Microsoft Produkten wie z.B. Exchange Server 2007/2010 oder System Center Virtual Machine Manager usw.

 

PowerShell ISE

 

Auch das PowerShell Integrated Scripting Environment (ISE) ist überarbeitet worden und entwickelt sich zu einer ernstzunehmenden Script Entwicklungsumgebung.

· Hinzu gekommen sind IntelliSense Code-Hinweise (Tipps) und Code completion.

· Klammern paare werden nun gefunden und angezeigt. (lange vermisst)

· Ebenso können nun Code Snippets verwaltet werden

· Code Regionen können gefaltet werden.

· Error Tooltips.

· Ein Verbessertes Hilfefenster.

· WPF Addon Tools.

· Autosave (alle 2 minuten)

Der Output- und der Kommandobereich (Pane) sind nun in einem Pane zusammen gefasst.

PDF: Windows PowerShell ISE.pdf

Artikel: PowerShell ISE v3 – Now With IntelliSense

Artikel: PowerShell v3 – ISE Commands Add-on

 

Autoloading Modules

 

Wenn man in PowerShell Version 2.0 ein Cmdlet benötigte das in einem Modul zu Verfügung steht, war es immer nötig ein diese Modul vorher mit Import-Module zu laden. PowerShell Version 3.0 erkennt das dieses Cmdlet in einem Modul vorhanden ist das noch nicht geladen ist und lädt das Modul Automatisch nach.

Dies Funktioniert leider nur Interaktiv und nicht von einem Script heraus.

Artikel: PowerShell V3 – Auto-loading Modules

 

Show-Command

 

Show-Command zeigt eine Grafische Benutzeroberfläche für ein CMDlet an. Damit lassen sich alle Parameter eines Cmdlet erkunden und ausfüllen. Dies macht es nicht nur PowerShell Neulingen einfach Cmdlets richtig zu bedienen und zu verstehen.

clip_image002[4]

Artikel: Running show-command for a cmdlet

Artikel: Show-Command PowerShell V3

 

Job Scheduling

 

Das Modul PSScheduledJob bringt 16 Cmdlets mit um in PowerShell nun hintergrund Jobs Zeit- oder Ereignisgesteuert zu starten und zu verwalten.
Die Ergebnisse der Jobs werden zum späteren abrufen abgespeichert.

Artikel: Scheduling Background Jobs in Windows PowerShell 3.0

Video: Dmitry Sotnikov – PowerShell Jobs V2 and V3

 

New Syntax

 

Where-Object und Foreach-Object

Vereinfachte Syntax bei den Cmdlets Where-Object und Foreach-Object. Dort entfallen die geschweiften Klammern. Somit braucht man bei der Verwendung von reinen Cmdlet-Pipes keine Skriptblöcke mehr.

Das Erlernen von PowerShell soll damit erleichtert werden.

Artikel: Windows PowerShell Version 3 Simplified Syntax

Artikel: PowerShell 3.0 Where Statement

 

Schon in PowerShell 1 und 2 gab es die Operatoren -contains und –notcontains. Zusätzlich als gegenstück gibt es jetzt die Operatoren -in und -notin.

PowerShell Version 3.0 macht das Erstellen von Objekten einfacher. Nun kann mit dem TypeAccelerator [pscustomobject] sehr schnell ein Objekt erstellt werden.
Beispiel: $MyObject = [pscustomobject]@{a=1; b=2; c=3; d=4}

Artikel: Creating Objects With [pscustomobject]

 

.NET Objekte können in PowerShell nun auch einfacher erstellt (Instanziiert) werden, indem man einfach den default Konstruktor aufruft.
Beispiel: [System.Drawing.Point]@{X=1;Y=2}

Artikel: Creating objects with a cast in PowerShell 3.0

 

Mit Hilfe der Variablen $PSDefaultParameterValues könne Standardwerte für Parameter von Cmdlets angegeben werden.

Dies spart Tipparbeit, allerdings ist diese Einstellung nur während der aktuellen Sitzung gültig, wenn sie nicht in ein PowerShell-Profil eingetragen wird.

Artikel: PowerShell V3 – Default Parameter Values

Artikel: New advanced functions language features in PowerShell v3

 

In PowerShell V2 war es bislang nichr möglich direct auf die Eigenschaften des Ergebisses au seine Befehl zuzugreifen:
Beispiel: dir | foreach-object { $_.lastwritetime } | sort

In PowerShell V3 ist diese nun möglich

Beispiel: (dir).lastwritetime | sort

Microsoft nennt diese Feature singleton/array enumeration

Artikel: PowerShell 3.0–Now with Property Unrolling!

Artikel: PowerShell 3.0 [Ordered] Hash Table

 

Cmdlet and Provider Changes

 

Sonstiges

 

In PowerShell Version 3.0 können Kompilierte binäre Cmdlets nun als veraltet markiert werden.
Dies gilt nicht für Cmdlets und Advanced Functions die in PowerShell Script verfasst wurden.

Artikel: Deprecation of cmdlets

 

PowerShell V3 is better support for alternate data streams (ADS) in NTFS files.

 

Das übergeben von Argumenten an DOS Befehle oder anderen ausführbaren Dateien (.exe) war in PowerShell teilweise nicht einfach. Dies wurde nun verbessert.

Artikel: PowerShell V3 CTP2 Provides Better Argument Passing to EXEs

 

PowerShell V3 Supports now JavaScript Object Notation (JSON)

 

Die Registry kann nun auch Remote bearbeitet werden

Artikel: PSRR – Remote Registry PowerShell 3.0 Module

 

Diese Liste erhebt keinen Anspruch darauf Komplett zu sein. Da hilft nur ausprobieren und auf die Dokumentation zu warten.
PowerShell MVP Shay Levy hat ein nettes Script gepostet womit man sich die neuen Cmdlets selbst erschließen kann:

Artikel : How to find out what’s new in PowerShell vNext

 

PowerShell Version 3.0 Videos:

 

PowerShell V3 sneak peek Marc van Orsouw

What’s new in PowerShell V3! Jason Helmick

Introducing Powershell 3.0 Jan Egil Ring

Microsoft Flash Talk – PowerShell V3

Video : Make your product manageable Jeffrey Snover, Refaat Issa; Workflow, CIM/WSMan, Write a WMI providers with CDXML, REST APIs

Video: Manage a highly-efficient environment at scale using the Windows Management Framework (WMF) Jeffrey Snover, Refaat Issa

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
2 Comments  comments 

2 Antworten

  1. [...] Betriebssysteme dann braucht man Standards. Ich habe in meinem vorherigen Artikel über die PowerShell 3.0 und das Standards-based Management in Windows Server 2012 schon berichtet das Microsoft in diesem [...]

  2. [...] Techniken die ich in meinem ausführlichen Bericht zur PowerShell 3.0 Beta erwähnt habe, sind auch in die PowerShell 3.RTM übernommen [...]

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">