Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Ida Henriette Hauer Geändert vor über 6 Jahren
1
PowerShell das geniale Allzweck-Werkzeug !
Hubert Köppen MCT Microsoft Certified Trainer for SharePoint, since @ Connect, 2014
2
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
3
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: (enthält Win-RM 3 und ISE , …) .NET FrameWork 4.5 wird vorausgesetzt !
4
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 !
5
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:
6
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
7
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
8
Cmdlets: Befehlsfülle durch zusätzl. Erweiterungen
PS-Erweiterung Cmdlets/Funktionen PowerShell 4 Basis Exchange Exchange Exchange SQL Server SharePoint SharePoint
9
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
10
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
11
Hilfe aktualisieren Get-Service -?
Achtung Erstmal nein zu folgender Meldung! Get-Help Get-Service –full Update-Help * -force
12
Hilfe aufrufen Get-Service -? = get-help get-service
Get-help Get-Service –examples detailed full
13
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
14
Aliase Dir Dir /s Get-ChildItem Get-childitem –recurse Get-Alias
Set-Alias -Name gs -Value Get-Service
15
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
16
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
17
Arbeiten mit XML Get-Service | export-Clixml ausgabe.xml
notepad ausgabe.xml Import-Clixml ausgabe.xml Import-Clixml ausgabe.xml | Get-Member
18
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!
19
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
20
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))
21
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
22
Wichtige begriffe .NET => enthält 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 klassen !
23
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 { .. $_ .. }
24
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 }
25
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
26
PowerShell-Sprache Variablen Operatoren Werte abfragen
Prozesse wiederholen Fehler erkennen und behandeln
27
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‘
28
Operatoren Durch + - * / hat man die 4 Basis-Rechenarten
Mit % bekommt man den Divisionsrest : % 7
29
Vergleichsoperatoren
Siehe Bild Greater than (gt) lesser or equal (le) not equal (ne) [schlimmer noch ..] -is –contains –match –notlike sind auch möglich …
30
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.ä!
31
Prozesse automatisieren eigene Funktionen, Skripte, Profile
Benutzerdefinierte Funktionen Benutzerdefinierte Filter Erweiterte Funktionen Skript entwickeln Skript ausführen PowerShell-Profile
32
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
33
Erweiterte Techniken Reaktion auf bestimmte Ereignisse
Aufgaben im Hintergrund ausführen Aufgaben zeitlich planen Windows Management Instrumentation
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.