1 / 38

Windows PowerShell { für Administratoren }

Download der Folien und Skripte: http://www.it-visions.de/v4991.aspx . Windows PowerShell { für Administratoren }. Dr. Holger Schwichtenberg Softwarearchitekt , Berater , Fachjournalist www.IT-Visions.de. Version 1.3b/21.02.08. Über den Sprecher : Dr. Holger Schwichtenberg.

varick
Download Presentation

Windows PowerShell { für Administratoren }

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Download der Folien und Skripte:http://www.it-visions.de/v4991.aspx Windows PowerShell{für Administratoren} Dr. Holger SchwichtenbergSoftwarearchitekt, Berater, Fachjournalistwww.IT-Visions.de Version 1.3b/21.02.08

  2. Über den Sprecher : Dr. Holger Schwichtenberg • Dr. rer. pol. Diplom-Wirtschaftsinformatiker • MVP, .NET Code Wise Member, MCSD • seit 1996 Softwareentwicklung mit WindowsCOM/.NET • Heute: Firma www.IT-Visions.de (Sitz: Essen) • 50%: Architektur, Design, Entwicklung • 50%: Beratung, Schulungen, Coaching, Fachartikel, Fachbücher, Konferenzvorträge • FachjournalistiX, DOTNETpro, Computer Zeitung, Windows IT Pro, PC Magazin, ObjektSpectrum, MSDN Online, u.a. • BuchautorAddison-Wesley, Microsoft Press, WEKA Media • Vortragendernationale und internationale Fachkonferenzen (TechEd, OOP, ADC, BASTA, IT Forum, STC, WI, Net.Object Days, etc.) • Kontakths@IT-Visions.de • Community Website http://www.dotnetframework.de • Webloghttp://www.dotnet-doktor.de

  3. Bücher zur PowerShell 150 Seiten zur PowerShell 16. März 2007 18. Oktober 2007

  4. Wer sind Sie? • Windows Administratoren (oder Entwickler) • Erfahrung mit Batch, WSH, ADSI, WMI • Keine Grundkenntnisse in PowerShell (dies ist ein Einführungsvortrag „Level 200“ !)

  5. Inhalt • Die wichtigsten Fakten zur PowerShell • Motivation: WSH versus PowerShell • Grundkonzepte der PowerShell • Commandlets • Objektorientiertes Pipelining • Anbindung an .NET, COM und WMI • Einheitliches Navigationsparadigma • PowerShell Skript Language • PowerShell-Skripte • Anwendungsbeispiele • Prozesse, Dienste, Dateisystem, Ereignisprotokolle • Registry • ACLs • Active Directory • IIS 7.0 • Datenbankzugriff • Ausblick

  6. GUI versus CLI GUI CLI CLI GUI Linux/Unix Windows

  7. Die wichtigsten Fakten zur PowerShell • Interaktive Systemadministration + Scripting • Nachfolger von DOS-Fenster und WSH • Basis: .NET 2.0 (läuft aber auch mit .NET 3.x!) • Option in W08, kostenfreies Add-On für XP, 2003, Vista • Zugriff auf .NET, COM, WMI, ADSI, XML, u.v.m. • Einzelbefehle: Commandlets (.NET-Klassen) • Befehlskombination: Objekt-Pipelining • Skripte: PowerShell Skript Language (PSL) • Mengen: Navigation Provider • Eigene Commandlets (Skript oder .NET) • Hosting der PowerShell in eigenen .NET-Anwendungen • PowerShell-fähige Produkte: Exchange 2007, System Center Virtual Machine Manager (SCVMM), …

  8. Installation in Windows 2008

  9. Motivation: Softwareinventar • Erstelle eine Inventardatei (CSV) • Alle installierten Anwendungen • Filter auf Hersteller • Von mehreren Computerm • In eine CSV-Datei • Eingabedatei: Computernamen.txt • Ausgabedatei: Softwareinventar.csv

  10. Lösung mit dem WSH/VBScript

  11. Lösung mit der PowerShell

  12. Einflussfaktoren

  13. Commandlets & andere Befehle DEMO • Commandlets (Cmdlets) • Allgemeine Syntax: Verb-Substantiv [-Parameterliste] • Beispiele: • get-process, get-service, get-location • get-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.

  14. Objektorientiertes Pipelining • Keine 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, WorkingSet • get-childitem c:\daten -filter *.dll | where-object {$_.Length -gt 40000} | sort-object Length| format-list

  15. Pipelining-Commandlets • Ausgaben: Format-Table, Format-List, Format-Wide • Filtern: where-object, select-object –first / -last • "Kastrieren": select-object (Abschneiden von Attributen der Objekte) • Sortieren: sort-object • Gruppieren: group-object • Sequentielle Verarbeitung: foreach-object • Pipeline analysieren: get-member • Berechnungen: measure-object • Variablen in Pipelines: $x = get-process … $x | … • Zusammenfassung: $( get-process ; get-service ) DEMO

  16. PowerShell Pipeline Processor

  17. NEU: PowerShell Plus DEMO • Kommandozeile mit IntelliSense • Editor mit IntelliSense und Debugger • http://www.powershell.com • 79 Euro / kostenlos für nicht-kommerziellen Einsatz

  18. Verlosung… • Drei Vollversionen der PowerShell Plus • Im Wert von 79 Euro • an die drei Personen • die eine E-Mail mit dem Betreff „PowerShell ist cool!“… • im Posteingang von launch08@IT-Visions.de platzieren… • als 1., 15. und 50. !

  19. Allgemeine Parameter • Viele Commandlets unterstützen: -Whatif-Confirm-Verbose DEMO launch08@IT-Visions.de PowerShell ist cool!

  20. Arbeit mit Objekten DEMO • Instanziieren, Methoden, Attribute, (Abfragen) • .NET $d= new-object System.DateTime(2004, 12,1 [System.Environment]::ComputerName • COM $wsh = new-object–com "WScript.Shell" • WMI get-wmiobjectwin32_useraccount • Beispiel (.NET): $Url = "http://www.windows-scripting.com" $wclient = new-objectSystem.Net.WebClient $html = $wclient.DownloadString($Url)

  21. WMI-Beispiele • Name und freie Bytes auf allen LaufwerkenGet-Wmiobject Win32_logicaldisk | Select-Object deviceid,freespace • Name und Domain der Benutzerkonten, deren Kennwort niemals verfälltGet-Wmiobject Win32_account | Where-Object {$_.Kennwortexpires -eq 0 } | Select-Object Name,Domain • Alle Netzwerkadapter mit TCP/IP (Filter) Get-Wmiobject Win32_NetworkAdapterConfiguration -Filter "IPEnabled=true" | select Description,IPAddress • Ausgewä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%'"

  22. PowerShell Provider • Unterschiedliche Datenmengen: hierarchisch/flach • Gleiche Verben: get, set, new, remove, etc. • Get-PSDrive • Menge der Provider und Menge der Laufwerke ist erweiterbar • Verfügbare Mengen • Registry • Umgebungsvariablen • Aliase • Zertifikate • Variablen • Active Directory/LDAP  PSCX • Demnächst: SQL Server

  23. Registry-Beispiel DEMO • Navigation zu HKEY_LOCAL_MACHINE/Softwarecdhklm:\software • Kurzform für: Set-Location hklm:\software • Auflisten der Unterschlüssel des aktuellen SchlüsselsDir • Kurzform für: Get-Childitem • Erzeugen eines Unterschlüssels mit Namen „IT-Visions“md IT-Visions • Erzeugen eines Unterschlüssels mit einem StandardwertNew-Item -Name "Inhaber" -Value "Dr. Holger Schwichtenberg" -type String • Erzeuge WertNew-Itemproperty -path "hklm:\software\www.it-visions.de" -name "Inhaber" -value "Dr. Holger Schwichtenberg" -type string • Lese WerteGet-ItemProperty

  24. Skripte - Kontrollstrukturen • $Variable • if (Bedingung) {…} else {…} • switch ($var) { Wert: {…} } • while(Bedingung) { … } • do { … } while (Bedingung) • do { … } until (Bedingung) • foreach ($var in $menge) {…} • functionname {…} • return • trap Fehlerklasse { … } else { … } • throw "Fehlertext" • throw Fehlerklasse • Exit • # Kommentar

  25. Skriptdateien • Textdateien • Dateierweiterung .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 oder • Invoke-Expression Skriptname.ps1 • Außerhalb der PowerShell: PowerShell Skriptname.PowerShell PowerShell –commandSkriptname.PowerShell

  26. Beispiel

  27. Execution Policies DEMO • Restricted: keine Skripte (STANDARDEINSTELLUNG!) • AllSigned: nur signierte Skripte, signierte Skripte von nicht-vertrauten Quellen auf Nachfrage • RemoteSigned: Signatur nur für Skripte aus dem Internet (via Browser, Outlook, Messenger) • Unrestricted: alle Skripte laufen

  28. Skripte signieren makecert.exe dir cert: ## sign-file.PowerShell ## Sign a file param([string] $file=$(throw "Please specify a filename.")) $cert = @(get-childitem cert:\CurrentUser\My -codesigning)[0] set-authenticodeSignature $file $cert

  29. {Anwendungsbeispiele} Demos Download des Codes:http://www.it-visions.de/V4991.aspx Dateisystem: Ordnergrößenermitteln (rekursiv) Dateisystem: ACL verändern Active Directory: Benutzeranlegen (zweiVarianten) EineDatenbankauslesen (und Benutzeranlegen) IIS: EineMenge von IIS-Websites anlegen

  30. Fazit • Intuition • Prägnanz • Typsicherheit • 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

  31. 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.

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

  33. Links: Informationen • Offizielles Weblog des PowerShell-Teams: http://blogs.msdn.com/PowerShell • PowerShell-Community-Website des Sprechers: http://www.powershell-doktor.de • Offizielle PowerShell-Website: http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx • Sammlung 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.net • Link-Liste von PowerShell-Ressourcen: http://del.icio.us/powershell • Powershell Live User Community: http://powershelllive.com

  34. Mehr zur PowerShell oder .NET? • Beratung, Schulungen (öffentlich und In-House), Workshops, Coaching, Entwicklung • Nächste PowerShell-Schulungen (Holger Schwichtenberg & Peter Monadjemi): • 28.4.-30.4.2008   in Essen • 4.-6.6.2008   in Essen • 8.-10.10.2008 in Essen Telefon 0201/7490-700 hs@IT-Visions.de

  35. 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

  36. © 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.

  37. 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

  38. AsktheExperts Wir freuen uns auf Ihre Fragen: Technische Experten stehen Ihnen während der gesamten Veranstaltung in der Haupthalle zur Verfügung.

More Related