28
PowerShell 3.0 Was ist neu?

Powershell 3.0

Embed Size (px)

DESCRIPTION

PowerShell 3.0 ist Bestandteil von Windows Server 2012. Mit inzwischen über 2300 cmdlets steht Ihnen eine umfassende und Script-gesteuerte Verwaltungsmöglichkeit zur Verfügung. Neben alleine 140 eingebauten Hyper-V cmdlets können Sie neben DHCP, DNS, Zertifikatsserver alle Rollen und Features über Scripts steuern und Verwalten. Sogar Workflows sind möglich, mit denen Sie länger laufende Aufgaben wie Bereitstellung von Anwendungen auf mehreren Maschinen automatisieren können. Sehen Sie in diesem Track neben vielen praktischen Programmbeispielen, wie Sie mit der neuen ISE (Integrated Scripting Environment) die wesentlich verbesserte Entwicklungsumgebung für Power Shell Scripts optimal einsetzen können.

Citation preview

Page 1: Powershell 3.0

PowerShell 3.0

Was ist neu?

Page 2: Powershell 3.0

Inhalt der Präsentation

PowerShell Grundlagen

Disconnected Sessions

Module Auto-Loading

Vereinfachte Syntax für Where-Object und ForEach-Object

Workflows

Online-Hilfe

IntelliSense im ISE

Hintergrund Jobs

PowerShell Web Access

Demos

Fragen & Antworten

Page 3: Powershell 3.0

PowerShell Grundlagen

PowerShell ist eine kommandozeilen-basierte Konsole speziell für die

Administration von Servern und Backoffice-Produkten

PowerShell basiert auf der .NET Infrastruktur und manipuliert .NET

Objekte

Neben den nun 2’300 Cmdlets können Sie komplexe Scripts

entwickeln, die in einer C#-ähnlichen Syntax geschrieben werden

Es steht Ihnen die Entwicklungsumgebung ISE zur Verfügung und

Dritthersteller bieten ebenfalls Entwicklungshilfen an

Page 4: Powershell 3.0

PowerShell Grundlagen

Im Gegensatz zu anderen Shells manipuliert PowerShell .NET-Objekte

und gibt keine Textresultate, sondern wiederverwendbare Objekte, die

an andere Cmdlets übergeben werden können (piping)

Eine umfangreiche eingebaute Dokumentation kann online aktualisiert

werden

Nach einer Einführung von ca. 30-60 Minuten sind Sie in der Lage

selbstständig Cmdlets zu untersuchen und anzuwenden um so Ihre

Serverlandschaft zu verwalten

Page 5: Powershell 3.0

PowerShell Grundlagen

Demo

Page 6: Powershell 3.0

Dauerhafte Sitzungen

Mit PowerShell 3.0 sind so genannte «Persistent Sessions» möglich.

Sie können sich von bestehenden Sessions trennen, ohne dass die

laufenden Kommandos unterbrochen werden.

Sie können sich dann von dem gleichen oder einem anderen Computer

mit der gleichen Sitzung erneut verbinden

Neue Cmdlets stehen für diese speziellen Sitzungen zur Verfügung

Page 7: Powershell 3.0

Persistent Sessions

Demo

Page 8: Powershell 3.0

Module Auto-Loading

Mit PowerShell 2.0 wurde das Konzept der Module eingeführt

Hierbei handelt es sich um Erweiterungen, die bei Bedarf geladen

werden können und neue Cmdlets mit sich bringen

Cmdlets aus nicht geladenen Modulen waren nicht sichtbar

Mit PowerShell 3.0 wurde:

Die Anzahl der Module wesentlich erhöht

Cmdlets aus nicht geladenen Modulen stehen zur Verfügung und mit

deren Aufruf werden die entsprechenden Module geladen

Get-Command listet alle Cmdlets aller Module auf

Die Variable $PSModuleAutoLoadPreference steuert dieses

Verhalten

Page 9: Powershell 3.0

Module Auto-Loading

Demo

Page 10: Powershell 3.0

Show-Command

Dieses neue Kommando listet alle Cmdlets auf und ermöglicht eine

grafische Interaktivität

Page 11: Powershell 3.0

Show-Command

Page 12: Powershell 3.0

Show-Command

Demo

Page 13: Powershell 3.0

Vereinfachte Syntax

PowerShell 2.0:

Get-Process | Where-Object {$_.handles –gt 1000 }

PowerShell 3.0:

Get-Process | where handles –gt 1000

PowerShell 2.0:

Get-Process | `

Where-Object {$_.handles -gt 1000 -and $_.cpu -gt 90}

PowerShell 3.0:

Get-Process | `

Where-Object {$_.handles -gt 1000 -and $_.cpu -gt 90}

Vergleichsoperatoren können nicht ohne Scriptblock verwendet werden!

Page 14: Powershell 3.0

Vereinfachte Syntax

PowerShell 2.0:

Get-Process | ForEach-Object {$_.name}

PowerShell 3.0:

Get-Process | foreach name

PowerShell 2.0:

Get-Process | ForEach-Object {$_.kill()}

PowerShell 3.0:

Get-Process | foreach kill

Page 15: Powershell 3.0

Vereinfachte Syntax

Demo

Page 16: Powershell 3.0

Workflows

Mit PowerShell 3.0 sind nun Workflows mit der Windows Workflow

Foundation möglich

Workflows können in XAML oder in der PowerShell-Scriptsprache

erstellt werden und werden wie gewöhnliche Cmdlets aufgerufen

Workflows sind sequentielle Multicomputer Aktivitäten, die länger

laufen; sie können wiederholt, parallel laufend, unterbrochen,

angehalten und weitergeführt werden

Workflows sind portabel, sie können im XAML-Format ex- und

importiert werden

Page 17: Powershell 3.0

Vorteile der Workflows

Automatisierung länger laufender Vorgänge

Entfernte Überwachung länger laufender Vorgänge

Multicomputer-Verwaltung

Eine einzige Task ruft komplexe Vorgänge und Prozesse auf

Ein Workflow kann in einem bestimmten Zustand angehalten und

gespeichert werden und läuft ab diesem Punkt ohne Neustart weiter

Workflows können sich verbinden, trennen und in getrennten Sitzungen

laufen

Workflows können als geplante Task laufen

Page 18: Powershell 3.0

Workflows als Hintergrundjobs

LongWorkflow –asJob –JobName LongWF

Suspend-Workflow LongWF

Receive-Job LongWF –Keep

Resume-Job LongWF

Page 19: Powershell 3.0

Und da wäre noch…

Unblock-File

Update-Help

New-PSDrive –Persist

Invoke-WebRequest

Invoke-RestMethod

ConvertFrom-Json

ConvertTo-Json

Page 20: Powershell 3.0

PowerShell Web Access

PowerShell-Kommandos können nun in einer web-basierenden

Konsole auf Remotecomputer ausgeführt werden

Die Verbindung geschieht über https://

Der Client-Browser muss Java-Script unterstützen und Cookies

akzeptieren

Page 21: Powershell 3.0

PowerShell Web Access

Page 22: Powershell 3.0

PowerShell Web Access

Demo

Page 23: Powershell 3.0

PowerShell ISE

IntelliSense

Snippets

Add-Ons

Restart-Manager & Auto Save

$psise.Options.AutoSaveMinuteInterval)

Konsolenfenster

Zuletzt verwendete Dateien

Kommandozeilenoptionen

Neues Hilfe-Ansichtsfenster

Show-Command

Page 24: Powershell 3.0

Snippets

Page 25: Powershell 3.0

Benutzedefinierte Snippets

New-IseSnippet

Get-IseSnippet

Import-IseSnippet

Page 26: Powershell 3.0

Benutzerdefinierte Snippets

Page 27: Powershell 3.0

PowerShell ISE

Demo

Page 28: Powershell 3.0

28

Fragen & Antworten