Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist Version 1.3b/21.02.08 Download...

38
Windows PowerShell { für Administratoren} Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist www.IT-Visions.de Version 1.3b/21.02.08 Download der Folien und Skri http://www.it-visions.de/v49 spx

Transcript of Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist Version 1.3b/21.02.08 Download...

Page 1: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Windows PowerShell{ für Administratoren}

Dr. Holger SchwichtenbergSoftwarearchitekt, Berater, Fachjournalistwww.IT-Visions.de

Version 1.3b/21.02.08

Download der Folien und Skripte:http://www.it-visions.de/v4991.aspx

Page 2: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Dr. rer. pol. Diplom-WirtschaftsinformatikerMVP, .NET Code Wise Member, MCSDseit 1996 Softwareentwicklung mit Windows COM/.NETHeute: Firma www.IT-Visions.de (Sitz: Essen)

50%: Architektur, Design, Entwicklung50%: Beratung, Schulungen, Coaching, Fachartikel, Fachbücher, Konferenzvorträge

Fachjournalist iX, DOTNETpro, Computer Zeitung, Windows IT Pro, PC Magazin, ObjektSpectrum, MSDN Online, u.a.Buchautor Addison-Wesley, Microsoft Press, WEKA MediaVortragender nationale und internationale Fachkonferenzen (TechEd, OOP, ADC, BASTA, IT Forum, STC, WI, Net.Object Days, etc.)

Kontakt [email protected] Website http://www.dotnetframework.deWeblog http://www.dotnet-doktor.de

Über den Sprecher : Dr. Holger Schwichtenberg

Page 3: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Bücher zur PowerShell

16. März 2007

150 Seiten zur PowerShell

18. Oktober 2007

Page 4: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Wer sind Sie?

Windows Administratoren (oder Entwickler)Erfahrung mit Batch, WSH, ADSI, WMIKeine Grundkenntnisse in PowerShell (dies ist ein Einführungsvortrag „Level 200“ !)

Page 5: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

InhaltDie wichtigsten Fakten zur PowerShellMotivation: WSH versus PowerShellGrundkonzepte der PowerShell

Commandlets Objektorientiertes PipeliningAnbindung an .NET, COM und WMIEinheitliches Navigationsparadigma PowerShell Skript LanguagePowerShell-Skripte

AnwendungsbeispieleProzesse, Dienste, Dateisystem, EreignisprotokolleRegistryACLsActive DirectoryIIS 7.0Datenbankzugriff

Ausblick

Page 7: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Die wichtigsten Fakten zur PowerShell

Interaktive Systemadministration + ScriptingNachfolger von DOS-Fenster und WSHBasis: .NET 2.0 (läuft aber auch mit .NET 3.x!)Option in W08, kostenfreies Add-On für XP, 2003, VistaZugriff auf .NET, COM, WMI, ADSI, XML, u.v.m.Einzelbefehle: Commandlets (.NET-Klassen)Befehlskombination: Objekt-PipeliningSkripte: PowerShell Skript Language (PSL)Mengen: Navigation ProviderEigene Commandlets (Skript oder .NET)Hosting der PowerShell in eigenen .NET-AnwendungenPowerShell-fähige Produkte: Exchange 2007, System Center Virtual Machine Manager (SCVMM), …

Page 8: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Installation in Windows 2008

Page 9: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Motivation: Softwareinventar

Erstelle eine Inventardatei (CSV)Alle installierten AnwendungenFilter auf HerstellerVon mehreren ComputermIn eine CSV-Datei

Eingabedatei: Computernamen.txtAusgabedatei: Softwareinventar.csv

Page 10: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Lösung mit dem WSH/VBScript

Page 11: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Lösung mit der PowerShell

Page 12: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Einflussfaktoren

PowerShell

Microsoft DOS-Shell

Unix-Shells

.NET Framework

Windows Script Host

Windows Management

Instrumentation (WMI)

Oberfläche,

Befehlsnamen

Pipelining,

Sprachsy

ntax,

Befehlsnamen

Perl, C#Sprachsyntax

Objektorie

ntierung,

Softwareko

mponenten,

Reflecti

on,

Klassen

Kla

ssen

,S

iche

rhei

tsko

nze

ptKlassen,

Kommandozeilenwerkzeug wmic.exe

Page 13: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Commandlets & andere Befehle

Commandlets (Cmdlets)Allgemeine Syntax: Verb-Substantiv [-Parameterliste]Beispiele:

get-process, get-service, get-locationget-childitem c:\daten, set-location c:\windows,remove-item, u.a.get-command, get-help

Mathe: 10* (8 + 6)DOS-/Windows-EXEs: c:\Windows\Notepad.exe WSH-Skriptdateien: .vbs, .js, .vbe, .wsf, etc.Windows-Dokumente: .pdf, .doc, .xls, etc.

DEMO

Page 14: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Objektorientiertes PipeliningKeine unstrukturierten Daten == Zeichenketten (kein grep, kein sed)sondern .NET-Objekte (strukturiert!)PowerShell Pipeline Processor reicht Objekt von Upstream- zu Downstream-Objekt weiter"compositional model of administration" Get-Process | Where-Object { $_.name -eq "iexplore" } | Format-Table ProcessName, WorkingSetget-childitem c:\daten -filter *.dll | where-object {$_.Length -gt 40000}| sort-object Length | format-list

Page 15: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Pipelining-CommandletsAusgaben: Format-Table, Format-List, Format-Wide Filtern: where-object, select-object –first / -last"Kastrieren": select-object(Abschneiden von Attributen der Objekte)

Sortieren: sort-objectGruppieren: group-objectSequentielle Verarbeitung: foreach-objectPipeline analysieren: get-memberBerechnungen: measure-objectVariablen in Pipelines: $x = get-process … $x | …Zusammenfassung: $( get-process ; get-service )

DEMO

Page 16: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

PowerShell Pipeline Processor

Commandlet #1get-service

Commandlet #2 where-object

Commandlet #3out-file

PowerShell Pipeline Processor

Out

put

pip

elin

e

Inpu

tpip

elin

e

Ou

tput

pipe

line

Inpu

tpip

elin

e

Upstream

-C

omm

andlet

Do

wnstream

-C

omm

andlet

© Dr. Holger Schwichtenberg 2004-2006

get-service | Where-Object {$_.status -eq "running"} | out-file

Objekt vom Typ System.

ServiceProcess.ServiceController

Selektion

Speicherung

Page 17: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

NEU: PowerShell Plus

Kommandozeile mit IntelliSenseEditor mit IntelliSense und Debuggerhttp://www.powershell.com79 Euro / kostenlos für nicht-kommerziellen Einsatz

DEMO

Page 18: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Verlosung…

Drei Vollversionen der PowerShell PlusIm Wert von 79 Euroan die drei Personendie eine E-Mail mit dem Betreff „PowerShell ist cool!“… im Posteingang von [email protected] platzieren…als 1., 15. und 50. !

Page 19: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Allgemeine Parameter

Viele Commandlets unterstützen: -Whatif -Confirm-Verbose DEMO

[email protected]

PowerShell ist cool!

Page 20: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Arbeit mit Objekten

Instanziieren, Methoden, Attribute, (Abfragen).NET$d= new-object System.DateTime(2004, 12,1[System.Environment]::ComputerName

COM$wsh = new-object –com "WScript.Shell"

WMIget-wmiobject win32_useraccount

Beispiel (.NET): $Url = "http://www.windows-scripting.com" $wclient = new-object System.Net.WebClient $html = $wclient.DownloadString($Url)

DEMO

Page 21: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

WMI-Beispiele

Name und freie Bytes auf allen LaufwerkenGet-Wmiobject Win32_logicaldisk | Select-Object deviceid,freespaceName und Domain der Benutzerkonten, deren Kennwort niemals verfälltGet-Wmiobject Win32_account | Where-Object {$_.Kennwortexpires -eq 0 } | Select-Object Name,DomainAlle Netzwerkadapter mit TCP/IP (Filter)Get-Wmiobject Win32_NetworkAdapterConfiguration -Filter "IPEnabled=true" | select Description,IPAddressAusgewählte Protokolleinträge (WQL)Get-WmiObject -query "SELECT RecordNumber, Message FROM Win32_NTLogEvent where Logfile='Application' and TimeWritten > '14/02/2008' and message like '%exchange%'"

Page 22: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

PowerShell ProviderUnterschiedliche Datenmengen: hierarchisch/flachGleiche Verben: get, set, new, remove, etc.Get-PSDriveMenge der Provider und Menge der Laufwerke ist erweiterbar Verfügbare Mengen

RegistryUmgebungsvariablenAliaseZertifikateVariablenActive Directory/LDAP PSCXDemnächst: SQL Server

Page 23: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Registry-BeispielNavigation zu HKEY_LOCAL_MACHINE/Softwarecd hklm:\softwareKurzform für: Set-Location hklm:\softwareAuflisten der Unterschlüssel des aktuellen SchlüsselsDirKurzform für: Get-ChilditemErzeugen eines Unterschlüssels mit Namen „IT-Visions“md IT-VisionsErzeugen eines Unterschlüssels mit einem StandardwertNew-Item -Name "Inhaber" -Value "Dr. Holger Schwichtenberg" -type StringErzeuge WertNew-Itemproperty -path "hklm:\software\www.it-visions.de" -name "Inhaber" -value "Dr. Holger Schwichtenberg" -type stringLese WerteGet-ItemProperty

DEMO

Page 24: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Skripte - Kontrollstrukturen$Variableif (Bedingung) {…} else {…}switch ($var) { Wert: {…} }while(Bedingung) { … }do { … } while (Bedingung)do { … } until (Bedingung)foreach ($var in $menge) {…}function name {…}returntrap Fehlerklasse { … } else { … }throw "Fehlertext"throw FehlerklasseExit# Kommentar

Page 25: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

SkriptdateienTextdateienDateierweiterung .ps1. Die Zahl 1 steht dabei für die Version 1.0 der PowerShell. Microsoft hat in Hinblick auf die Langlebigkeit vieler Scripts vorgesehen, dass verschiedene Versionen der PowerShell auf einem System koexistieren können.Start innerhalb der PowerShell:

Skriptname oder Skriptname.ps1 oder&Skriptname.ps1 oderInvoke-Expression Skriptname.ps1

Außerhalb der PowerShell:PowerShell Skriptname.PowerShellPowerShell –command Skriptname.PowerShell

Page 26: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Beispiel

Page 27: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Execution Policies

Restricted: keine Skripte (STANDARDEINSTELLUNG!)AllSigned: nur signierte Skripte, signierte Skripte von nicht-vertrauten Quellen auf NachfrageRemoteSigned: Signatur nur für Skripte aus dem Internet (via Browser, Outlook, Messenger)Unrestricted: alle Skripte laufen

DEMO

Page 28: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Skripte signieren

makecert.exedir cert:## sign-file.PowerShell## Sign a fileparam([string] $file=$(throw "Please

specify a filename."))$cert = @(get-childitem cert:\

CurrentUser\My -codesigning)[0]set-authenticodeSignature $file $cert

Page 29: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

{ Anwendungsbeispiele}

- Dateisystem: Ordnergrößen ermitteln (rekursiv)- Dateisystem: ACL verändern- Active Directory: Benutzer anlegen (zwei Varianten)- Eine Datenbank auslesen (und Benutzer anlegen)- IIS: Eine Menge von IIS-Websites anlegen

Demos Download des Codes:http://www.it-visions.de/V4991.aspx

Page 30: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Fazit

IntuitionPrägnanzTypsicherheit

Noch ist die PowerShell nicht weit verbreitet (Noch verkaufen wir mehr Bücher zum WSH als zur PowerShell)Windows Server 2008 wird einen Schub bringen

Page 31: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Ausblick: PowerShell 2.0· Es gibt bereits eine CTP-Version!

· Graphical PowerShell (Editor)· Fernaufruf mit WS-MGMT· Asynchrone Befehlsausführung (Jobs)· Konsolenbasiertes Script Debugging · Eingeschränkte Shells, die nur bestimmte

Befehle/Skripte zulassen ("Restricted Runspaces")

· Ereignissystem, das über Änderungen in beliebigen Objekten informiert

· Verpacken von Skripten und zugehörigen Datendateien

· Verbesserung bei WMI, ADSI, u.v.m.

Page 32: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Links: Werkzeuge & ErweiterungenPowerShell 1.0

http://www.microsoft.com/technet/scriptcenter/topics/msh/download.mspxPowerShell Documentationhttp://www.microsoft.com/downloads/details.aspx?familyid=B4720B00-9A66-430F-BD56-EC48BFCA154F&displaylang=enPowerShell Community Extensions (PSCX)http://www.codeplex.com/PowerShellCXIT-Visions.de PowerShell Extensionshttp://www.it-visions.de/scripting/powershell/PowerShellCommandletExtensions.aspxPowerShell Gadgetshttp://www.powergadgets.com/PowerShellPlushttp://www.powershell.comPowerShell WMI Explorerhttp://thepowershellguy.com/blogs/posh/archive/2007/03/22/powershell-wmi-explorer-part-1.aspxPowerShell Analyzerhttp://www.karlprosser.com/coder/?page_id=14PowerShell Helphttp://www.primalscript.com/freetools/defaultin.aspPowerShell Tabhttp://www.primalscript.com/freetools/defaultin.asp

Page 33: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Links: InformationenOffizielles Weblog des PowerShell-Teams: http://blogs.msdn.com/PowerShellPowerShell-Community-Website des Sprechers: http://www.powershell-doktor.deOffizielle PowerShell-Website: http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspxSammlung von PowerShell-Scripts: http://www.microsoft.com/technet/scriptcenter/scripts/msh/default.mspx?mfr=true Websites mit Scripts: http://powershell.wiki.com/ und http://scripts.readify.netLink-Liste von PowerShell-Ressourcen: http://del.icio.us/powershellPowershell Live User Community: http://powershelllive.com

Page 34: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Mehr zur PowerShell oder .NET?Beratung, Schulungen (öffentlich und In-House), Workshops, Coaching, EntwicklungNächste PowerShell-Schulungen (Holger Schwichtenberg & Peter Monadjemi):

28.4.-30.4.2008   in Essen4.-6.6.2008   in Essen8.-10.10.2008 in Essen

Telefon 0201/[email protected]

Page 35: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Am Ende...

Danke für Ihre Aufmerksamkeit!

FRAGEN ?jetzt!!! …oder später unter www.IT-Visions.de/Foren

Download der Folien und Skripte:http://www.it-visions.de/v4991.aspx

Page 36: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 37: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Windows Server 2008weitere Ressourcen

Windows Server 2008 Tech Centerhttp://www.microsoft.com/germany/technet/prodtechnol/windowsserver/2008/default.mspx

Windows Server 2008 Webcasts:http://www.microsoft.com/germany/technet/webcasts/windowsserver2008.mspx

Windows Server 2008 Produktseite:http://www.microsoft.com/germany/windowsserver2008/default.mspx

Microsoft Virtualization:http://www.microsoft.com/virtualization/default.mspx

Page 38: Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist  Version 1.3b/21.02.08 Download der Folien und Skripte: .

Ask the ExpertsWir freuen uns auf Ihre Fragen: Technische Experten stehen Ihnen während der gesamten Veranstaltung in der Haupthalle zur Verfügung.