230 likes | 445 Views
Windows PowerShell. Seminar Internet Technologien. Mario Richter. Inhalt. Motivation Entwicklung Kern: Cmdlets PowerShell Erweiterbarkeit Beispiele PowerShell Scripting Language (PLS) Ausblick. Motivation. Entwicklung einer Alternative zur cmd.exe und Windows Script Host
E N D
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
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 (ComponentObject 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
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