Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist Version 1.3b/21.02.08 Download...
-
Upload
odila-kantor -
Category
Documents
-
view
104 -
download
0
Transcript of Dr. Holger Schwichtenberg Softwarearchitekt, Berater, Fachjournalist Version 1.3b/21.02.08 Download...
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
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
Bücher zur PowerShell
16. März 2007
150 Seiten zur PowerShell
18. Oktober 2007
Wer sind Sie?
Windows Administratoren (oder Entwickler)Erfahrung mit Batch, WSH, ADSI, WMIKeine Grundkenntnisse in PowerShell (dies ist ein Einführungsvortrag „Level 200“ !)
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
GUI versus CLI
Linux/Unix Windows
CLI
GUI
GUI
CLI
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), …
Installation in Windows 2008
Motivation: Softwareinventar
Erstelle eine Inventardatei (CSV)Alle installierten AnwendungenFilter auf HerstellerVon mehreren ComputermIn eine CSV-Datei
Eingabedatei: Computernamen.txtAusgabedatei: Softwareinventar.csv
Lösung mit dem WSH/VBScript
Lösung mit der PowerShell
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
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
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
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
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
NEU: PowerShell Plus
Kommandozeile mit IntelliSenseEditor mit IntelliSense und Debuggerhttp://www.powershell.com79 Euro / kostenlos für nicht-kommerziellen Einsatz
DEMO
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. !
Allgemeine Parameter
Viele Commandlets unterstützen: -Whatif -Confirm-Verbose DEMO
PowerShell ist cool!
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
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%'"
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
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
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
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
Beispiel
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
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
{ 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
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
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.
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
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
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]
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
© 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.
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
Ask the ExpertsWir freuen uns auf Ihre Fragen: Technische Experten stehen Ihnen während der gesamten Veranstaltung in der Haupthalle zur Verfügung.