23
Windows PowerShell Seminar Internet Technologien Mario Richter

Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

Embed Size (px)

Citation preview

Page 1: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

Windows PowerShellSeminar Internet Technologien

Mario Richter

Page 2: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

InhaltMotivationEntwicklungKern: CmdletsPowerShellErweiterbarkeitBeispielePowerShell Scripting Language (PLS)Ausblick

2Mario Richter: Windows PowerShell

Page 3: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

MotivationEntwicklung einer Alternative zur cmd.exe

und Windows Script HostBeherrscht nun wie von Unix-Shells bekannte

Pipes und FilterErmöglicht Ausführung und Verknüpfung

einfacher Befehle an der Konsole sowie Entwicklung komplexer Skript-Programme

mit eigener PowerShell Scripting Language

3Mario Richter: Windows PowerShell

Page 4: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

EntwicklungEntwickelt von Microsoft: Codename Monad

und Microsoft Command Shell (MSH)Basiert auf .NET Framework 2.0 (22.01.2006)Aktuelle Version 1.0 (14.11.2006)

Erhältlich für (kostenlos) Windows XP Windows Server 2003 Windows Vista Windows Server 2008

4Mario Richter: Windows PowerShell

Page 5: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

CmdletsCmdlets sind kleine Funktionseinheiten

z.B. Copy-Item (Alias: cp, copy), Get-Help (Alias: man, help), Get-Location (Alias: gl, pwd)

Benennungsschema Verb-Substantiv, nicht case-sensitiv, Autovervollständigung

Implementiert als .NET-KlassenVerfügen über Parameter und Objekte als

EingabeUnd geben Objekte wieder zurück

5Mario Richter: Windows PowerShell

Page 6: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

CmdletsBeispiel für Eingabe-Parameter, -Objekte

und Rückgabe Objekt

Mario Richter: Windows PowerShell 6

Page 7: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

Windows PowerShell(Cmdlet)

Windows PowerShell(Alias)

cmd.exe (MS-DOS, Windows)

Shell(Unix, Linux)

Beschreibung

Get-Location gl, pwd cd pwd Ausgabe des aktuellen

Verzeichnisses

Set-Location

sl, cd, chdir cd, chdir cd Wechseln des aktuellen

Verzeichnisses

Clear-Host cls, clear cls clear Löschen des Bildschirms

Copy-Itemcpi, copy, cp copy cp

Kopieren einer oder mehrerer Dateien / eines ganzen Verzeichnisbaums

Get-Help help, man help man Hilfe zu Befehlen

Remove-Item

ri, del, rmdir, rd, rm

del, rmdir, rd

rm, rmdir

Löschen einer Datei / eines Verzeichnisses

Rename-Item rni, ren ren mv Umbenennen einer Datei / eines

Verzeichnisses

Move-Itemmi, move, mv move mv Verschieben einer Datei / eines

Verzeichnisses

Get-ChildItem gci, dir, ls dir ls Liste aller Dateien / Verzeichnisse

im (aktuellen) Verzeichnis

Mario Richter: Windows PowerShell 7

Page 8: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

PowerShell

Erlaubt Zugriff auf das gesamte .NET Framework (Sammlung von Klassenbibliotheken (APIs))

Erlaubt Zugriff auf WMI-Klassen (Windows Management Instrumentation, Zugriff auf Einstellungen des Windows-Rechners, lokal und über Netzwerk, wichtig für Fernwartung und Administration)

Mario Richter: Windows PowerShell 8

Page 9: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

PowerShell

Erlaubt Zugriff auf COM-Objekte (Component Object Model, Interprozesskommunikation und dynamische Objekterzeugung)

Mario Richter: Windows PowerShell 9

Page 10: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

Erweiterbarkeit

Import von sog. Snap-Ins möglich

Snap-Ins enthalten (Sätze von) Cmdlets

10Mario Richter: Windows PowerShell

Page 11: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

BeispieleBeende alle Prozesse, deren Namen mit dem

Buchstaben „p“ beginnen:get-process p* | stop-process

Warte, bis ein bestimmter Prozess (notepad) beendet wurde:$processToWatch = get-process notepad$processToWatch.WaitForExit()

11Mario Richter: Windows PowerShell

Page 12: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

BeispieleÄndere eine Zeichenkette von

Kleinbuchstaben in Großbuchstaben:"hallo welt!".ToUpper()

Füge die Zeichenfolge „ABC“ nach dem ersten Buchstaben des Wortes „string“ ein:"string".Insert(1, "ABC")

12Mario Richter: Windows PowerShell

Page 13: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

Screenshot

13Mario Richter: Windows PowerShell

Page 14: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

PowerShell Scripting LanguageEigene Scriptsprache für PowerShellNeuentwicklung, basiert nicht auf eine

bestehenden ScriptspracheInspiriert von UNIX-Shell-Sprachen, Perl,

PHP, Python und C#Kennt nicht nur Variablen, sondern auch

Schleifen und Bedingungen

Mario Richter: Windows PowerShell 14

Page 15: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

PowerShell Scripting Language

Variablen$v = „Beispiel“ <= String, automatisch[int]$i = 5 <= Integer, explizit angegebenZahlen: [int], [long], [double], [decimal], [float],

[single], [byte] Zeichen: [string], [char]

Mario Richter: Windows PowerShell 15

Page 16: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

PowerShell Scripting Language

Sichtbarkeit von Variablenglobal: sichtbar in allen Bereichen script: sichtbar in allen Bereichen der Script-

Datei local: sichtbar nur im aktuellen Bereich und

darin eingebetteter Bereich (z.B. Funktionen) private: sichtbar nur im aktuellen Bereich (z.B.

innerhalb einer Funktion)

Mario Richter: Windows PowerShell 16

Page 17: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

PowerShell Scripting LanguageBedingungen

if(Bedingung) {…}elseif(Bedingung) {…}else {…}

switch(Bedingung) {wert1 {…}wert2 {…}default {…}}

Mario Richter: Windows PowerShell 17

Page 18: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

PowerShell Scripting LanguageSchleifen

while(Bedingung) {… }

for([Initialisierung]; [Bedingung]; [Iteration]) {…} Bsp: for($i = 1; $i -le 10; $i += 1)

foreach(identifier in collection) {…}

Mario Richter: Windows PowerShell 18

Page 19: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

PowerShell Scripting LanguageFunktionen

function name {param($parameter1, $parameter2, …)}

Filterfilter name {

param($parameter1, $parameter2, …)}

Funktionen und Filter unterscheiden sich bei der Pipeline-Verarbeitung

Mario Richter: Windows PowerShell 19

Page 20: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

Ausblick

Zurzeit ist PowerShell V2 CTP3 verfügbar (22.12.2008)

PowerShell V2 besitzt eine grafische Oberfläche (ISE: Integrated Scripting Environment)

PS V2 wird mit Windows 7 ausgeliefert (geplant)

20Mario Richter: Windows PowerShell

Page 21: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

21Mario Richter: Windows PowerShell

Page 22: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

Quellen

http://de.wikipedia.org/wiki/Windows_PowerShell

http://www.microsoft.com/germany/technet/scriptcenter/hubs/msh.mspx

http://www.searchnetworking.de/powershell/http://www.it-visions.de/glossar/alle/4480/

Powershell%20Language.aspx

22Mario Richter: Windows PowerShell

Page 23: Seminar Internet Technologien Mario Richter. Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language

Ende

Vielen Dank für Ihre Aufmerksamkeit

Fragen?

23Mario Richter: Windows PowerShell