Magic Quadrant™ für Privileged Access Management 2025: Netwrix zum vierten Jahr in Folge anerkannt. Laden Sie den Bericht herunter.

Plattform
Ressourcen­zentrumBlog
Essentielle PowerShell-Befehle: Ein Spickzettel für Anfänger

Essentielle PowerShell-Befehle: Ein Spickzettel für Anfänger

Jan 16, 2025

PowerShell ist eine Kommandozeilen-Shell und Skriptsprache zur Automatisierung der Windows-Verwaltung und zur Systemverwaltung über Plattformen hinweg. Anfänger sollten Cmdlets wie Get-Help, Get-ChildItem, Get-Process, Set-Location, New-Item, und Export-Csv beherrschen. PowerShell unterstützt objektbasierte Pipelines, Aliase für Effizienz, Remote-Sitzungen und Ausführungsrichtlinien für Sicherheit. Mit Übung bilden diese Befehle die Grundlage für Automatisierung, Systemmanagement und sicheres Skripting.

Einführung in PowerShell

Was ist PowerShell?

PowerShell ist eine leistungsfähige Kommandozeilenshell, die Skriptsprachen unterstützt und Werkzeuge zur Verwaltung von Computerressourcen lokal und remote bereitstellt.

Vorteile von PowerShell für die Windows-Verwaltung

Windows PowerShell-Befehle ermöglichen die Automatisierung von wiederkehrenden Aufgaben wie das Verwalten von Benutzern, Diensten, Dateien oder Skripten. PowerShell kann auch für die Systemverwaltung, Fernadministration und die Integration von Systemen wie Active Directory, Entra ID und Exchange verwendet werden.

Unterschiede zwischen PowerShell und Command Prompt

PowerShell und die Befehlszeile unterscheiden sich in Funktionalität, Design und Fähigkeiten. Um die richtige Option für die anstehende Aufgabe zu wählen, sollten Sie Folgendes beachten:

-

Befehlszeile

PowerShell

Befehlssyntax

Einfach und beschränkt auf grundlegende Aufgaben

Komplexe Befehle im Verb-Substantiv-Format

Scripting

Begrenzte Skriptfähigkeiten

Erweiterte Skriptfunktionen

Ausgabe

Klartext

Können strukturierte Objekte wie Tabellen und Listen sein

Erweiterbarkeit

Begrenzte Erweiterbarkeit

Hochgradig erweiterbar durch Module und .Net-Bibliotheken, benutzerdefinierte Cmdlets und Funktionen

Pipelines

Unterstützt das Weiterleiten von Klartext von einem Befehl zum anderen

Unterstützt das Weiterleiten von Objekten mit Eigenschaften

Wichtige Komponenten von PowerShell-Befehlen

PowerShell Cmdlets: Verb-Nomen-Struktur

PowerShell-Befehle verwenden eine Verb-Substantiv-Syntax. Der Verbteil gibt die auszuführende Aktion an, und der Substantivteil des Befehls definiert das Objekt, auf das die Aktion ausgeführt wird. Beispiele sind Get-process, New-item, Set-Date und Remove-Item.

Gängige Verben sind:

  • Get: Ruft Daten ab
  • Setzen: Ändert die Eigenschaften eines Objekts
  • Hinzufügen: Fügt einem Sammlung einen Artikel hinzu
  • Stopp: Stoppt einen Prozess oder Dienst
  • Start: Startet einen Prozess oder Dienst
  • Clear: Entfernt alle Elemente aus einer Sammlung

PowerShell-Aliase: Abkürzungen und Unterstützung für ältere Versionen

Aliase sind Kurznamen für Cmdlets, Funktionen und Skripte. Aliase werden für die Effizienz beim Tippen und zur Unterstützung von älteren Versionen verwendet. Sie können alle in der aktuellen PowerShell-Sitzung definierten Aliase sehen, indem Sie den Befehl Get-Alias eingeben.

Hier sind einige häufig verwendete Aliase:

  • Ls —Alias für Get-ChildItem
  • Gci —Ein weiterer Alias für Get-ChildItem
  • Gc —Alias für Get-Content
  • Rm — Alias für Remove-Item
  • Cd —Alias für Set-Location
  • Cls — Alias für Clear-Host
  • Dir — Alias für Get-ChildItem

Verständnis der Parameter in PowerShell-Befehlen

Parameter werden verwendet, um Werte oder Optionen an Befehle, Funktionen und Skripte zu übergeben, um deren Aktionen zu modifizieren. Um Details über die Parameter eines Cmdlets zu sehen, führen Sie Get-Help aus.

Die grundlegenden Arten von Parametern sind wie folgt:

  • Positionsparameter werden in einer bestimmten Reihenfolge übergeben, ohne sie explizit zu benennen, wie in diesem Beispiel gezeigt:
      Copy-Item "C:\File1.txt" "D:\Backup\"
      
  • Benannte Parameter werden mit dem Präfix angegeben und können in beliebiger Reihenfolge bereitgestellt werden.
      Get-Process -Name "notepad" -Id 1234
      
  • Schalterparameter benötigen keinen Wert, da sie wie Boolesche Flags funktionieren: das Vorhandensein des Schalters aktiviert eine Funktion und das Fehlen deaktiviert sie.
      Remove-Item "C:\temp\file.txt" -Confirm
      
  • Obligatorische Parameter müssen angegeben werden; wenn einer ausgelassen wird, fordert PowerShell zur Eingabe eines Wertes auf.
      Get-MyProcess -ProcessName "chrome"
      

Wesentliche PowerShell-Befehle für Anfänger

Grundlegende Befehle zum Starten

Einer der grundlegenden PowerShell-Befehle, mit denen man sich vertraut machen sollte, ist Get-Help, welcher Informationen über ein Cmdlet anzeigt, das man erlernen möchte. Wenn man den Parameter -examples hinzufügt, werden auch Beispiele bereitgestellt.

Zum Beispiel, um mehr über das Get-ChildItem Cmdlet zu erfahren, könnten Sie Get-Help Get-ChildItem oder Get-Help Get-ChildItem -examples eingeben, wie unten dargestellt.

Image

Another useful cmdlet is Get-Command.For example, entering Get-Command *Service* will lists all commands that have “Service” in their name.

Image

Anzeige des Dateisysteminhalts

Dieser Befehl zeigt die Elemente im aktuellen Verzeichnis an:

      Get-ChildItem
      

Und dieser zeigt die Elemente im Office Verzeichnis an:

      Get-ChildItem D:\Office
      
Image

Arbeiten mit Objekten

Das folgende Cmdlet wird den Notepad-Anwendungsprozess auf dem lokalen Computer abrufen:

      Get-Process -Name "notepad"
      

Und dieser wird Prozesse abrufen, die mehr als 10% des RAM verwenden:

      Get-Process | Where-Object {$_.CPU -gt 10}
      

Der folgende Befehl wird jede Instanz von Notepad erfassen und den Prozess anhand der ID beenden.

      Get-Process | Where-Object { $_.Name -eq "notepad" } | ForEach-Object { Stop-Process -Id $_.Id }
      
Image

Überprüfung der grundlegenden Systeminformationen

Der folgende Befehl wird Windows-Dienste mit dem Status running: abrufen

      Get-Service | Where-Object { $_.Status -eq 'Running' }
      

Dieser Befehl wird die ersten 10 Ereignisprotokolle abrufen:

      Get-EventLog -LogName System -Newest 10
      

Und dieser Befehl wird die Statistiken des Netzwerkadapters namens „Wi-fi“ abrufen:

      Get-NetAdapterStatistics -Name "Wi-fi"
      
Image

PowerShell-Befehle für Datei- und Ordnerverwaltung

Verzeichnisse navigieren: Set-Location und Get-ChildItem

Dieses Cmdlet setzt das aktuelle Verzeichnis von PowerShell auf D:\Office\Project:

      Set-Location -Path "D:\Office\Project"
      

Um den Inhalt eines Verzeichnisses zu erhalten, verwenden Sie diesen Befehl:

      Get-ChildItem, dir, ls
      

Um die Dateien und Ordner im Project -Verzeichnis anzuzeigen, verwenden Sie diesen Code:

      Get-ChildItem "D:\Office\Project"dir  "D:\Office\Project"
      

Dieser Befehl listet die Dateien im Project-Verzeichnis auf:

      Get-ChildItem "D:\Office\Project" -file
      

Dieser Befehl listet die Ordner im Verzeichnis Project auf:

      dir  "D:\Office\Project" -directory
      
Image

Erstellen, Kopieren und Löschen von Dateien: New-Item, Copy-Item, Remove-Item

Dieser Befehl wird die Textdatei myfile im Project-Ordner erstellen:

      New-Item -Path "D:\Office \Project\myfile.txt" -ItemType File
      

Dieser Befehl wird myfile.txt aus dem Project-Ordner in den startup-Ordner kopieren:

      Copy-Item -Path "D:\Office \Project\myfile.txt" -Destination "D:\Office \Project\startup\myfile.txt"
      

Dieser Befehl wird myfile.txt aus dem Project-Ordner löschen:

      Remove-Item -Path "D:\Office \Project\myfile.txt"
      

Der folgende Befehl wird den Ordner Project mitsamt all seinem Inhalt löschen:

      Remove-Item -Path "D:\Office \Project" -Recurse
      

Überprüfung des Ordnerinhalts und Suche: Get-ChildItem, Select-String

Dieser Befehl listet alle Dateien mit dem Typ .txt:

      Get-ChildItem -Path "D:\Office\Project" -Filter "*.txt"
      

Der folgende Befehl listet alle versteckten Dateien auf:

      Get-ChildItem -Path "D:\Office\Project" -Hidden
      

Dieser Befehl wird im der Datei Projectlogs.txt nach dem String 'error' suchen:

      Select-String -Path "D:\Office\Project\projectlogs.txt" -Pattern "error"
      
Image

System- und Prozessmanagement

Verwaltung von Systemdiensten: Get-Service, Start-Service, Stop-Service

Dieser Befehl wird alle Dienste mit dem String SQL in ihrem Namen auflisten:

      Get-Service -Name "*SQL*"
      
Image

Dieser Befehl wird alle Dienste abrufen, deren Namen mit dem String Windows: beginnen

      Get-Service -DisplayName "Windows *"
      
Image

Verwenden Sie das untenstehende Cmdlet, um alle Dienste zu ermitteln, die so eingestellt sind, dass sie automatisch starten:

      Get-Service | Where-Object {$_.StartType -eq "Automatic"}
      
Image

Der Anzeigename eines Dienstes kann sich von seinem tatsächlichen Dienstnamen unterscheiden. Stellen Sie sicher, dass Sie den Dienstnamen bei den folgenden Befehlen angeben.

Um einen Dienst zu starten, verwenden Sie einen Befehl wie diesen:

      Start-Service -Name "spooler"
      

Um einen Dienst zu stoppen, verwenden Sie einen Befehl wie diesen:

      Stop-Service -Name "autotimesvc"
      

Arbeiten mit Prozessen: Get-Process, Start-Process, Stop-Process

Sie können einen Prozess mit dem -Name-Parameter abrufen, wie hier gezeigt:

      Get-Process -Name notepad
      

Der untenstehende Befehl ruft Prozesse ab und leitet sie weiter, um die Ergebnisse in einer Tabelle anzuzeigen, die ihren Namen, die ID und die CPU-Auslastung zeigt:

      Get-Process | Format-Table Name, Id, CPU -AutoSize
      
Image

Dieses Cmdlet wird chrome.exe starten und die angegebene Website öffnen:

      Start-Process chrome.exe "https://www.google.com"
      
Image

Hier ist, wie man Notepad startet:

      Start-Process -FilePath "notepad.exe"
      

Das folgende Skript wird Notepad starten, 5 Sekunden warten und dann alle Notepad-Prozesse beenden:

      Start-Process -FilePath "notepad.exe" -PassThruWrite-Host "Notepad started."Start-Sleep -Seconds 5write-host "waiting for 5 seconds"stop-process -name notepadWrite-host "Notepad stopped"
      
Image

Um einen einzelnen Prozess zu stoppen, verwenden Sie einen Befehl wie diesen:

      Stop-Process -Name notepad
      

Um mehrere Prozesse zu stoppen, listen Sie sie wie hier gezeigt auf:

      Stop-Process -Name notepad, chrome
      

Zugriff auf und Überwachung von Systemprotokollen: Get-EventLog, Get-WinEvent

Um Ereignisprotokolleinträge zu erhalten, können Sie das ältere Cmdlet Get-EventLog. Verwenden. Zum Beispiel, hier ist, wie Sie die letzten 10 Fehlermeldungen aus dem Anwendungsereignisprotokoll erhalten:

      Get-EventLog -LogName Application -EntryType Error -newest 10
      
Image

Alternativ können Sie das modernere Get-WinEvent-Cmdlet verwenden. So erhalten Sie die 10 neuesten Einträge im Anwendungsprotokoll:

      Get-WinEvent -LogName Application -MaxEvents 10
      
Image

Befehle zur Daten- und Inhaltsverarbeitung

Lesen und Schreiben von Dateien: Get-Content, Set-Content, Out-File

Um den Inhalt der Datei myfile.txt im Projektordner zu lesen, verwenden Sie diesen Befehl:

      Get-Content -Path "D:\Office\Project\myfile.txt"
      

Um nur die ersten fünf Zeilen zu lesen, ändern Sie den Befehl wie hier gezeigt:

      Get-Content -Path "D:\Office\Project\myfile.txt" -TotalCount 5
      
Image

Um Text in myfile.txt zu schreiben, können Sie das Cmdlet Set-Content verwenden:

      Set-Content -Path "D:\Office\Project\myfile.txt"" -Value "Welcome to PowerShell blog"
      

Alternativ könnten Sie Add-Content verwenden, so:

      Add-Content -Path "D:\Office\Project\myfile.txt" -Value "Are you new to PowerShell?"
      

Das Cmdlet Out-File sendet Ausgaben in eine Datei; es wird häufig für formatierte Ausgaben verwendet. Das folgende Cmdlet schreibt Hello, World! in myfile.txt:

      "Hello, World!" | Out-File -FilePath "D:\Office\Project\myfile.txt "
      

Windows PowerShell-Skripting-Tutorial (PDF) für Anfänger

Erfahren Sie mehr

Exportieren und Importieren von Daten: Export-Csv, Import-Csv

Dieser Befehl wird Informationen über den Prozess notepad für die angegebenen Parameter abrufen und sie in die Datei processes.csv: exportieren

      Get-Process -Name notepad | Select-Object Name, Id, CPU | Export-Csv -Path "D:\Office\Project\Processes.csv" -NoTypeInformation
      

Um eine CSV-Datei zu importieren, verwenden Sie Import-Csv. Dieser Befehl importiert die gerade erstellte CVS-Datei in ein anderes Cmdlet, das die Objekte durchläuft und den Prozess anhand der Id-Spalte abruft:

      Import-Csv -Path "D:\Office\Project\Processes.csv" | ForEach-Object { Get-Process -Id $_.Id }
      
Image

Verwaltung und Konvertierung von Datenformaten: ConvertTo-Html, ConvertTo-Json

Der folgende Befehl wird Informationen über zwei laufende Prozesse abrufen und sie in das HTML-Format umwandeln:

      Get-Process -Name "notepad" , "chrome" | Select-Object Name, Id, CPU | ConvertTo-Html -Property Name, Id, CPU -Title "Process Report" | Out-File "D:\Office\Project\ProcessReport.html"
      
Image

Ebenso werden die folgenden Befehle die Informationen im JSON-Format exportieren:

      Get-Process -Name "notepad" , "chrome"  | Select-Object Name, Id, CPU, StartTime| ConvertTo-Json -Depth 2 | Out-File "D:\Office\Project\Processes.json"
      
Image

Netzwerk- und Remote-Verwaltung

Konnektivität prüfen: Test-Connection, Resolve-DnsName

Der Befehl Test-Connection sendet eine ICMP-Echoanforderung (Ping) an den definierten Remote-Host und überprüft, ob dieser erreichbar ist.

Zum Beispiel versucht dieser Befehl, eine Verbindung mit google.com über das Internet herzustellen:

      Test-Connection -ComputerName google.com
      

Und dieser Befehl überprüft die Konnektivität mit zwei Hosts, die durch ihren Namen und einem durch seine IP-Adresse spezifiziert sind:

      Test-Connection -ComputerName "google.com" , "microsoft.com" , "192.168.0.1"
      

Um spezifische TCP-Ports zu überprüfen, verwenden Sie den Parameter -Port:

      Test-NetConnection -ComputerName google.com -Port 443
      
Image

Dieser Befehl wird die Namensauflösung eines Computers testen, um zu überprüfen, ob ein bestimmter Computer in unserem Netzwerk existiert:

      Resolve-DnsName -Name DC1
      
Image

Alternativ können wir ein Gerät über seine IP-Adresse spezifizieren:

      Resolve-DnsName -Name 192.168.0.108
      
Image

Um nach einem bestimmten Typ von Datensätzen zu suchen, fügen Sie den -Type-Parameter mit einem Wert wie A (Adresse), AAAA (IPv6), CNAME oder MX (Mail Exchange) hinzu.

Arbeiten mit Remote-Sitzungen: Enter-PSSession, Exit-PSSession

PowerShell kann verwendet werden, um Hosts remote zu verwalten, vorausgesetzt, PowerShell-Remoting ist auf dem Host aktiviert. Um PowerShell-Remoting auf einem Host zu aktivieren, führen Sie den folgenden Befehl mit administrativen Rechten aus:

      Enable-PSRemoting -Force
      

Um eine Verbindung zum entfernten Host herzustellen, verwenden Sie den folgenden Befehl:

      Enter-PSSession -ComputerName "DC1"
      

Wenn Sie PowerShell nicht in einem privilegierten Benutzerkontext ausführen, werden Sie zur Eingabe von Anmeldeinformationen für den Benutzerkontext der Remote-Sitzung aufgefordert.

Nachdem eine Remote-PowerShell-Sitzung hergestellt wurde, können Sie Befehle und Skripte auf dem Zielhost ausführen, wie es Ihre Privilegien auf diesem Server erlauben. Zum Beispiel wird durch Ausführen von Get-Process Informationen vom entfernten Computer abgerufen:

Image

Um die Sitzung zu beenden, verwenden Sie einfach den folgenden Befehl.

      Exit-PSSession.
      

Verwaltung von Remote-Befehlen: Invoke-Command, New-PSSession

Um einen Befehl nicht-interaktiv auf einem entfernten Host auszuführen, verwenden Sie das Invoke-Command-Cmdlet. Um beispielsweise den Notepad-Prozess auf dem Zielhost DC1 zu erhalten, führen Sie dieses Cmdlet aus:

      Invoke-Command -ComputerName DC1 -ScriptBlock { Get-Process -Name Notpad }
      

Wenn Sie eine beständige Sitzung für wiederholte Operationen einrichten möchten, verwenden Sie New-PSSession. So richten Sie eine neue PS-Sitzung ein und speichern sie in einer Variablen:

      $session = New-PSSession -ComputerName DC1
      

Führen Sie dann diesen Befehl aus, um die Remote-PowerShell-Sitzung zu starten:

      Enter-PSSession -Session $session
      

Danach können wir Befehle auf dem Zielhost ausführen, als würden wir sie nativ auf unserem lokalen Host ausführen, wie hier gezeigt:

      Get-Process notepad
      
Image

Sicherheits- und Ausführungsrichtlinien

PowerShell-Ausführungsrichtlinie: Get-ExecutionPolicy, Set-ExecutionPolicy

Die PowerShell-Ausführungsrichtlinie hilft dabei, die Ausführung unbefugter oder bösartiger Skripte zu verhindern. Es gibt verschiedene Richtlinientypen und -bereiche.

Arten von Execution Policy

  • Eingeschränkt — Es dürfen keine Skripte ausgeführt werden; es können nur interaktive Befehle ausgeführt werden. Dies ist die Standardeinstellung für neue Installationen von Windows.
  • AllSigned — Nur Skripte, die von einem vertrauenswürdigen Herausgeber signiert wurden, können ausgeführt werden. Das System fordert den Benutzer auf, den Herausgeber eines Skripts zu bestätigen, selbst wenn diesem zuvor vertraut wurde.
  • RemoteSigned — Lokal erstellte Skripte können ohne Signatur ausgeführt werden. Ein vertrauenswürdiger Herausgeber muss Skripte, die aus dem Internet heruntergeladen wurden, signieren.
  • Unrestricted — Alle Skripte können ohne Einschränkungen ausgeführt werden. Es wird um Bestätigung gebeten, wenn Skripte aus dem Internet ausgeführt werden.
  • Bypass — Keine Einschränkungen oder Warnungen; alle Skripte können unabhängig von ihrer Herkunft ausgeführt werden.
  • Nicht definiert — Es ist keine Ausführungsrichtlinie im aktuellen Bereich festgelegt. Das System erbt die Ausführungsrichtlinie aus einem übergeordneten Bereich, z.B. LocalMachine.

Geltungsbereiche für die Ausführungsrichtlinie

  • CurrentUser — Betrifft den aktuell angemeldeten Benutzer und bleibt für zukünftige Sitzungen dieses Benutzers bestehen.
  • LocalMachine — Gilt für alle Benutzer und Sitzungen auf dem Computer. Erfordert administrative Berechtigungen zur Änderung.
  • Prozess — Wirkt sich nur auf die aktuelle PowerShell-Sitzung aus. Bleibt nach dem Ende der Sitzung nicht bestehen.

Überprüfung und Änderung der Ausführungsrichtlinie

Um die effektive Ausführungsrichtlinie zu überprüfen, geben Sie diesen Befehl ein:

      Get-ExecutionPolicy
      

Um die Ausführungsrichtlinie festzulegen, verwenden Sie den unten stehenden Befehl und geben Sie den Richtliniennamen an. Wenn Sie möchten, können Sie den Geltungsbereich mit dem Parameter -Scope festlegen.

      Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
      
Image

Verwaltung von Berechtigungen und Rollen: Get-ACL, Set-ACL

Eine Zugriffskontrollliste (ACL) steuert die Berechtigungen von Benutzern und Gruppen für Dateien, Ordner und andere Objekte. Die grundlegenden ACL-Berechtigungen sind Lesen, Schreiben, Ausführen, Löschen und Ändern.

Um die ACL für eine Datei zu erhalten, verwenden Sie das Cmdlet Get-ACL und geben Sie den Pfad zur Datei an:

      Get-Acl -Path "D:\Office\Project\Processes.csv"
      
Image

Um die ACL einer Datei zu kopieren und auf eine andere Datei anzuwenden, führen Sie die folgenden Schritte aus:

  1. Holen Sie die ACL der Quelldatei und speichern Sie sie in einer Variablen:
      $SourcefileACL = Get-Acl -Path "D:\Office\Project\Processes.csv"
      
  • Setzen Sie die gespeicherte ACL für die gewünschte Datei:
      Set-ACL -Path "D:\Office\Project\Processes1.json" -AclObject $SourceACL
      

Um zu überprüfen, ob die ACL korrekt gesetzt wurde, verwenden Sie den folgenden Befehl:

      Get-Acl -Path "D:\Office\Project\Processes1.json"
      
Image

Absicherung von Skripten mit Zertifikaten: Set-AuthenticodeSignature, ConvertTo-SecureString

Erstellen und Anwenden von Zertifikaten

Verwenden Sie das Cmdlet Set-AuthenticodeSignature zur Anwendung einer digitalen Signatur auf ein Skript oder eine Datei. Diese Signatur versichert den Benutzern, dass das Skript von einer vertrauenswürdigen Quelle stammt und seit der Signierung nicht verändert wurde.

Sie können ein von einer vertrauenswürdigen Zertifizierungsstelle (CA) ausgestelltes Zertifikat verwenden oder ein selbstsigniertes Zertifikat für den internen Gebrauch erstellen. Unten finden Sie ein Beispiel für die Erstellung eines selbstsignierten Zertifikats:

      New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=MyCert" -CertStoreLocation Cert:\CurrentUser\My
      
Image

Finden Sie das Zertifikat im Zertifikatspeicher und speichern Sie es in einer Variablen, um es später zum Signieren der Dateien zu verwenden:

      $cert = Get-ChildItem Cert:\CurrentUser\My | Where-Object { $_.Subject -like '*MyCert*' }
      

Verwenden Sie dann Set-AuthenticodeSignature um Ihr Skript zu signieren:

      Set-AuthenticodeSignature -FilePath "C:\Temp\Script.ps1" -Certificate $cert
      

Nach der Signierung überprüfen Sie die Signatur mit diesem Befehl:

      Get-AuthenticodeSignature -FilePath "C:\Temp\Script.ps1"
      
Image

Daten in einen sicheren String umwandeln

ConvertTo-SecureString erstellt einen sicheren String für Passwörter oder sensible Daten und speichert ihn in einer Datei. Zum Beispiel können Sie ein Klartextpasswort mit diesem Befehl in einen sicheren String umwandeln:

      $securePsw = ConvertTo-SecureString "MyPassword123" -AsPlainText -Force
      

Dann können Sie die sichere Zeichenkette mit diesem Cmdlet in einer Datei speichern:

      $securePsw | ConvertFrom-SecureString | Out-File "D:\Office\Project\EncryptedPassword.txt"
      

PowerShell für Windows-Systemkonfiguration

Systeminformationen abrufen: Get-ComputerInfo, Get-Host, Get-WmiObject

Get-ComputerInfo

Dieses Cmdlet ruft detaillierte Informationen über die Hardware, das Betriebssystem und die Konfiguration des Computers ab:

      Get-ComputerInfo
      
Image

Um die Ausgabe auf bestimmte Eigenschaften zu beschränken, verwenden Sie ein Cmdlet wie dieses:

      Get-ComputerInfo | Select-Object CsName, WindowsVersion, WindowsBuildLabEx, OsArchitecture
      
Image

Sie können Informationen abrufen, indem Sie das Wildcard mit dem -Property-Parameter verwenden, wie unten gezeigt:

      Get-ComputerInfo -Property "OS*"
      
Image

Get-Host

Dieses Cmdlet liefert Informationen über die aktuelle PowerShell-Hostumgebung, die für das Debugging und andere Zwecke nützlich ist:

      Get-Host
      

Um bestimmte Eigenschaften abzurufen, verwenden Sie einen Befehl wie einen der folgenden:

      (Get-Host).Version(Get-Host).Name
      
Image

Get-WmiObject

Get-WmiObject ist ein leistungsfähiges Cmdlet zum Abfragen von Windows Management Instrumentation (WMI)-Objekten. Es liefert detaillierte Informationen über verschiedene Systemkomponenten und Dienste.

Dieses Cmdlet wird Informationen zum Betriebssystem abrufen:

      Get-WmiObject -Class Win32_OperatingSystem
      
Image

Und dieser wird BIOS-Informationen abrufen:

      Get-WmiObject -Class Win32_BIOS
      
Image

Um Prozessorinformationen abzurufen, verwenden Sie diesen Befehl:

      Get-WmiObject -Class Win32_Processor | Select-Object Name, NumberOfCores, MaxClockSpeed
      
Image

Nützliche Tipps für PowerShell-Benutzer

Verwendung von Get-Help und Get-Command für die Befehlsreferenz

Der Befehl Get-Help ist praktisch, um die Syntax anderer Befehle nachzuschlagen:

      Get-Help Get-Process
      
Image

Get-Command kann verwendet werden, um PowerShell-Befehle, Funktionen, Aliase, Skripte und Module zu erhalten. Es zeigt deren Typen, Namen, Version und Quelldetails an.

      Get-Command Get-Process
      
Image

Sie können Platzhalter (*) verwenden, um Befehle anhand von Teilnamen zu erkunden. Zum Beispiel, so können Sie alle Cmdlets und Funktionen mit Service in ihren Namen anzeigen:

      Get-Command *Service*
      
Image

Eigenschaften von Objekten erkunden mit Get-Member

Der Befehl Get-Member wird hauptsächlich verwendet, um die Struktur und Fähigkeiten von Objekten zu verstehen, indem ihre Eigenschaften und Methoden erkundet werden. Zum Beispiel wird der folgende Befehl alle Eigenschaften des Befehls Get-Date auflisten:

      Get-Date | Get-Member -MemberType property
      
Image

Erstellen von benutzerdefinierten Aliassen und Funktionen für Effizienz

Sie können neue Aliase und Funktionen erstellen, um PowerShell einfacher zu bedienen und häufige Aufgaben zu automatisieren. Zum Beispiel wird der folgende Befehl den Alias p für den Get-process-Befehl erstellen:

      New-Alias -Name p -Value Get-Process
      
Image

Funktionen ermöglichen es Ihnen, mehrere Befehle in einem wiederverwendbaren Block zu bündeln. Das folgende Skript erstellt eine einfache Funktion, um die Dateien in einem Verzeichnis aufzulisten und zu zählen:

      function ListAndCountFiles {    param (        [string]$directory    )    Get-ChildItem -Path $directory    $fileCount = (Get-ChildItem -Path $directory).Count    Write-Host "Total files in $($directory): $fileCount"}
      

Um diese Funktion später zu verwenden, benutze einfach diesen Befehl:

      ListAndCountFiles -directory "C:\Temp"
      
Image

Fazit

Praktische Übungen sind entscheidend, um Fachkenntnisse in PowerShell zu erlangen. Beginne damit, Get-Help zu verwenden, um Details zu anderen Cmdlets anzuzeigen, navigiere mit Get-ChildItem und Set-Location durch dein Dateisystem und rufe Systeminformationen mit Get-ComputerInfo, Get-Host und Get-WmiObject ab. Gehe dann zu fortgeschritteneren Aufgaben über, wie dem Bearbeiten von Daten, Signieren von Skripten, Starten und Stoppen von Diensten und Verwalten von Objekten.
Wenn du Hosts aus der Ferne verwalten musst, solltest du unbedingt das Material zu Remoteausführungsrichtlinien und -sitzungen durchsehen.

Lade diesen Blog herunter oder füge ihn zu deinen Lesezeichen hinzu, damit du die Cmdlets, die du für die effektive Nutzung von PowerShell benötigst, schnell nachschlagen kannst.

Netwrix Directory Manager

FAQ

Wie viele PowerShell-Befehle gibt es?

Die Anzahl der verfügbaren PowerShell-Befehle hängt von der Version von PowerShell und den installierten Modulen ab. Um die Gesamtzahl der Befehle zu ermitteln, verwende den folgenden Befehl:

      Get-Command | Measure-Object
      

Welche Befehle werden in PowerShell verwendet?

PowerShell-Befehle bieten eine breite Palette an Funktionen, wie z. B. Datenverarbeitung, Datei- und Ordnerverwaltung sowie Systemadministration. Einige wichtige Befehle sind Get-Help, Get-ChildItem, Set-Location, Get-Process und Export-Csv.

Wie erhalte ich eine Liste aller PowerShell-Befehle?

Um alle verfügbaren Befehle anzuzeigen, führe dieses Cmdlet aus:

      Get-Command
      

Welche coolen Dinge kann man mit PowerShell machen?

Mit PowerShell können Benutzer sich wiederholende Aufgaben automatisieren, Server aus der Ferne verwalten, mit Webdiensten und APIs arbeiten, Systemressourcen analysieren und Cloud-Ressourcen verwalten.

Wie verwende ich Windows PowerShell?

Um PowerShell über das Windows-Startmenü zu starten, gib einfach den Befehl PowerShell ein.

Was sind PowerShell und grundlegende Befehle?

PowerShell ist eine Befehlszeilenschnittstelle und Skriptsprache. Einige grundlegende Befehle sind:

  • Get-Help
  • Get-Service
  • Set-location
  • New-Item

Was ist PowerShell für Anfänger?

PowerShell kann auch für Anfänger Spaß machen. Seine Verb-Substantiv-Struktur ist einfach zu verwenden. Mit Engagement und Hilfsmitteln wie diesem Blog kann man grundlegende Aufgaben schnell meistern und innerhalb weniger Wochen zu einem fortgeschrittenen Anwender werden.

Teilen auf

Erfahren Sie mehr

Über den Autor

Asset Not Found

Jonathan Blackwell

Leiter der Softwareentwicklung

Seit 2012 hat Jonathan Blackwell, ein Ingenieur und Innovator, eine führende Rolle in der Ingenieurskunst übernommen, die Netwrix GroupID an die Spitze des Gruppen- und Benutzermanagements für Active Directory und Azure AD Umgebungen gebracht hat. Seine Erfahrung in Entwicklung, Marketing und Vertrieb ermöglicht es Jonathan, den Identity-Markt und die Denkweise der Käufer vollständig zu verstehen.