
PowerShell gilt als unverzichtbares Tool für IT-Administratoren, die sich auf Skripting und Automatisierung konzentrieren. Seine leistungsstarken Funktionen gehen jedoch weit über den IT-Bereich hinaus und machen es für alle unübersichtlichen Dateien und Verzeichnisse unverzichtbar. Ich persönlich nutze PowerShell-Befehle, um veralteten Code zu durchsuchen, Client-Dateien zu strukturieren und das Chaos zu reduzieren, das sich nach Monaten hektischer, termingebundener Projekte ansammelt.
Als leistungsstarke Kommandozeilen-Shell und Skriptplattform vereinfacht PowerShell zahlreiche Aufgaben. Obwohl frühere Windows-Versionen über eine eigenständige PowerShell-Anwendung verfügten, bevorzugen Benutzer heute aufgrund der Vielseitigkeit und modernen Benutzeroberfläche das Windows Terminal für die Ausführung von Shell-Umgebungen – einschließlich PowerShell und Eingabeaufforderung.
Alle Befehle können sowohl in der dedizierten PowerShell-App als auch im Windows-Terminal ausgeführt werden.Öffnen Sie dazu einfach eine PowerShell-Registerkarte im Windows-Terminal.
1.Hilfe holen

Als ich PowerShell zum ersten Mal über YouTube-Tutorials erkundete, wurde Get-Help häufig von Benutzern hervorgehoben. Dieser Befehl dient als Einführungsressource und bietet Zugriff auf detaillierte Informationen zu jedem PowerShell-Cmdlet sowie zu Syntax, Parametern und Anwendungsbeispielen.
Um bestimmte Informationen zu einem Befehl abzurufen, geben Sie Folgendes ein:
Get-Help Get-Process
Daraufhin werden die Zusammenfassung des Befehls, Syntaxdetails und Eingabeparameter angezeigt. Für weitere Informationen fügen Sie den Parameter -Examples an :
Get-Help Get-Process -Examples
Darüber hinaus können Sie mit dem Schalter -Online auf die offizielle Dokumentation von Microsoft zugreifen :
Get-Help Get-Process -Online
Dieser Befehl leitet Sie zur Microsoft-Website weiter, wo Sie eine umfassende Befehlsdokumentation finden.
2.Get-Befehl

Während Get-Help Informationen zu Cmdlets liefert, ist Get-Command unerlässlich, um alle verfügbaren Befehle zu finden und aufzulisten. Wenn Sie wissen, welche Funktion Sie ausführen möchten, sich aber nicht an den Befehlsnamen erinnern können, verwenden Sie Get-Command einfach, um anhand von Namensteilen oder Mustern nach Befehlen zu suchen.
Um beispielsweise alle Befehle zu finden, die das Wort „ Prozess“ enthalten, geben Sie Folgendes ein:
Get-Command *process*
Dieser Befehl zeigt alle Befehle an, deren Name „Prozess“ enthält. Sie können Ihre Suche anhand von Befehlstypen weiter verfeinern, z. B.wenn Sie nur Cmdlets suchen:
Get-Command -Name Get* -CommandType Cmdlet
Zusätzlich für modulspezifische Suchen, wie zum Beispiel im Bereich Vernetzung:
Get-Command -Module NetTCPIP
Die Verwendung von Get-Command ist wesentlich effizienter als die Suche im Internet nach Befehlsnamen.
3.Test-NetConnection

Wechseln Sie häufig zwischen verschiedenen Tools wie Ping, Telnet und Traceroute? Das Cmdlet Test-NetConnection vereint diese Funktionen in einem. Dieses Cmdlet ist für die Netzwerkfehlerbehebung unerlässlich, da es hilft zu diagnostizieren, ob ein Problem von Ihrem Netzwerk, dem Server oder anderen Quellen herrührt.
Um festzustellen, ob eine Website erreichbar ist, führen Sie Folgendes aus:
Test-NetConnection makeuseof.com
Dieser Befehl liefert Ping-Ergebnisse und grundlegende Verbindungsinformationen. Um einen bestimmten Port zu testen, fügen Sie die Portnummer in den Befehl ein:
Test-NetConnection server.company.com -Port 443
Verwenden Sie für eine detaillierte Netzwerkpfadverfolgung den Parameter -TraceRoute :
Test-NetConnection 8.8.8.8 -TraceRoute
Dieser Befehl sendet Testpakete an 8.8.8.8 und verfolgt dabei die Hops zwischen Ihrem Computer und dem Ziel. So können Sie etwaige Verbindungsprobleme lokalisieren.
4.Get-ChildItem

Mit dem Cmdlet Get-ChildItem können Sie Dateien und Ordner in einem beliebigen Verzeichnis anzeigen. Um beispielsweise den Inhalt des Ordners „Dokumente“ aufzulisten, geben Sie einfach Folgendes ein:
Get-ChildItem C:\Users\Username\Documents
Um PDF-Dateien zu identifizieren, die in der letzten Woche geändert wurden, verwenden Sie den folgenden Befehl:
Get-ChildItem C:\Users\YourName\Documents -Filter *.pdf | Where-Object {$_. LastWriteTime -gt (Get-Date).AddDays(-7)}
Mit dem Parameter -Recurse können Sie alle Unterordner durchsuchen. So suchen Sie alle Protokolldateien im Ordner „Projekte“ und seinen Unterverzeichnissen:
Get-ChildItem C:\Projects -Recurse -Filter *.log
Wenn der Speicherplatz knapp ist, können Sie große Dateien über 1 GB identifizieren:
Get-ChildItem C:\ -Recurse -File | Where-Object {$_. Length -gt 1GB} | Select-Object FullName, @{Name="SizeGB";Expression={$_. Length/1GB}}
Das Cmdlet „ Get-ChildItem“ ist ein leistungsstarker Verbündeter für die Automatisierung von Batch-Aufgaben, Dateiorganisation und Audits.
5.Where-Objekt

Im vorherigen Beispiel unterstreicht die Verwendung von Where-Object dessen Funktionalität beim Filtern von Daten anhand bestimmter Eigenschaftskriterien – vergleichbar mit bedingten Anweisungen in der Programmierung. Die Syntax innerhalb der geschweiften Klammern ermöglicht die Darstellung jedes ausgewerteten Elements.
Um alle laufenden Dienste zu visualisieren, geben Sie Folgendes ein:
Get-Service | Where-Object {$_. Status -eq "Running"}
Wenn Sie an Prozessen interessiert sind, die mehr als 100 MB Speicher verbrauchen, versuchen Sie Folgendes:
Get-Process | Where-Object {$_. WorkingSet -gt 100MB}
Auch die Kombination mehrerer Bedingungen ist möglich. So finden Sie beispielsweise große Word-Dokumente, die im letzten Monat geändert wurden:
Get-ChildItem -Filter *.docx | Where-Object {$_. Length -gt 5MB -and $_. LastWriteTime -gt (Get-Date).AddMonths(-1)}
Organisieren Sie komplexe Bedingungen über mehrere Zeilen, um die Lesbarkeit des Skripts zu verbessern:
Get-ChildItem | Where-Object { $_. Length -gt 1MB -and $_. Extension -eq ".log"}
6.Objekt auswählen

Die Ausgabe von Befehlen ist oft umfangreicher als nötig. Mit dem Cmdlet „Select-Object“ können Sie nur die relevanten Daten filtern und diese dann mit dem Cmdlet „Export-Csv“ in eine CSV-Datei exportieren. Wenn Sie beispielsweise nur die Namen und Status von Diensten anzeigen möchten:
Get-Service | Select-Object Name, Status
Wenn Ihr Ziel darin besteht, die fünf Prozesse zu ermitteln, die die meiste CPU verbrauchen, führen Sie Folgendes aus:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU
Darüber hinaus können Sie berechnete Eigenschaften erstellen. So zeigen Sie Dateigrößen in Megabyte statt in Byte an:
Get-ChildItem | Select-Object Name, @{Name="SizeMB";Expression={$_. Length/1MB}}
Um einen einzelnen Eigenschaftswert zu extrahieren, verwenden Sie den Parameter -ExpandProperty :
Get-Process notepad | Select-Object -ExpandProperty Id
Dieser Befehl gibt nur die Prozess-ID zurück, was besonders nützlich sein kann, wenn eine Weiterleitung zu zusätzlichen Befehlen erfolgt, die einen einzelnen Wert erfordern.
7.Mitglied werden

PowerShell arbeitet hauptsächlich mit Objekten, und das Cmdlet Get-Member zeigt die zugehörigen Eigenschaften und Methoden an. Beim Abrufen von Informationen zu einem Prozess können Sie beispielsweise dessen Größe, Erstellungsdatum und andere Kennzahlen überprüfen. Verwenden Sie den folgenden Befehl, um die Attribute innerhalb eines Prozessobjekts anzuzeigen:
Get-Process | Get-Member
Hier werden Eigenschaften wie CPU, ID und WorkingSet sowie Methoden wie Kill() und Refresh() aufgelistet. Wenn Sie nur Eigenschaften anzeigen möchten, können Sie Folgendes angeben:
Get-Process | Get-Member -MemberType Property
Für dateibezogene Vorgänge:
Get-ChildItem C:\temp\test.txt | Get-Member
Hier werden Details wie Länge und LastWriteTime sowie Methoden wie Delete() und MoveTo() angezeigt. Sie können Dateien mithilfe der Länge nach Größe filtern oder kürzlich geänderte Dateien anhand der LastWriteTime identifizieren.
8.Set-Clipboard und Get-Clipboard

Wenn Sie mit einer überwältigenden PowerShell-Ausgabe konfrontiert werden, die kopiert werden muss, kann die manuelle Auswahl mühsam sein.Set-Clipboard und Get-Clipboard vereinfachen diesen Prozess jedoch erheblich.
Um Befehlsergebnisse in Ihre Zwischenablage zu kopieren, geben Sie Folgendes ein:
Get-Process | Select-Object Name, CPU | Set-Clipboard
So können Sie Ergebnisse problemlos in Excel oder einen beliebigen Texteditor einfügen. Um den Inhalt der Zwischenablage wieder in PowerShell abzurufen, führen Sie einfach Folgendes aus:
$text = Get-Clipboard
Diese Funktion ist besonders nützlich bei der Verarbeitung von Listen. Beispielsweise können Sie einen Bereich von Computernamen aus Excel kopieren und anschließend Folgendes ausführen:
Get-Clipboard | ForEach-Object { Test-NetConnection $_ }
Dieser Befehl testet die Konnektivität zu jedem aufgelisteten Computernamen. Die nahtlose Integration zwischen PowerShell und anderen Anwendungen beschleunigt wiederkehrende Aufgaben erheblich.
9.Out-GridView

Manchmal ist eine interaktive Sortierung und Filterung der Ergebnisse erforderlich. Das Cmdlet Out-GridView öffnet ein separates Fenster mit einem sortierbaren und durchsuchbaren Tabellenformat.
Get-Process | Out-GridView
Diese Aktion öffnet ein neues Fenster mit einer Liste der aktuellen Prozesse in einer Rasteroberfläche. Klicken Sie auf die Spaltenüberschriften, um zu sortieren, oder filtern Sie nach Stichworten im Suchfeld. Um Elemente aus dem Raster auszuwählen und an einen anderen Befehl weiterzuleiten, verwenden Sie:
Get-Service | Out-GridView -PassThru | Restart-Service
Mit dem Parameter -PassThru können Sie mehrere Zeilen auswählen und Aktionen ausführen, z. B.nur die ausgewählten Dienste neu starten.
Für die Protokollanalyse können Sie auch Folgendes anwenden:
Get-EventLog -LogName Application -Newest 1000 | Out-GridView
Dies ermöglicht eine schnelle Ereignisfilterung durch Stichworteingabe, eine Sortierung nach Zeit und das Aufdecken von Mustern innerhalb des Datensatzes.
10.Get-Prozess

Das Cmdlet „ Get-Process“ zeigt alle Anwendungen an, die derzeit auf Ihrem Computer ausgeführt werden, und bietet Einblicke in deren Speichernutzung, CPU-Zeit und Prozess-IDs.
Um alle derzeit aktiven Prozesse aufzulisten, führen Sie Folgendes aus:
Get-Process
Wenn Sie nach einer bestimmten Anwendung suchen, beispielsweise Google Chrome, geben Sie einfach Folgendes an:
Get-Process chrome
Wenn Sie ein nicht reagierendes Programm beenden müssen, können Sie Befehle wie folgt verketten:
Get-Process notepad | Stop-Process
Um Prozesse zu identifizieren, die erhebliche Speicherressourcen verbrauchen, implementieren Sie:
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10
Dieser Befehl bietet einen schnellen Überblick über speicherfressende Programme, wenn die Systemleistung nachlässt.
Schreibe einen Kommentar