„PowerShell“ – Versionsunterschied
[gesichtete Version] | [ungesichtete Version] |
K Bot: Ändere: ko:윈도 파워셸 |
K update |
||
Zeile 251: | Zeile 251: | ||
|{{Nein}} |
|{{Nein}} |
||
|- |
|- |
||
|Quest Management Shell for Active Directory<ref>{{internetquelle|url=http://www.quest.com/activeroles-server |
|Quest Management Shell for Active Directory<ref>{{internetquelle|url=http://www.quest.com/powershell/activeroles-server.aspx|titel=PowerShell Commands for Active Directory by Quest Software|zugriff=2008-07-02}}</ref> |
||
|1. |
|1.1 |
||
|{{Ja}} ( |
|{{Ja}} (40) |
||
|{{Nein}} |
|{{Nein}} |
||
|{{Nein}} |
|{{Nein}} |
Version vom 25. Juli 2008, 23:15 Uhr
Windows PowerShell
| |
---|---|
![]() | |
![]() Screenshot von PowerShell 1.0 | |
Basisdaten
| |
Entwickler | Microsoft Corporation |
Erscheinungsjahr | 14. November 2006 |
Aktuelle Version | 1.0 (14. November 2006) |
Betriebssystem | Windows XP Windows Server 2003 Windows Vista Windows Server 2008 |
Programmiersprache | C#[1] |
Kategorie | Betriebssystem-Shell |
Lizenz | MS-EULA |
deutschsprachig | ja |
Windows PowerShell |
Die Windows PowerShell, zeitweise auch bekannt unter den Codenamen Monad und Microsoft Command Shell (MSH), ist eine von Microsoft entwickelte Alternative zum Windows-Kommandozeilenprogramm cmd.exe und zum Windows Script Host.
Die auf dem .NET-Framework in der Version 2.0 basierende Windows PowerShell verbindet die aus Unix-Shells bekannte Philosophie von Pipes und Filtern mit dem Paradigma der objektorientierten Programmierung. Der Benutzer kann wie bisher einfache Befehle an einer Kommandozeile ausführen und miteinander verknüpfen oder aber auch komplexe Skript-Programme mit der eigens dafür entwickelten PowerShell Scripting Language schreiben.
Nachdem die Veröffentlichung von Windows PowerShell ursprünglich als Bestandteil von Windows Vista geplant war, hat PowerShell einen eigenen, unabhängigen Release-Zeitplan angenommen und wird nun Teil von Microsoft Exchange Server 2007 sein. Auch beim System Center Virtual Machine Manager und beim System Center Operations Manager soll PowerShell zum Einsatz kommen. Windows Server 2008 wird die erste Version von Windows sein, bei der Windows PowerShell bereits im Lieferumfang des Betriebssystems enthalten ist.[2]
Die aktuelle Version 1.0 ist für die Betriebssysteme Windows XP und Windows Server 2003 sowie für Windows Vista zum kostenlosen Herunterladen verfügbar.[3] Version 2.0 befindet sich noch im Beta-Stadium, ist jedoch als CTP downloadbar[4] und beinhaltet u.a. eine grafische Benutzeroberfläche.
Details
Den Kern der PowerShell bilden kleine Funktionseinheiten, genannt Cmdlets (gesprochen command-lets), die dem Benennungsschema Verb-Substantiv folgen, also beispielsweise Get-Help
oder Set-Location
, wobei Groß- und Kleinschreibung keine Rolle spielt. Da die Bezeichnungen einiger Cmdlets relativ lang sind, können kürzere Alias-Namen vergeben werden, von denen bereits einige standardmäßig vordefiniert sind, unter anderem als Hilfe für Umsteiger von Unix-Shells oder der DOS/NT-Kommandozeile (beispielsweise ls
, dir
, cp
, …).
Die Cmdlets sind als spezielle .NET-Klassen implementiert, welche als Eingabe bestimmte Parameter (gekennzeichnet durch ein vorangestelltes „-
“) und Objekte annehmen und als Ausgabe wiederum Objekte zurückliefern, die dann beispielsweise als Tabelle formatiert ausgegeben oder zur weiteren Verarbeitung an andere Cmdlets weitergeleitet werden können. Da die Ausgabe nicht als Textstrom erfolgt, sondern als strukturiertes Objekt, lassen sich bestimmte Eigenschaften leicht ohne aufwändige Textanalyse selektieren und manipulieren. Analysen über Reguläre Ausdrücke sind jedoch ebenfalls möglich. Zurückgelieferte Objekte können auch in Variablen gespeichert und an anderer Stelle wiederverwendet werden.
Die Funktionalität der PowerShell lässt sich durch sogenannte Snap-Ins erweitern, welche auf einen Schlag ganze Sätze von Cmdlets importieren und dem Benutzer zur Verfügung stellen. Mittels Get-Help
werden Hilfeseiten zu Cmdlets angezeigt, die dem Format von Unix-Manpages ähnlich sind. Falls Cmdlets mit dem speziellen Parameter „-whatif
“ aufgerufen werden, wird der Benutzer darüber informiert, was passiert wäre, eine Aktion findet jedoch nicht statt.
Neben den Cmdlets lassen sich direkt von der Kommandozeile auch herkömmliche Programme, selbstdefinierte Funktionen, Skripte und Batch-Dateien starten, ebenso Dokumente, die beim Aufrufen mit dem dazugehörigen Anwendungsprogramm geöffnet werden.
Die PowerShell erlaubt Zugriff auf WMI-Klassen, COM-Objekte sowie auf das gesamte .NET-Framework.
Über sogenannte Provider können hierarchische Strukturen wie die Windows-Registrierungsdatenbank, der Variablen-Namensraum und andere als virtuelle Laufwerke eingebunden und wie ein Dateisystem navigiert, referenziert und bearbeitet werden, zum Beispiel „Env:
“, „HKLM:
“, „Variable:
“ oder „Function:
“. Diese werden jedoch nicht im Windows Explorer angezeigt.
Für den interaktiven Betrieb bietet die PowerShell eine automatische Befehlszeilenergänzung per Tabulatortaste für Cmdlets, Parameter, Eigenschaften sowie Datei- und Verzeichnisnamen, die bei Bedarf vom Benutzer an seine eigenen Bedürfnisse angepasst werden kann.
Anders als bei bisher existierenden objektorientierten Skript-Interpretern (BeanShell, Smalltalk, Python Shell) ist die Syntax der PowerShell-Skriptsprache, welche sich unter anderem Anleihen bei Perl, Unix-Shells, SQL und C# nimmt, darauf ausgelegt auch für den täglichen interaktiven Gebrauch als Shell für administrative Aufgaben wie etwa Dateiverwaltung geeignet zu sein.
Cmdlets
Die folgende Tabelle stellt eine Auswahl der insgesamt 129 mitgelieferten Cmdlets den vergleichbaren Befehlen anderer Kommandozeileninterpreter gegenüber.
Windows PowerShell (Cmdlet) |
Windows PowerShell (Alias) |
cmd.exe bzw. COMMAND.COM (MS-DOS, Windows, OS/2, etc.) |
bash (Unix, BSD, Linux, etc.) |
Beschreibung |
---|---|---|---|---|
Get-Location | gl, pwd | cd | pwd | Ausgabe des aktuellen Verzeichnisses |
Set-Location | sl, cd, chdir | cd, chdir | cd | Wechseln des aktuellen Verzeichnisses |
Clear-Host | cls, clear | cls | clear | Löschen des Bildschirms |
Copy-Item | cpi, copy, cp | copy | cp | Kopieren einer oder mehrerer Dateien / eines ganzen Verzeichnisbaums |
Get-Help | help, man | help | man | Hilfe zu Befehlen |
Remove-Item | ri, del, rmdir, rd, rm | del, rmdir, rd | rm, rmdir | Löschen einer Datei / eines Verzeichnisses |
Rename-Item | rni, ren | ren | mv | Umbenennen einer Datei / eines Verzeichnisses |
Move-Item | mi, move, mv | move | mv | Verschieben einer Datei / eines Verzeichnisses |
Get-ChildItem | gci, dir, ls | dir | ls | Liste aller Dateien / Verzeichnisse im (aktuellen) Verzeichnis |
Write-Output | echo, write | echo | echo | Ausgabe von Zeichenketten, Variablen etc. auf dem Bildschirm |
Pop-Location | popd | popd | popd | In Verzeichnis wechseln, welches zuletzt auf dem Stack abgelegt wurde |
Push-Location | pushd | pushd | pushd | Verzeichnis auf dem Stack ablegen |
Set-Variable | sv, set | set | set | Wert einer Variable setzen / Variable anlegen |
Get-Content | gc, type, cat | type | cat | Ausgabe einer Datei |
Get-Process | gps, ps | tasklist | ps | Liste aller momentan laufenden Prozesse |
Stop-Process | spps, kill | taskkill | kill | Beenden eines laufenden Prozesses |
Tee-Object | tee | nicht vorhanden | tee | Standardeingabe in eine Datei oder Variable umleiten und entlang der Pipeline weiterreichen (Standardausgabe) |
Beispiele
- Beende alle Prozesse, deren Namen mit dem Buchstaben „p“ beginnen:
PS> get-process p* | stop-process
- Suche alle Prozesse, die mehr als 10 MB Hauptspeicher verwenden, und beende sie:
PS> get-process | where { $_.WS -gt 10MB } | stop-process
- Berechne die Gesamtanzahl der Bytes aller Dateien in einem Verzeichnis:
PS> get-childitem | measure-object -property length -sum
- Warte, bis ein bestimmter Prozess beendet wurde:
PS> $processToWatch = get-process notepad PS> $processToWatch.WaitForExit()
- Ändere eine Zeichenkette von Kleinbuchstaben in Großbuchstaben:
PS> "hallo welt!".ToUpper()
- Füge die Zeichenfolge „ABC“ nach dem ersten Buchstaben des Wortes „string“ ein, um als Ergebnis „sABCtring“ zu erhalten:
PS> "string".Insert(1, "ABC")
- Lade einen bestimmten RSS-Feed herunter und zeige die Überschriften der acht neuesten Einträge:
PS> $rssUrl = "http://blogs.msdn.com/powershell/rss.aspx" PS> $blog = [xml](new-object System.Net.WebClient).DownloadString($rssUrl) PS> $blog.rss.channel.item | select title -first 8
Dateiendungen
- .ps1 – Windows PowerShell Shell-Skript
- .ps1xml – Windows PowerShell Format- und Typdefinitionen
- .pcs1 – Windows PowerShell Konsolendatei (exportierte Shell-Konfiguration)
Software-Unterstützung
Software | Version | Cmdlets | Provider | Grafische Benutzeroberfläche |
---|---|---|---|---|
Microsoft Exchange Server | 2007 | Ja (402) | Ja | Ja |
Microsoft Windows Server | 2008 | Ja | Ja | Nein |
Microsoft SQL Server | 2008 | Ja | Ja | Nein |
Microsoft System Center Operations Manager | 2007 | Ja (74) | Ja | Nein |
Microsoft System Center Virtual Machine Manager | 2007 | Ja | Ja | Ja |
Microsoft System Center Data Protection Manager | 2007 | Ja | Nein | Nein |
Microsoft Windows Compute Cluster Server | 2007 | Ja | Ja | Nein |
Microsoft Transporter Suite for Lotus Domino[5] | 08.02.0012 | Ja (47) | Nein | Nein |
IBM WebSphere MQ[6] | 6.0.2.2 | Ja (44) | Nein | Nein |
Quest Management Shell for Active Directory[7] | 1.1 | Ja (40) | Nein | Nein |
Special Operations Software Specops Command[8] | 1.0 | Ja | Nein | Ja |
VMware Infrastructure Toolkit[9] | 1.0 Beta | Ja (102) | Nein | Nein |
Zukunft
Der Arbeitstitel für die nächste Version lautet Aspen, was gleichzeitig auch der Arbeitstitel für die nächste Generation der Microsoft Management Console (MMC) ist. Chef-Architekt des zuständigen Teams ist Jeffrey Snover. Zukünftig sollen alle Windows-Administrationswerkzeuge der MMC unter der grafischen Oberfläche auf der Windows PowerShell aufbauen, so dass sich Windows sowohl komplett über die grafische Benutzeroberfläche als auch alternativ über die Kommandozeile administrieren lässt. Während der Schwerpunkt der Entwicklung für die erste Version vor allem auf der Skriptsprache lag, sind für die Nachfolge-Version unter anderem ein flexibleres Terminal-Fenster und weitere Cmdlets geplant.
Quellen
- ↑ The powershell Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 30. Oktober 2018).
- ↑ Windows Server 2008: Windows PowerShell: Now Part of Windows Server 2008 Beta 3. Microsoft, 13. November 2006, abgerufen am 16. Mai 2007.
- ↑ Windows PowerShell 1.0 Download. Microsoft, abgerufen am 26. September 2007.
- ↑ Windows PowerShell 2.0 CTP Download. Microsoft, abgerufen am 5. November 2007.
- ↑ Microsoft Transporter Suite for Lotus Domino. Abgerufen am 18. Februar 2008.
- ↑ MO74: WebSphere MQ - Windows Powershell Library. Abgerufen am 18. Februar 2008.
- ↑ PowerShell Commands for Active Directory by Quest Software. Abgerufen am 2. Juli 2008.
- ↑ PowerShell Remoting through Group Policy. Abgerufen am 18. Februar 2008.
- ↑ VMware Infrastructure Toolkit for Windows Beta. Abgerufen am 29. März 2008.
Literatur
Deutsch
- Cuber, Ulrich: Windows PowerShell, Mitp-Verlag 2007, ISBN 978-3826616730
- Holmes, Lee: Windows PowerShell – kurz & gut, O’Reilly Verlag 2007, ISBN 978-3-89721-532-0
- Monadjemi, Peter: Windows PowerShell – Crashkurs, Microsoft Press Deutschland 2007, ISBN 978-3866456174
- Oakley, Andy: Schnelleinstieg in die Windows PowerShell, O’Reilly Verlag 2007, ISBN 978-3-89721-487-3
- Payette, Bruce: Windows PowerShell im Einsatz, Hanser Fachbuchverlag 2007, ISBN 978-3446412392
- Schwichtenberg, Holger: Windows PowerShell, Addison-Wesley 2007, ISBN 978-38273-2533-4
- Schwichtenberg, Holger: Windows Scripting. Automatisierte Systemadministration mit dem Windows Script Host und der Windows PowerShell, Addison-Wesley 2007, ISBN 978-3827324238
- Spona, Helma: Windows PowerShell. Sprachgrundlagen, Dateisystem, Datenbankzugriffe, WMI-Steuerung, Galileo Press 2007, ISBN 978-3898428804
- Weltner, Tobias: Scripting mit Windows PowerShell – Einsteiger-Workshop, Microsoft Press Deutschland 2007, ISBN 978-3866456204
Englisch
- Ford Jr., Jerry Lee: Microsoft Windows Powershell Programming for the Absolute Beginner, Course Technology Ptr 2007, ISBN 1598633546
- Holmes, Lee: Windows PowerShell Quick Reference, O’Reilly 2006, ISBN 0-596-52813-2
- Jones, Don: An Introduction to Microsoft® PowerShell™, Realtimepublishers.com 2006
- Jones, Don; Hicks, Jeffery: Windows PowerShell™: TFM®, SAPIEN Press 2006, ISBN 0-9776597-1-2
- Kopczynski, Tyson: Microsoft Powershell Unleashed, Sams Publishing 2007, ISBN 0672329530
- Oakley, Andy: Monad – Introducing the MSH Command Shell and Language, O’Reilly 2006, ISBN 0-596-10009-4
- Payette, Bruce: Windows PowerShell in Action, Manning Publications, ISBN 1932394-90-7
- Watt, Andrew: Professional Windows PowerShell, Wrox Press 2007, ISBN 0471946931
- Wilson, Ed: Microsoft® Windows PowerShell™ Step By Step, Microsoft Press 2007, ISBN 0-7356-2395-3
Weblinks
- Script Center: Skripting mit der Windows PowerShell – Microsofts Einstiegs-Seite zur Windows PowerShell
- Weblog des PowerShell-Entwicklerteams (en) – Informationen und Neuigkeiten zur PowerShell aus erster Hand
- Inoffizielles PowerShell-Wiki auf Channel 9 (en) – Informationen, kurzer Überblick über die Skriptsprache, Beispielskripte, etc.
- Muschelzucht im Ausland – PowerShell Artikel erschienen im Linux-Magazin 2006/12
Für die PowerShell gibt es bereits einige spezielle Editoren bzw. Entwicklungsumgebungen: