How to Pipelining DEVOP PART I: WINDOWS POWERSHELL.

Slides:



Advertisements
Ähnliche Präsentationen
Das Halteproblem. Gibt es einen Algorithmus, mit dem man für jedes beliebig vorgegebene Programm R und für jede beliebig vorgegebene Eingabe E entscheiden.
Advertisements

Abstrakte Klassen.
Ein Beispiel in Java.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Assoziationen (Beziehungen). Zwischen Objekten kann es eine Beziehung geben.
Polymorphie (Vielgestaltigkeit)
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Excel Kurs Teil III Zinsberechnungen ( Sparbuch, Entnahmeplan, Monatszins ) Das große 1 x 1 ( Berechnungen mit Namen, die Matrixformel ), Blattregister,
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
VFP Class Browser. © 1999 TMN-Systemberatung GmbH Einsatz des Class Browser n Managen von Klassen inklusive, ändern, umbenennen, löschen und umdefinieren.
für gestresste Systemadministratoren...
Wie macht man ein Sudoku? Transformations-Methode:
Test de la banane: Weiter klicken! In Brittanien befinden sich vier verschiedene Tiere unter einer grossen, einer wirklich sehr grossen Palme. ein Löwe.
Eine Bewerbung schreiben
Klicken Sie in der Meldungsleiste auf Bearbeitung aktivieren,
Wir bauen uns eine Webapplikation!
Publicvoid - Onlinenotes SWOS HS 2011/12. Inhalt Vorstellung Website Probleme - Lösungen Quick & easy 2 kalik1, messu2, joosp1, stahm3.
Eine kurze Einführung von Boris Smeisser
Übungsaufgaben für Microsoft Excel
Männer ....
Mohammad Es ist einfach geboren zu werden, aber es ist ganz schwierig Mensch zu sein.
Der Schlüssel zum Erfolg Gut gemacht! Endlich! Leider war es nicht der richtige Schlüssel! Bei manchen Fragen hat man leider keine Wahl. Wie macht.
Technische Hilfe Datenauswertung
Lösungen liegen oft außerhalb klassischer Denkmuster.
Seminar Internet Technologien
DA1 Kapitel 8 Rückblick Deutsch 2 mit Frau M.
Gleichungen und Gleichungssysteme
Power Print Take the best you can get. Allgemeines Wir sind ein kleines Unternehmen, das sich auf Druck und Flock auf Textilien spezialisiert hat. Unsere.
1 Bildschirmpräsentation Möglichkeiten, die Präsentation einer Präsentation vorzubereiten und durchzuführen.
Geschichten um den Computer
Eine Blondine spielt bei „Wer wird Millionär„ mit
Nächste Folie Für eine Präsentation möchte ich Bilder so animieren, dass zuerst Text angezeigt wird, zum Text sollte anschließend ein passendes Bild erscheinen.
Eine Blondine spielt bei mit
Geist Zeit Ich möchte anfänglich nur bemerken das ihr nicht mit der Maus arbeiten müsst, die Präsentation wechselt die Folien automatisch LJB.
Wer von euch hat Lust auf ein Spiel?
Helpdesk: Wie kann ich Ihnen helfen?
Lösen von quadratischen Ungleichungen
Wir helfen Menschen, wie Ihnen ein glückliches und vitales Lebensgefühl zu erreichen. Sie sind auf der Suche nach Ihrer Wunschfigur und Sie haben den Glauben.
EPROG Tutorium #4 Philipp Effenberger
Problem: Datenübertragung Messwerte an B schickenDaten annehmen AB 0,0,1,0,1,0,1,1,1,0.
Helpdesk
Helpdesk: Wie kann ich Ihnen helfen?
Stoppen der Eingabeaufforderung einer Abfrage j drücken Sie dann F5, oder klicken Sie auf Bildschirmpräsentation > Von Beginn an, um den Kurs zu starten.
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
A T I N S.
Forms V1.0. Das Gewand Unser Programm das Forms V1.0 zeigt sich in einem einfach zu bedienenden Gewand. Auf dem folgenden Bild seht ihr die erste Erscheinung.
Witze 87.
An alle die sich einsam fühlen
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Viern - Progammierung. Im Jahre 1981 traten die ersten Viren auf, die noch sehr einfach gestrickt waren, und nicht sehr destruktiv waren. Mittlerweile.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Reihenfolge der Operatoren
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.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
07 Mathematik Lösung 2008 ZKM. Mathematik Übungsserie ZKM 2008 Aufgaben Serie 9 ZKM© Aufnahmeprüfungen Gymnasien, Mathematik / 30 einer Zahl.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Lineare Optimierung Nakkiye Günay, Jennifer Kalywas & Corina Unger Jetzt erkläre ich euch die einzelnen Schritte und gebe Tipps!
Tutorium Software-Engineering SS14 Florian Manghofer.
Helpdesk.
Konstruktoren.
10 Gründe, weshalb ich Powershell hasse
Es gibt Klassen, die mit der Entwicklungsumgebung ausgeliefert werden
Klicke auf eine Zahl..
 Präsentation transkript:

How to Pipelining DEVOP PART I: WINDOWS POWERSHELL

DEVOP

Das Monad Manifest  Get Objects | Process Objects | Output Objects

Beispiel einer Pipeline  Alle Dienste stoppen:  get-service | stop-service  Bestimmte Dienste stoppen:  get-service –name *bits* | stop-service

Was geht in die Pipeline?  Was übergeben wird, wird auf dem Bildschirm dargestellt, wenn ein CMDlet ausgeführt wird  Ein CMDlet übergibt jedoch ein Objekt an die Pipeline  Ein Objekt hat «Properties» und «Methods» (Beispiel: «Farbstift»)  Jedes Objekt hat unterschiedliche «Properties» und «Methods»  Ein Stift hat eine Farbe und kann Schreiben  Ein Fahrrad hat einen Lenker, Pedale und kann Fahren und Lenken  Diese «Properties» und «Methods» können mit der Übergabe an «get- member» sichtbar gemacht werden

ABER: Wie funktionieren Pipelines nun wirklich?

Wie funktionieren Pipelines?  2 Kriterien gilt es von den CMDlets zu erfüllen:  1. Was gibt das CMDlet weiter?  2. Was nimmt das nächste CMDlet an?

Was kommt raus?

Was gibt ein CMDlet weiter?  Dies kann durch das CMDlet «get-member» herausgefunden werden: ByValue ByPropertyName

ByValue  Ist das erste Kriterium, welches geprüft wird  Vergleicht den Objekttyp auf String-Basis

ByPropertyName  Ist das zweite Kriterium, welches geprüft wird  Zeigt an, welche Properties mit welchen Namen weitergegeben werden

Was geht rein?

Was nimmt das CMDlet an?  Kann mit «get-help» mit dem Parameter «-full» herausgefunden werden:

Tipp  Ermöglicht schnellere Suche in Help:  get-help -ShowWindow

Spezialfall Nummer 1…

Funktioniert das?  get-service | stop-process  Eigentlich schon – aber es macht keinen Sinn…  …aber weshalb?

Deshalb funktioniert das…  «get-service» gibt folgendes weiter:  ByValue: «ServiceController»  ByPropertyName: alle Properties, u.a. auch «Name» ByValue ByPropertyName

Deshalb funktioniert das…  «stop-process» nimmt folgendes an:  ByValue: «Process»  KEIN MATCH!  ByPropertyName: u.a. auch «Name»  MATCH!

Spezialfall Nummer 2…

…und was ist mit dem…?!?  Das Ziel: Wir möchten alle Computer aufgelistet erhalten, auf welchen der BITS-Service ausgeführt wird  get-adcomputer –filter * | get-service –name bits  …funktioniert das so?!?

Leider nein…  «get-adcomputer» liefert ein «ADComputer»-Objekt zurück  «get-service» erwartet ein «ServiceController»-Objekt   KEIN MATCH ByValue!  «get-adcomputer» liefert aber ein «name»-Property zurück  «get-service» kann ein «name»-Property annehmen   MATCH ByPropertyName  ABER: «get-service» erwartet einen Service-Namen – «get-adcomputer» liefert aber einen Computer-Namen

…oder doch…?!?  «get-service» hat einen weiteren Parameter namens «computername»  Dieser akzeptiert auch Inputs «ByPropertyValue»  «get-adcomputer» liefert aber den Computernamen als Property «name», was wiederum dem «name»-Parameter von «get-service» – also dem Namen eines Dienstes – entspricht…

NoteProperties…  Mit dem folgenden Befehl können nur bestimmte Spalten der eigentlichen Ausgabe angezeigt werden:  get-service –name bits | select –property name,status  Was passiert aber, wenn man sich vertippt?  get-service –name bits | select –property naem,ststus  Resultat: Es werden zumindest die Spaltenüberschriften ausgegeben – und was ist mit «get- member»?  get-service –name bits | select –property naem,ststus | get-member  Hier haben wir die «NoteProperties»… - also eigene benutzerdefinierte «Properties»

Wie kann uns das helfen?  Was wäre, wenn wir das Property «name» von «get-adcomputer» auf «ComputerName» umbenennen könnten?  get-adcomputer | select definiert einen Hashtable  …also eine Tabelle mit Namen und Werten (Names und Expressions)  $_ bezieht sich jeweils auf das CMDlet-Objekt vor der Pipe  …und dieses Objekt hat ein Property namens «name»  Noch kürzer geht’s mit…:  get-adcomputer | select

…und es geht doch…!  Wir fassen zusammen…:  get-adcomputer | select | get-service – name bits

Spezialfall Nummer 3…

Get-WMIObject  «get-wmiobject» kann Informationen zum lokalen oder auch entfernten Computern anzeigen:  get-wmiobject –class Win32_bios  get-wmiobject –class Win32_bios –computername SRV01  …lasst uns dies für alle Computer im AD ausführen…  get-adcomputer | select | get-wmiobject –class Win32_bios

WäWäWäWääääähh…

Wie der (Fail!) aussieht…:

Der Grund dahinter…  «get-wmiobject» akzeptiert keinerlei Pipeline-Inputs (gemäss «get-help»)

Let’s Try & Error…  «get-wmiobject» akzeptiert keinerlei Pipeline-Inputs (gemäss «get-help»)  «get-wmiobject» möchte einfach im Parameter «ComputerName» ein paar Computernamen als String  Etwa so:  get-wmiobject –class Win32_bios –computername SRV01,SRV02  Wieso also nicht…:  get-wmiobject –class Win32_bios –computername get-adcomputer –filter *  …weil Powershell so nicht weiss, welches CMDlet zuerst ausgeführt wird… - aber wieso dann nicht so (wie früher in der Algebra – Klammern kommen zuerst)…:  get-wmiobject –class Win32_bios –computername (get-adcomputer –filter *)  …weil «get-adcomputer» ein «ADComputer»-Objekt zurückliefert und keinen String…

Let’s Try & Error… (Part II)  «get-adcomputer» liefert also zu viele Informationen (Properties) zurück… - Weshalb dann nicht einfach…:  get-adcomputer –filter * | select –property name  …weil es dann immer noch ein «ADComputer»-Objekt ist (just pipe it to «get-member» to know it…) ;-D

Let’s Try & Error… (Part III)  Das CMDlet «select-object» hat auch einen Parameter «expandProperty»…:  get-adcomputer –filter * | select –expandproperty name  …und siehe da…:

Die Lösung…!  Die Lösung lautet also…:  get-wmiobject –class Win32_bios –computername (get-adcomputer –filter * | select –expandproperty name)  …aber es geht ab Powershell 3.0 noch einfacher…:  get-wmiobject –class Win32_bios –computername (get-adcomputer –filter *).name