Searching...
Deutsch
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Windows PowerShell Cookbook

Windows PowerShell Cookbook

The Complete Guide to Scripting Microsoft's Command Shell
von Lee Holmes 2007 1034 Seiten
3.84
100+ Bewertungen
Hören
Try Full Access for 7 Days
Unlock listening & more!
Continue

Wichtige Erkenntnisse

1. Beginnen Sie mit dem Vertrauten: PowerShell nutzt Ihre bestehenden Werkzeuge.

Was die meisten Anwender beim ersten Start von PowerShell überrascht, ist die große Ähnlichkeit zur Eingabeaufforderung, die schon lange Teil von Windows ist.

Niedrige Einstiegshürde. PowerShell ist so konzipiert, dass Nutzer mit Erfahrung in Kommandozeilen sofort produktiv arbeiten können. Sie können Standard-Windows-Programme wie ipconfig.exe oder notepad.exe einfach durch Eingabe ihres Namens starten – genau wie in cmd.exe. Das bedeutet, Sie müssen Ihr bisheriges Wissen oder Ihre Werkzeuge nicht aufgeben, um mit PowerShell zu arbeiten.

Kompatibilitätsfunktionen. PowerShell bietet Funktionen, die die Kompatibilität mit traditionellen Kommandozeilen-Tools und Skripten sicherstellen. Bei ausführbaren Dateien mit Leerzeichen im Pfad oder Namen verwenden Sie den Aufrufoperator (&) und Anführungszeichen, zum Beispiel & 'C:\Program Files\MyApp\app.exe'. Um Skripte oder Programme im aktuellen Verzeichnis auszuführen, setzen Sie .\ vor den Namen, etwa .\myscript.ps1 – ähnlich wie in Unix-Shells und aus Sicherheitsgründen.

Grundlage für Wachstum. Der Einstieg mit vertrauten Befehlen ist einfach, doch die wahre Stärke von PowerShell liegt in seinen nativen Cmdlets und Skriptmöglichkeiten. Diese Kompatibilität bietet einen angenehmen Startpunkt, bevor Sie sich in fortgeschrittene, objektorientierte Funktionen vertiefen – so lernen Sie PowerShell Schritt für Schritt kennen.

2. Nutzen Sie die Objekt-Pipeline: Datenverarbeitung leicht gemacht.

PowerShell übergibt vollständige .NET-Objekte zwischen seinen Befehlen.

Mehr als nur Text. Anders als traditionelle Shells, die Daten als einfachen Text weiterreichen, transportiert PowerShell strukturierte, reichhaltige Objekte. Dadurch entfällt die Notwendigkeit für anfällige Text-Parsing-Tools wie awk oder grep, um aus der Ausgabe sinnvolle Informationen zu extrahieren.

Nahtloser Datenfluss. Der Pipe-Operator (|) verbindet Befehle, indem er die Objektausgabe eines Befehls direkt als Eingabe für den nächsten verwendet. So können Sie einfache Befehle zu komplexen Datenmanipulationen verketten – effizient und übersichtlich. Zum Beispiel holt Get-Process | Where-Object { $_.WorkingSet -gt 100mb } | Sort-Object Name Prozesse, filtert sie nach Arbeitsspeicherverbrauch und sortiert die Ergebnisse nach Namen – und das bei voller Erhaltung der Prozessobjektdaten.

Vereinfachtes Skripten. Die direkte Arbeit mit Objekten macht das Skripten deutlich leichter und zuverlässiger. Sie greifen auf Eigenschaften (wie .Name oder .Length) zu und rufen Methoden (wie .Kill()) direkt in der Pipeline oder in Skripten auf – und nutzen so das volle Potenzial der zugrundeliegenden Daten.

3. Beherrschen Sie Variablen und Objekte: Das Herzstück von PowerShell.

Mit diesen Objekten in der Hand macht PowerShell es Ihnen leicht, auf Eigenschaften von Objekten zuzugreifen (etwa den Prozessnamen oder die Speichernutzung) und Funktionen dieser Objekte zu nutzen (wie sie zu stoppen, zu starten oder auf ihr Beenden zu warten).

Strukturierte Daten. PowerShell basiert auf dem .NET Framework, weshalb Daten als strukturierte Objekte und nicht als einfache Textstrings behandelt werden. Diese Objekte vereinen sowohl Informationen (Eigenschaften) als auch Aktionen (Methoden), die zu den dargestellten Daten gehören.

Zugriff auf Objektmitglieder. Sie arbeiten mit Objekten über Punktnotation: $process.Id greift auf die Id-Eigenschaft eines Prozessobjekts zu, $process.Kill() ruft die Methode Kill auf. Diese einheitliche Syntax gilt unabhängig davon, ob das Objekt von einem Cmdlet, einer .NET-Klasse oder einer anderen Quelle stammt.

Variablen als Container. Variablen, erkennbar am Dollarzeichen ($), speichern diese Objekte für späteren Gebrauch. Sie können die Ausgabe eines beliebigen Befehls oder einer Pipeline einer Variablen zuweisen und so die Struktur und Funktionalität des Objekts bewahren. PowerShell stellt zudem automatische Variablen bereit (wie $error oder $PSVersionTable), die Einblicke in die aktuelle Sitzung und Umgebung geben.

4. Steuern Sie Ihre Skripte: Logik und Schleifen für Automatisierung.

Zusammen verleihen Schleifen und Steueranweisungen Ihrem PowerShell-Werkzeugkasten enorme Flexibilität.

Anpassung an Daten. Steueranweisungen ermöglichen es Ihren Skripten, Entscheidungen zu treffen und Befehle bedingt auszuführen. Die Anweisungen if, elseif und else erlauben bedingte Ausführung, während switch eine übersichtlichere Handhabung mehrerer Vergleichsfälle bietet – inklusive Mustererkennung und Dateieingabe.

Wiederholte Aktionen. Schleifen erlauben es, Befehle mehrfach auszuführen, ohne den Code zu wiederholen. PowerShell bietet verschiedene Schleifentypen:

  • for: Führt einen Block eine festgelegte Anzahl von Malen aus.
  • foreach: Durchläuft jedes Element einer Sammlung.
  • while: Wiederholt einen Block, solange eine Bedingung wahr ist.
  • do: Führt einen Block mindestens einmal aus und wiederholt ihn, bis eine Bedingung erfüllt ist.

Pipeline-Verarbeitung. Das Cmdlet Foreach-Object (Alias %) ist besonders nützlich, um Elemente direkt beim Durchlauf durch die Pipeline zu verarbeiten – ideal für große Datenmengen. Die Kombination von Schleifen und Bedingungen ermöglicht es, komplexe Skripte zu schreiben, die vielfältige Szenarien und Daten dynamisch bewältigen.

5. Verarbeiten Sie Text und Zeichenketten: Leistungsstarke Werkzeuge.

Da PowerShell den Großteil Ihres Systems in voller Detailtreue (mit Cmdlets und Objekten) verwaltet, können sich die Textverarbeitungswerkzeuge wieder auf echte Textaufgaben konzentrieren.

Zeichenkettentypen. PowerShell unterstützt verschiedene Arten, Zeichenketten zu definieren: Literale (einfach in '...'), bei denen der Inhalt exakt übernommen wird, und erweiterte Strings (in "..."), die Variablen ($variable) und Escape-Sequenzen (\n, \t) interpretieren. Here-Strings (@"..."@) erlauben mehrzeilige Textblöcke bei Erhalt der Formatierung.

Operatoren zur Manipulation. Leistungsstarke Operatoren erleichtern gängige Textaufgaben. Der Operator -split teilt Strings anhand eines Trennzeichens oder regulären Ausdrucks in Arrays, -join verbindet Array-Elemente zu einem String. Mit -replace führen Sie Textsubstitutionen durch – von einfachen Ersetzungen bis zu komplexen regulären Ausdrücken.

Methoden für Strings. Als .NET-Objekte bieten Strings zahlreiche Methoden zur Bearbeitung. Beispiele sind .Length für die Länge, .Contains() zum Prüfen auf Teilstrings, .IndexOf() zur Positionsbestimmung, .ToUpper() und .ToLower() für Groß-/Kleinschreibung sowie .Trim() zum Entfernen von Leerzeichen am Anfang und Ende.

6. Navigieren und verwalten Sie Dateien: Ein konsistenter Ansatz.

Das komplexe, programmiererorientierte Skript wird zur Einzeiler: Get-ChildItem -Recurse | Sort-Object -Descending Length | Select -First 10

Wichtige Datei-Cmdlets. PowerShell stellt eine einheitliche Sammlung von Cmdlets für die Arbeit mit dem Dateisystem bereit. Get-ChildItem (dir, ls) listet Dateien und Verzeichnisse auf, Get-Item holt Informationen zu einem bestimmten Element, New-Item erstellt Dateien oder Ordner, Remove-Item löscht sie, und Move-Item sowie Rename-Item verschieben oder benennen um.

Leistungsstarke Filterung. Diese Cmdlets unterstützen umfangreiche Filtermöglichkeiten mit Platzhaltern (*, ?, []) direkt im -Path-Parameter oder über -Include und -Exclude. Für anbieter-spezifische Filter (etwa kurze Dateinamen) steht der Parameter -Filter zur Verfügung. Zudem erlaubt -Attributes die Filterung nach Dateiattributen wie ReadOnly, Hidden oder System.

Rekursive Operationen. Der Parameter -Recurse ermöglicht Aktionen auf Elemente in Unterverzeichnissen, was die Bearbeitung ganzer Verzeichnisbäume erleichtert. In Kombination mit der Objekt-Pipeline entstehen so mächtige, prägnante Befehle, um Dateien anhand ihrer Eigenschaften zu finden, zu filtern und zu bearbeiten – wie das Beispiel mit den größten Dateien zeigt.

7. Verwalten Sie die Registry: Behandeln Sie sie wie ein Dateisystem.

PowerShell löst dieses Problem, indem es die Windows-Registry als Navigationsprovider bereitstellt: eine Datenquelle, die Sie genauso durchsuchen und verwalten wie das Dateisystem.

Registry-Laufwerke. PowerShell ordnet die Haupt-Registry-Hives Laufwerken zu, etwa HKLM: für HKEY_LOCAL_MACHINE und HKCU: für HKEY_CURRENT_USER. So navigieren Sie mit vertrauten Cmdlets wie Set-Location (cd), Get-ChildItem (dir), Push-Location und Pop-Location durch die Registry.

Schlüssel- und Wertverwaltung. Registry-Schlüssel gelten als Elemente, ihre Werte als Eigenschaften dieser Elemente. Mit Get-ItemProperty (gp) sehen Sie Schlüsselwerte, mit Set-ItemProperty (sp) ändern Sie sie, New-ItemProperty erstellt neue Werte, und Remove-ItemProperty löscht sie.

Transaktionale Sicherheit. Für zusammenhängende Registry-Änderungen unterstützt PowerShell Transaktionen. Mit Start-Transaction und dem Parameter -UseTransaction stellen Sie sicher, dass alle Änderungen entweder gemeinsam übernommen (Complete-Transaction) oder zurückgenommen (Undo-Transaction) werden – so vermeiden Sie inkonsistente Zustände.

8. Arbeiten Sie mit Ereignisprotokollen: Zentrale Systemüberwachung.

Aufbauend auf PowerShell-Events können Sie Skripte schreiben, die schnell auf ein sich ständig änderndes System reagieren.

Zugriff auf Protokolle. PowerShell stellt Get-EventLog für klassische Windows-Ereignisprotokolle (Anwendung, System, Sicherheit usw.) und Get-WinEvent für neuere Protokolle (Anwendungs- und Dienstprotokolle) ab Windows Vista bereit. Mit Get-EventLog -List oder Get-WinEvent -ListLog * erhalten Sie eine Übersicht verfügbarer Protokolle.

Filterung und Analyse. Ereignisprotokolleinträge werden als Objekte zurückgegeben, was leistungsstarke Filterung mit Where-Object nach Eigenschaften wie Message, EntryType, EventID oder TimeGenerated ermöglicht. Get-WinEvent bietet effizientere Filteroptionen wie -FilterHashtable und -FilterXPath für komplexe Abfragen. Group-Object unterstützt die Analyse von Ereignishäufigkeiten.

Verwaltungsaufgaben. Neben dem Abruf erlauben PowerShell-Cmdlets umfassende Verwaltung von Ereignisprotokollen. Write-EventLog fügt eigene Einträge hinzu, Clear-EventLog leert ein Protokoll, und Limit-EventLog konfiguriert Größe und Aufbewahrungsrichtlinien. Für Sicherung oder Offline-Analyse können Sie Protokolle mit wevtutil.exe oder Export-CliXml exportieren.

9. Verwalten Sie Prozesse und Dienste: Kontrolle über laufende Anwendungen.

Da das Cmdlet Get-Process Informationen als hochstrukturierte .NET-Objekte liefert, gehört fragiles Textparsing der Vergangenheit an: Get-Process | Where-Object { $_.WorkingSet -gt 100mb } | Stop-Process -WhatIf

Prozesssteuerung. Das Cmdlet Get-Process (gps) ruft laufende Prozesse als reichhaltige Objekte ab und bietet Zugriff auf Eigenschaften wie Name, Id, WorkingSet und StartTime. Diese objektbasierte Ausgabe ermöglicht präzises Filtern und Sortieren ohne Textparsing. Mit Stop-Process (kill) beenden Sie Prozesse, und Wait-Process pausiert die Skriptausführung, bis ein Prozess beendet ist.

Dienstverwaltung. Ähnlich liefert Get-Service Systemdienste als Objekte mit Eigenschaften wie Name, DisplayName und Status. Sie können Dienste filtern (z. B. Get-Service | Where-Object {$_.Status -eq 'Running'}) und deren Lebenszyklus steuern.

Aktionen für Dienste. Spezielle Cmdlets führen Dienstaktionen aus: Start-Service startet, Stop-Service stoppt und Restart-Service startet Dienste neu. So behalten Sie die volle Kontrolle über Ihre Systemdienste – einfach, sicher und effizient.

Zuletzt aktualisiert:

Rezensionen

3.84 von 5
Durchschnitt von 100+ Bewertungen von Goodreads und Amazon.

Leser empfinden das Windows PowerShell Cookbook als ein umfassendes Nachschlagewerk für erfahrene Entwickler. Für Einsteiger kann es jedoch aufgrund seines Umfangs und seiner Tiefe überwältigend wirken. Ein Rezensent beschreibt das Buch bildhaft als „Trinken aus dem Feuerwehrschlauch“ und empfiehlt es vor allem denen, die bereits mit den Grundlagen von PowerShell vertraut sind. Ein anderer hebt hervor, dass es als physisches Nachschlagewerk beim Lernen sehr nützlich ist, sich aber weniger zum entspannten Lesen eignet. Der umfangreiche Inhalt wird einerseits für seine Gründlichkeit gelobt, andererseits aber auch dafür kritisiert, dass er für Neulinge möglicherweise zu viel auf einmal ist.

Your rating:
4.2
3 Bewertungen

Über den Autor

Lee Holmes ist ein angesehener Autor und Experte auf dem Gebiet von Windows PowerShell. Mit umfassender Erfahrung in der Softwareentwicklung und Automatisierung hat Holmes maßgeblich zur PowerShell-Community beigetragen. Er ist bekannt für seinen klaren und praxisnahen Stil, mit dem er komplexe technische Zusammenhänge verständlich macht. Holmes war bei Microsoft tätig und spielte dort eine entscheidende Rolle bei der Entwicklung von PowerShell. Sein Fachwissen reicht weit über das Schreiben hinaus, denn er wird auch für seine Beiträge zu verschiedenen PowerShell-Projekten und -Tools geschätzt. Durch seine Arbeit hat Holmes zahlreichen IT-Fachleuten und Entwicklern geholfen, die Möglichkeiten von PowerShell für Systemadministration und Automatisierungsaufgaben effektiv zu nutzen.

Listen to Summary
0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Home
Library
Get App
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Recommendations: Personalized for you
Ratings: Rate books & see your ratings
100,000+ readers
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on May 22,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Loading...