PowerShell das geniale Allzweck-Werkzeug !

Slides:



Advertisements
Ähnliche Präsentationen
Was gibt´s neues im Bereich Sicherheit
Advertisements

.NET Users Group Karlsruhe Worum gehts? Goodby cmd.exe (ok ok, sie bleibt noch ein bisschen) Die Eingabeaufforderung erhält endlich einen.
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Pflege der Internetdienste
Allgemeine Technologien II
Objektorientierung mit VBA
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
XINDICE The Apache XML Project Name: Jacqueline Langhorst
SQL als Abfragesprache
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Programmieren mit JAVA
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
Einführung in die Programmierung Datensammlung
Einführung MySQL mit PHP
Der VFP Debugger - Coverage und Profiling. © 1999 TMN-Systemberatung GmbH Der VFP Debugger n Neues Aussehen, eigene Task n Erweiterte Möglichkeiten n.
Installation FAQ-Forum Zope Basisinstallation Zusätzliche Module (Products) Grundkonfiguration Einrichten neuer Foren.
Eine Welt jenseits von Fenstern und Mausklicks
Wir bauen uns eine Webapplikation!
Patrick Schmerlaib. Scriptsprachen: sind Programmiersprachen Verzichten auf Sprachelemente Vorteile: schnelle Erstellung kleiner Programme Flexible Sprache.
Eine kurze Einführung von Boris Smeisser
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Seminar Internet Technologien
Claudia Fischer Licensing Marketing Manager Jochen Katz Product Manager – Windows Server Anna Fetzer Product Manager – System Center.
Scripting mit Windows PowerShell
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
.net c# Gruppe 3 Image Viewer Realisierbarkeit in C# Hackl, Lamprecht, Leimer.
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
… und was man damit machen kann.
Zeit:Aktion: 08:30Begrüßung, Organisation 08:45Einführung - Was heißt OPC - OLE for Process Control --> Folie - OPC definiert eine offene Schnittstelle,
Objectives Verstehen was unterDelegate verstanden wird
Einführung in PHP.
Einführung in PHP 5.
Benutzer und Gruppen In Windows 2000 Server Benutzer anlegen Gruppen anlegen Verschiedene Rechtevergabe Diese Präsentation wurde erstellt von, Kaspar Chrisitian.
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
Zero Administration Kit für Microsoft® Windows® Jörg Kramer University Support Center.
SharePoint 2013 Web Services
Die Vereinsverwaltung unter Windows 2000 Anhand der folgenden Präsentation werden Sie mit der Verwaltung des Vereins unter Windows 2000 vertraut gemacht.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Musterlösung IT-Struktur an Schulen © M. Stütz, F. Wrede LEU - Zentrale Planungsgruppe Netze am Kultusministerium Baden-Württemberg zwei Benutzerverwaltung.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
"Aktive VISIO-Schablonen zur grafischen Erstellung von DIANE-Dienstbeschreibungen" Thomas Herzog Betreuer: Michael Klein Universität Karlsruhe - 1 -
Datenbanken erstellen mit PostgreSQL
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.
Windows Management Instrumentation
WS2016: Container von A bis Z
SAP – Installation auf Windows Server 2008 R2 Enterprise
Erweiterte Azure Dienste
General Download Finder
Effizientes Arbeiten am PC
Templates
Arrow ECS Training Get-KnowHow | Select-Object -property 'Essential'
Implementieren von Klassen
HSP Spotlight Graz, Februar 2010.
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

PowerShell das geniale Allzweck-Werkzeug ! Hubert Köppen MCT Microsoft Certified Trainer for SharePoint, since 2011 @ Connect, 2014

Kursablauf Voraussetzungen für und Erste Schritte mit Windows PowerShell 4 Cmdlets und Funktionen in der Windows PowerShell Klassen und Objekte in der Windows PowerShell PowerShell-Sprache Prozesse automatisieren, Anpassungen, Skripte Administration der EDV-Landschaft Erweiterte Techniken

Voraussetzungen und unterstützte Betriebssysteme in Win 8.1 und Server 2012 R2 enthalten Auf Win 7 SP1, Srv 2008 R2 SP1 und 2012 installierbar Win 8 geht gar nicht gebraucht wird das Win-Management Framework 4 von: http://www.microsoft.com/de-de/download/details.aspx?id=40855 (enthält Win-RM 3 und ISE , …) .NET FrameWork 4.5 wird vorausgesetzt !

Unterstütze / Nicht-unterstütze Systeme Nicht unterstützte Systeme Exchange Server 2013 SP1 Exchange Server 2010 SP3 mit UR5 Machine Manager System Center 2012 Configuration System Center Virtual Manager 2008 R2 SharePoint Server 2013 SP1 SharePoint Server 2010 mit CU Februar 2014 Exchange Server 2007 Small Business Server 2011 Aktuelle Liste auf der Download-Seite des WMF-4-Pakets !

Erste Schritte mit der PS Klassische Eingabeaufforderung Wichtig: TABs, Pfeile, F7 Grafische Entwicklungsumgebung „von nun an : Öffne immer die ISE als Admin … !“ Wichtig: F9-Haltepunkte setzen, F11 Einzelschritte Virtuelle Laufwerke mit Get-PSDrive Zugriff auf Registry (HKLM und HKCU) Zugriff auf Zertifikatsspeicher Zugriff auf WSMAN Zugriff auf Variablen Klassische: Get-Service cls Get-AD.. Tab Tab Tab Tab geht auch mit Parametern, z.B. Get-Service - Tab Tab Tab Pfeil rauf Pfeil runter Get-History bzw. F7 oder auch Start-Transcript c:\Transcript.txt Grafische ISE: Gibt grafische Hilfe , auch bei Parametern Randbereich erklären Debugger mit F9 und F11 Virtuelle Laufwerke: Zur Registry per cd HKLM: und cd Software\Microsoft mit md Test neuen Ordner erstellen und nachschauen Mit rm test entfernen Zum Zerti-Speicher per cd cert: cd currentUser\My Zum Variablen-Laufwerk mit cd Variable: analog cd Functions:

Cmdlets , Alias_se, Funktionen Dieses Kapitel ist sehr umfangreich Die nächste Folie zeigt deshalb erstmal den Überblick über den Inhalt Danach geht es einzeln weiter

Cmdlets , Alias_se, Funktionen Cmdlets und Funktionen Befehle finden Kommando-Aufrufvarianten Hilfe aktualisieren auf Alle Module bezogen Hilfe aufrufen auf einzelne Cmdlets-bezogen Syntax Aliase Cmdlets verketten CSV-Strukturen verarbeiten XML-Strukturen verarbeiten Wichtige Ausgabe-Cmdlets Snap-Ins und Module Datum und Uhrzeit

Cmdlets: Befehlsfülle durch zusätzl. Erweiterungen PS-Erweiterung Cmdlets/Funktionen PowerShell 4 Basis 300 Exchange 2007 400 Exchange 2010 1000 Exchange 2013 2500 SQL Server 2012 40 SharePoint 2010 650 SharePoint 2013 800

Befehle finden / eingeben Get-command evtl. mit verb/noun filtern Unterschied cmdlets, alias, function Die Pipe | Get-Command | sort-object noun Get-Command –noun service | format-list Get-Command *-Service | fl Get-Service | Format-Table Get-Service | ft DisplayName, Status, Name, Servicetype Get-Command –module NetAdapter

Kommando-Aufrufvarianten Get-Service –name wuauserv –ComputerName . (der punkt . steht für den localhost ) Get-Service –N wuauserv –C . Get-Service –C . –N wuauserv Get-Service wuauserv (hierbei ist die Reihenfolge der Argumente wichtig) Get-Service -? Dies zeigt die Standardreihenfolge der Parameter

Hilfe aktualisieren Get-Service -? Achtung Erstmal nein zu folgender Meldung! Get-Help Get-Service –full Update-Help * -force

Hilfe aufrufen Get-Service -? = get-help get-service Get-help Get-Service –examples -detailed -full

Syntax Get-Service wuauserv,winrm,dnscache Vgl. Sie jeweils die Hilfe-Ausgabe für Get-Service und Get-EventLog Get-Service [[-Name] <string[]>] [-ComputerName <string[]>] … => Get-Service wuauserv,winrm,dnscache Get-EventLog [-LogName] <string> [[-InstanceId] <long[]>] [- ComputerName <string[]>] [-Newest <int>] [-After <datetime>] Get-Eventlog (PS fragt nach !) Get-Eventlog System -Newest 20

Aliase Dir Dir /s Get-ChildItem Get-childitem –recurse Get-Alias Set-Alias -Name gs -Value Get-Service

Cmdlets verketten Get-Process Get-Process | Sort-Object cpu Get-Process | Sort-Object cpu | Select-Object processname, cpu Get-Process | Sort-Object cpu | Select-Object processname, cpu | Export-CSV ausgabe.csv Notepad ausgabe.csv Get-Process | Sort cpu -Descending | Select processname, cpu | Export-CSV ausgabe.csv

Arbeiten mit CSV Get-service > ausgabe.txt (mit notepad angucken) Get-Service | Export-CSV ausgabe.csv WICHTIG: dies ergibt keine simple Ausgabeumleitung, sondern alle gelieferten, Werte, komplett ausgeschrieben, mit definiertem Trennzeichen Import-CSV ausgabe.csv Import-CSV ausgabe.csv | get-Member Exkurs: notepad personen.csv Wir schreiben darin Vorname, Nachname, Abteilung und ein paar Personen, was wir dann speichern, ändern dann das Trennzeichen aufs Semikolon, lesen es erneut ein und lesen es nochmal mit -delimiter „;“ ein

Arbeiten mit XML Get-Service | export-Clixml ausgabe.xml notepad ausgabe.xml Import-Clixml ausgabe.xml Import-Clixml ausgabe.xml | Get-Member

Grids Get-Service | Select-Object Name,CanStop,MachineName Get-Service | Format-Table Name,CanStop,MachineName Get-Service | ft Name,CanStop,MachineName –Autosize Get-Service | select Name,CanStop,MachineName | export-csv select.csv Get-Service | ft Name,CanStop,MachineName | export-csv format.csv (die NotepadAugabe zeigt deutlich, dass ft zur Weiterverarbeitung unsinnig ist !) Get-Process | Out-GridView Im erscheinenden Fenster kann man sortieren und filtern ! Starten Sie nun vorab notepad und dann: Get-Process | Out-GridView –PassThru | Stop-Process Wählen Sie im Grid-fenster den Notepad-Prozess, bestätigen mit OK, und sehen Sie wie der ausgewählte Prozess mittels „Passthrough“ gestoppt wird!

SnapIns und Module Anfänglich fehlende AD-, SharePoint- oder Exchange-Befehle müssen nachgeladen werden Get-PSSnapin Get-PSSnapin –Registered Add-PSSnapin –Name *SQL* Get-Command –Module *SQL* Get-Module Get-Module -ListAvailable Import-Module ServerManager Get-WindowsFeature

Datum und Uhrzeit „07/04/14“ dies ist ein String „05/03/14“ | Get-Member zeigt dies (siehe oben) [DateTime]“07/04/14“ dies ist ein DatumsZeit-Objekt [DateTime]“07/04/14“ | Get-Member die Ausgabe zeigt oben auch Rechenmethoden [DateTime]“07/04/14 05:17:20 PM“ Get-Date Get-Date –displayhint time [ bzw. date ] (Get-Date).AddDays(-20) Get-EventLog System –After ((Get-Date).AddDays(-1))

Klassen / Objekte / Methoden / Eigenschaften Beispiel: In der KLASSE „Datei“ gibt es die drei OBJEKTE „abc.txt“, „nix.docx“ und wert.xls“ . Jedes dieser Objekt ist auch eine INSTANZ einer Klasse. Die Klasse definiert, welche Mitglieder/Member jede Instanz haben soll (Eigenschaften, Methoden, Ereignisse). Die Klasse enthält auch den Programmcode zum Aufruf einer Methode, der also nur einmal gespeichert wird. Eine Klasse ist eine Schablone zur Erzeugung von Objekten Ein Synonym für Klasse ist : Objekttyp

Wichtige begriffe .NET => enthält 13542 Klassen ! (Stand .NET 4.5) ($guid = New-Object System.Guid oder $Zufallszeichen = New-object System.randon oder $w = New-Object System.Net.WebClient ) COM => ComponENT Object Model Vorgänger von .NET CIM => Common Information Model kern von WBEM , dem Web based Enterprise management WMI => Windows Management Instrumentation Zugriff auf System- und Netzwerkinformationen, hardwarenah, Microsofts Implementierung von WBEM, auf Windows 8 mit Office 2010 liefert WMI 25114 klassen !

Klassen und Objekte in der Windows PowerShell Es gibt Klassen und Objekte . Deren Eigenschaften und Methoden können mit: „ … | Get-Member „ bzw. „Get-Service | Select-Object * „ ausgelesen werden Punktnotation (Damit erfolgen Aufrufe von Eigenschaften und Methoden) z.B.: „ (Get-Service wuauserv).Status „ => zeigt „Running“ als property und: „ (Get-Service wuauserv).Stop() „ beendet den Dienst per Methodenaufruf Objekte suchen z.B.: Get-service | where-object { $_.Status -eq „Running“ } z.B.: dir C:\windows | where { $_.Length -gt 100KB } Objekte mit einer Schleife verarbeiten das Geheimnis von foreach { .. $_ .. }

Punktnotation und mehr: Übung dir c:\windows | measure-object dir c:\windows | measure-Object -property Length -sum (dir c:\windows | measure-Object -property Length -sum).sum (dir c:\windows | measure-Object -property Length -sum).sum / 1KB Cls “Connect IT Schulung” | Get-Member [welche Methoden gibt es?] “Connect IT Schulung”.ToLower() “Connect IT Schulung”.SubString(0, 7) Get-service | where-object { $_.Status -eq „Running“ } Get-service | where Status -eq „Running“ Get-service | ? Status -eq „Running“ Get-service | where-object { $_.Status -eq „Running“ –and $_.CanStop –eq $true} dir C:\windows | ? { $_.Length -gt 100KB }

Schleifen mit foreach { .. $_ .. } „London“, „Paris“ , „Wien“ „London“, „Paris“ , „Wien“ | foreach { „Verarbeite Wert“ } „London“, „Paris“ , „Wien“ | foreach { „Verarbeite Wert $_“ } „London“, „Paris“ , „Wien“ | New-Item –Type Directory „London“, „Paris“ , „Wien“ | foreach { New-Item –Type Directory -Path $_ } Get-Process | Where { $_.Processname –ieq „wordpad“ } | foreach { $_.Kill() } (Get-Process „wordpad“).Kill() Get-help about_for Get-Help about

PowerShell-Sprache Variablen Operatoren Werte abfragen Prozesse wiederholen Fehler erkennen und behandeln

Variablen $GutVarWort = „London“ $GutVarWort = 5 $GutVarWort = Get-Service [dateTime]$datum = „07/04/14“ $datum = Get-Service [Fehlertext beachten] $vorname = „Udo“ $nachname = „Herbst“ $vorname „Guten Morgen $vorname $nachname“ cls „Pa$$w0rd“ ‚Pa$$w0rd‘

Operatoren Durch + - * / hat man die 4 Basis-Rechenarten Mit % bekommt man den Divisionsrest : 30 % 7

Vergleichsoperatoren Siehe Bild Greater than (gt) lesser or equal (le) not equal (ne) [schlimmer noch ..] -is –contains –match –notlike sind auch möglich …

Werte abfragen if(Get-date).day = 1 { „Beim ersten Tag der Woche erscheint diese Zeile!“ } Else { „anderer Tag““ } Mein Vorschlag: Sie präsentieren sich gleich gegenseitig, einige Varianten wie while-Schleifen, Switch-Abfragen, o.ä!

Prozesse automatisieren eigene Funktionen, Skripte, Profile Benutzerdefinierte Funktionen Benutzerdefinierte Filter Erweiterte Funktionen Skript entwickeln Skript ausführen PowerShell-Profile

Administration Ihrer Server, der Domäne und HV-VMs PowerShell-Remote-Verwaltung Windows Server Manager Active Directory: Benutzer anlegen Active Directory: Benutzer verwalten Active Directory: Gruppen anlegen und verwalten Active Directory: Navigationsparadigma Hyper-V-VMs anlegen und verwalten Grundlagen DSC DSC-Konfiguration

Erweiterte Techniken Reaktion auf bestimmte Ereignisse Aufgaben im Hintergrund ausführen Aufgaben zeitlich planen Windows Management Instrumentation