Seminar Internet Technologien Windows PowerShell Seminar Internet Technologien Mario Richter
Inhalt Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language (PLS) Ausblick Mario Richter: Windows PowerShell
Motivation Entwicklung einer Alternative zur cmd.exe und Windows Script Host Beherrscht nun wie von Unix-Shells bekannte Pipes und Filter Ermöglicht Ausführung und Verknüpfung einfacher Befehle an der Konsole sowie Entwicklung komplexer Skript-Programme mit eigener PowerShell Scripting Language Mario Richter: Windows PowerShell
Entwicklung Entwickelt 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 Mario Richter: Windows PowerShell
Cmdlets Cmdlets 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-Klassen Verfügen über Parameter und Objekte als Eingabe Und geben Objekte wieder zurück Mario Richter: Windows PowerShell
Cmdlets Beispiel für Eingabe-Parameter, -Objekte und Rückgabe Objekt Mario Richter: Windows PowerShell
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 Wechseln des aktuellen Verzeichnisses Clear-Host cls, clear cls clear Löschen des Bildschirms Copy-Item cpi, 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-Item mi, move, mv move Verschieben einer Datei / eines Verzeichnisses Get-ChildItem gci, dir, ls dir ls Liste aller Dateien / Verzeichnisse im (aktuellen) Verzeichnis Mario Richter: Windows PowerShell
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
PowerShell Erlaubt Zugriff auf COM-Objekte (Component Object Model, Interprozesskommunikation und dynamische Objekterzeugung) Mario Richter: Windows PowerShell
Erweiterbarkeit Import von sog. Snap-Ins möglich Snap-Ins enthalten (Sätze von) Cmdlets Mario Richter: Windows PowerShell
Beispiele Beende 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() Mario Richter: Windows PowerShell
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") Mario Richter: Windows PowerShell
Screenshot Mario Richter: Windows PowerShell
PowerShell Scripting Language Eigene Scriptsprache für PowerShell Neuentwicklung, basiert nicht auf eine bestehenden Scriptsprache Inspiriert von UNIX-Shell-Sprachen, Perl, PHP, Python und C# Kennt nicht nur Variablen, sondern auch Schleifen und Bedingungen Mario Richter: Windows PowerShell
PowerShell Scripting Language Variablen $v = „Beispiel“ <= String, automatisch [int]$i = 5 <= Integer, explizit angegeben Zahlen: [int], [long], [double], [decimal], [float], [single], [byte] Zeichen: [string], [char] Mario Richter: Windows PowerShell
PowerShell Scripting Language Sichtbarkeit von Variablen global: 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
PowerShell Scripting Language Bedingungen if(Bedingung) {…} elseif(Bedingung) {…} else {…} switch(Bedingung) { wert1 {…} wert2 {…} default {…} } Mario Richter: Windows PowerShell
PowerShell Scripting Language Schleifen while(Bedingung) { … } for([Initialisierung]; [Bedingung]; [Iteration]) { …} Bsp: for($i = 1; $i -le 10; $i += 1) foreach(identifier in collection) { …} Mario Richter: Windows PowerShell
PowerShell Scripting Language Funktionen function name { param($parameter1, $parameter2, …) } Filter filter name { param($parameter1, $parameter2, …) } Funktionen und Filter unterscheiden sich bei der Pipeline-Verarbeitung Mario Richter: Windows PowerShell
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) Mario Richter: Windows PowerShell
Mario Richter: Windows PowerShell
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 Mario Richter: Windows PowerShell
Ende Vielen Dank für Ihre Aufmerksamkeit Fragen? Mario Richter: Windows PowerShell