.NET Users Group Karlsruhe 26.04.2007. Worum gehts? Goodby cmd.exe (ok ok, sie bleibt noch ein bisschen) Die Eingabeaufforderung erhält endlich einen.

Slides:



Advertisements
Ähnliche Präsentationen
Die Installation von Windows 95 erfordert etwas Vorarbeit: Als erstes müssen Sie mit einer Windows 95 Startdiskette den Computer booten.... Dabei wird.
Advertisements

DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Microsoft Academic Program Von WSH zu MSH Dr. Tobias Weltner Student Technology Conference 2005.
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Imperative Programmierung -Entwicklungswerkzeuge
Objektorientierte Programmierung
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Flächenberechnungen Ein Übungsprogramm der IGS - Hamm/Sieg © IGS-Hamm/Sieg 2007 Dietmar.
Klicke Dich mit der linken Maustaste durch das Übungsprogramm!
Klicke Dich mit der linken Maustaste durch das Übungsprogramm!
Java: Dynamische Datentypen
Indirekte Adressierung
Ein Beispiel in Java.
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
SQL als Abfragesprache
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
DVG Einführung in Java1 Einführung in JAVA.
Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group.
Erstellen von WebServices mit Visual FoxPro 9.0
Prozentrechnung … geht ganz einfach.
Installation FAQ-Forum Zope Basisinstallation Zusätzliche Module (Products) Grundkonfiguration Einrichten neuer Foren.
Eine Welt jenseits von Fenstern und Mausklicks
DOS GOIT Der Kurs. Versionen 1.0 (1981 – Erster IBM-PC) 2.0 (1983 – Unterverzeichnisse) 3.0 (1984 – Festplatten) 4.0 (1988 – DOS Shell) 5.0 (1991 – Task.
Herzlich willkommen beim monatlichen Newsletter der Dr. Leschper-PC-Redaktion In dieser Ausgabe erfahren Sie alles über HACKER Dieser Newsletter wird präsentiert.
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Patrick Schmerlaib. Scriptsprachen: sind Programmiersprachen Verzichten auf Sprachelemente Vorteile: schnelle Erstellung kleiner Programme Flexible Sprache.
Eine kurze Einführung von Boris Smeisser
Zum verständlich machen, wozu die Trigger-Funktion geeignet ist,
Präsentation von Sonja Pathe
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Seminar Internet Technologien
Scripting mit Windows PowerShell
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
… und was man damit machen kann.
Bereit ???? Nimm dir 10 Minuten Zeit. Ich versuche es dir zu erklären.
Oliver Spritzendorfer Thomas Fekete
Das bin ich Clariro Clariro Das bin ich
Ansicht Compu Neuer - Alter Neuer : ist langgezogen !!! Untenstehend die Phötelis zum Vergleichen Ich versuche Dir das Verstehen möglichst einfach zu machen,
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
MODAL-PARTIKELN.
SQLite und XML in PHP 5.
Wir geben jetzt den Löffel ab ;-) oder : lasst uns mal der Ulla helfen.
Man fragt sich oft warum
1 Tagesüberblick 6 Lösung Hausaufgabe/Fragen Weitere besondere Variablen Hier-Dokument Unterprogramme.
Installation, Konfiguration, Online stellen, Zugriff © by Lars Koschinski 2003.
Termin Festlegung Einführung MySQL Runterladen MySQL, Pentaho Design Studio Betrachtung Pentaho
A Workshop About this chapter General description Units Time Schedule
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
Microsoft Student Partner
Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.
Remoting DEVOP PART II: WINDOWS POWERSHELL. Remoting  Ermöglicht es, alle CMDlets auch per Remote auf einem anderen Server auszuführen  Dafür gibt es.
Arrow ECS Training Get-KnowHow | Select-Object -property 'Essential' Windows PowerShell v5: Die Neuerungen im Überblick Thorsten Butz.
How to Pipelining DEVOP PART I: WINDOWS POWERSHELL.
IIS The microsoft way. © Windows NT Option pack optionale Server Komponenten IIS (Internet Information Server) Webserver von Microsoft.
Tutorium Software-Engineering SS14 Florian Manghofer.
Das IT - Informationssystem
10 Gründe, weshalb ich Powershell hasse
PowerShell das geniale Allzweck-Werkzeug !
Arrow ECS Training Get-KnowHow | Select-Object -property 'Essential'
Implementieren von Klassen
 Präsentation transkript:

.NET Users Group Karlsruhe

Worum gehts? Goodby cmd.exe (ok ok, sie bleibt noch ein bisschen) Die Eingabeaufforderung erhält endlich einen würdigen Nachfolger Wenn schon, dann richtig: Es gibt nicht nur Neues gegenüber cmd.exe, sondern viel Neuartiges PowerShell (ehemals Monad) ist strategisch für Microsoft Neue Serveranwendungen werden PowerShell- scriptfähig Z. B. Exchange 2007, Virtual Server 2007

Wenn man eine Shell bauen darf Was muss eine Shell einfach drauf haben, wenn sie sich Shell nennen will? Alles Bewährte Pipes, Ein-/Ausgabeumleitung Richtiges Scripting, Ablaufsteuerung Und was hätten wir gerne? Neue Ideen, größere Mächtigkeit Einheitliche Befehlsstruktur Sicherheit

Der #1 Gag überhaupt PowerShell ist vollständig.NET 2.0-basiert Wäre ja zu erwarten… aber: Pipes reichen.NET-Objekte durch! Variablen halten.NET-Objekte! Einige Konsequenzen: Formatierte Ausgabe! Liste, Tabelle, CSV, XML… Filtern, Sortieren und sogar Gruppieren nach.NET-Eigenschaften

Was ist ein Befehl? Befehle gibts nicht mehr, da sagt man jetzt CmdLet dafür ;-) CmdLets sind.NET-Klassen, abgeleitet von einer Basisklasse PowerShell nimmt CmdLets Arbeit ab Argumente parsen, prüfen und ggf. Fehlermeldungen erzeugen CmdLets bekommen.NET-Objekte und geben.NET-Objekte aus

Einheitliche Befehlsstruktur CmdLets werden immer durch die Kombination Verb-Objekt aufgerufen Get-ChildItem,, Get-WmiObject, Format-Table, Out-Printer, Group-Object, Export-Csv, … Wenige Verben, viele Objekte Es gibt Aliase Get-ChildItem = gci = dir = ls Vordefinierte und selbst definierte Auch die Parametersyntax ist einheitlich Sie wird von der Shell geparst, nicht vom CmdLet!

Nu zeig doch endlich… Demo!

Wie findet man was? Wer suchet…… der findet Welche Befehle gibt es?Get-Command Welche Methoden und Eigenschaften hat dieses Objekt? Get-Member, Get-Member -static Hilfe zu einem BefehlParameter -? oder Get-Help Welche Aliase sind definiert?Get-Alias Welche Funktionen sind definiert?Get-ChildItem Function: Welche Provider gibt es?Get-PSProvider Hä? Provider? Wasn das nu wieder?Siehe nächste Folie ;-)

Gag #2: Provider! Provider liefern PowerShell-Laufwerke Ja, A:, C: und D: nebst Kollegen sind alle noch da Aber jetzt gibt es auch Laufwerke namens… Alias:Enthält alle Aliase Cert:Enthält den Zertifikatsspeicher Env:Enthält das Environment Function:Enthält alle per PowerShell- Scriptsprache definierten Funktionen HKCU: und HKLM:Enthält die Registry Variable:Enthält alle Variablen

Mit cd, äh, Set- Location in die Registry? Ja! Demo!

Des Kaisers neue Kleider PowerShell kann man anpassen Schlüssel dazu sind Profile Profile sind Textdateien Gibts global auf der Maschine Kanns geben pro User Ganz extrem per XML-Konfigurationsdateien Variable $profile enthält Pfad zum eigenen Profil Erstmaliges Anlegen mit New-Item $profile –force Editieren mit notepad $profile (yeah!) Standardmäßig nicht zugelassen – SD³

Ja wie, Scripte gehen nicht? Secure by Design, Deployment, Default hat Folgen Ausführung aus lokalem Verzeichnis nur via.\Befehl Wirkt eingeschleusten Virus-notepad.exe entgegen Scripterweiterung.ps1 ist nicht mit PowerShell verknüpft Nix da mit Doppelkick auf Script! Scripts sind standardmäßig aus Erst durch Set-ExecutionPolicy aktivierbar Das darf ein normaler User gar nicht einstellen

Gag #3: Edel-Bauklötze Get-ChildItem, New-Item, Remove-Item gehen auf jedem PowerShell-Laufwerk Where-Object, Sort-Object, Group-Object filtern, sortieren, gruppieren nach egal was ForEach-Object führt Befehl/Script auf jedem Objekt aus $variable erzeugt eine Hashtable Select-Object gibt nur bestimmte Eigenschaften, nur eindeutige oder die ersten/letzten n Objekte weiter Add-Member fügt neue Eigenschaften hinzu!

Was kann man damit machen? Demo!

Gag #4: Zugriff aufs.NET Framework (12345).ToString("x") $extension = [IO.Path]::GetExtension($path) $r = New-Object System.Random; $r.Next $Voice = New-Object -comObject SAPI.SPVoice; $Voice.Speak("Hello, world!") Und: Beliebige.NET DLLs laden!

Gag #5: Lad doch, was Du willst! [System.Reflection.Assembly]::LoadFile($My AssemblyPath) Erlaubt Zugriff auf Objektmodelle, die in Form einer.NET DLL vorliegen! Beispiele: SQL Server 2005 DMO SF ft Community Publisher (Demo!)

Gag #6: Erweiterbarkeit Es gibt ein SDK zur PowerShell Man kann eigene CmdLets, Provider usw. bauen Exchange 2007 und Virtual Server 2007 Management machen genau das Mehrere Community-Projekte machen dasselbe

Kritik Für eine Version 1.0 schick, aber da fehlt noch was… Komfort: Keine Script-IDE, kein zeitgemäßes Debugging Community liefert mehrere Alternativen Features Beispiel: Komfortabler ADSI-Zugriff war in Beta, ist aber rausgefallen Auch hier hat die Community was zu bieten Manchmal noch nicht zu Ende gedacht Beispiel: Get-Service liefert Startmodus nicht Dann nehmen wir halt gleich Get-WmiObject Win32_Service Version 2.0 wird bestimmt noch besser ;-)