Powershell-Tutorial für Anfänger

⚡ Intelligente Zusammenfassung

PowerShell Scripting ist eine objektorientierte Automatisierungs-Engine, die auf dem .NET Framework basiert. Sie kombiniert Cmdlets, Skripte und eine Skriptsprache, um IT-Administratoren bei der Automatisierung zu unterstützen. WindowsDienste verwalten und entfernte Rechner über eine einzige Befehlszeile verbinden.

  • 🚀 Starten Sie die richtige Shell: Öffnen Sie PowerShell oder PowerShell ISE über das Startmenü und führen Sie es als Administrator aus, wenn Sie erhöhte Berechtigungen benötigen.
  • 🧩 Verwenden Sie Cmdlets, keine Textbefehle: Cmdlets folgen einem Verb-Nomen-Namensmuster und geben .NET-Objekte zurück, sodass die Ausgabe über eine Pipeline an das nächste Cmdlet weitergeleitet werden kann.
  • 🔐 Die Ausführungsrichtlinie sorgfältig festlegen: Verwenden Sie Set-ExecutionPolicy mit RemoteSigned, um Sicherheit und Komfort beim Ausführen von .ps1-Skripten in Einklang zu bringen.
  • 📁 Schreiben Sie wiederverwendbare .ps1-Skripte: Kombinieren Sie Cmdlets, Variablen und Pipelines in einer Textdatei mit der Erweiterung .ps1, um wiederkehrende administrative Aufgaben zu automatisieren.
  • 🤖 PowerShell mit KI kombinieren: KI-Assistenten wandeln Anfragen in einfacher Sprache in sofort ausführbare PowerShell-Skripte um und erklären unbekannte Cmdlets Zeile für Zeile.

Powershell-Tutorial für Anfänger

Was ist PowerShell?

Windows Powershell ist eine objektorientierte Automatisierungs-Engine und Skriptsprache. Sie wurde für IT-Fachleute und Systemadministratoren entwickelt, die die Administration von Systemen steuern und automatisieren müssen. Windows und anderen Anwendungen. PowerShell erweitert die in Windows Eingabeaufforderung und Windows Script Host mit neuen Objekten, Cmdlets und einer leistungsstarken Pipeline.

Es vereint die Flexibilität von Skripten, die Geschwindigkeit der Kommandozeile und die Funktionalität eines GUI-Verwaltungstools. Administratoren können damit Probleme effizient lösen und stundenlange manuelle Arbeit einsparen. Dieses Tutorial führt Sie durch die Grundlagen, die Sie benötigen, um PowerShell von Grund auf zu lernen.

Warum PowerShell verwenden?

Die wichtigsten Gründe für die Verwendung von PowerShell sind:

  • Bietet eine gut integrierte Kommandozeilen-Umgebung für das Betriebssystem.
  • Bietet vollständigen Zugriff auf jeden Datentyp im .NET Framework.
  • Von Systemadministratoren in Unternehmen weltweit geschätzt.
  • Ermöglicht die Manipulation von Server- und Workstation-Komponenten mit wenigen Zeilen Code.
  • Ausgerichtet auf Systemadministratoren mit einer klaren Verb-Nomen-Syntax.
  • Sicherer als Laufen VBScript oder andere ältere Skriptsprachen.

PowerShell-Verlauf

PowerShell 1.0 wurde erstmals 2006 veröffentlicht. Mittlerweile gibt es PowerShell in Version 7.2 und höher. Mit jeder neuen Version haben sich die Funktionalität und die Einsatzumgebungen deutlich erweitert.

Versionsverlauf von PowerShell:

  • PowerShell 1.0 — unterstützte die lokale Verwaltung von Windows 2003-Server.
  • PowerShell 2.0 — integriert mit Windows 7 und Windows Server 2008 R2. Remoting, Transaktionen, Hintergrundprozesse, Ereignisse und Debugging hinzugefügt.
  • PowerShell 3.0 — geliefert mit Windows 8 und Windows Server 2012 als Teil der Windows Management-Framework. Hinzugefügt wurden geplante Jobs, Sitzungsverbindungen und automatisches Laden von Modulen.
  • PowerShell 4.0 — geliefert mit Windows 8.1 und Windows Server 2012 R2. Hinzugefügte Sollzustandskonfiguration, verbessertes Debugging und Netzwerkdiagnose.
  • PowerShell 5.0 — Teil von Windows Management Framework 5. Remote-Debugging, Klassendefinitionen und .NET-Enumerationen wurden hinzugefügt.
  • PowerShell 7.2 — basiert auf .NET 6.0. Fügt neue Operatoren, dynamische Fehleransichten und automatische Versionsbenachrichtigungen hinzu.

Funktionen von PowerShell

  • PowerShell-Remoting: Skripte und Cmdlets auf einem Remote-Rechner aufrufen.
  • Hintergrundjobs: Skripte oder Pipelines asynchron auf dem lokalen Rechner oder vielen entfernten Rechnern ausführen.
  • Transaktionen: Ermöglichen Sie es Cmdlets und Entwicklern, gruppierte Operationen durchzuführen, die gemeinsam festgeschrieben oder zurückgesetzt werden können.
  • Vielseitigkeit: Management- und Systemereignisse erkennen, weiterleiten und darauf reagieren.
  • Netzwerkdateiübertragung: Native Unterstützung für priorisierte, asynchrone, gedrosselte Dateiübertragungen zwischen Rechnern über den Background Intelligent Transfer Service (BITS).

So starten Sie PowerShell

PowerShell ist auf jeder neueren Version vorinstalliert. WindowsStarten Sie es wie folgt.

Schritt 1) Suchen Sie nach PowerShell in WindowsDann wählen Sie es aus und klicken Sie darauf.

Starten Sie PowerShell

Schritt 2) Das PowerShell-Fenster öffnet sich.

PowerShell-Fenster

Cmdlet vs. Befehl

A Cmdlet (ausgesprochen „Command-let“) ist ein leichtgewichtiger Befehl, der in der PowerShell-Umgebung verwendet wird. PowerShell ruft Cmdlets an der Eingabeaufforderung auf, und Sie können mithilfe der PowerShell-APIs eigene Cmdlets erstellen. Cmdlets unterscheiden sich in folgenden Punkten von herkömmlichen Shell-Befehlen:

  • Cmdlets sind . NET Framework Klassenobjekte; sie können nicht als eigenständige ausführbare Dateien ausgeführt werden.
  • Cmdlets können mit nur einem Dutzend Codezeilen geschrieben werden.
  • Das Parsen, die Ausgabeformatierung und die Fehlerdarstellung werden von der Laufzeitumgebung und nicht vom Cmdlet selbst übernommen.
  • Cmdlets arbeiten mit Objekten, daher können sowohl Textströme als auch Objekte durch Pipelines fließen.
  • Cmdlets sind datensatzbasiert und verarbeiten jeweils nur ein Objekt.

Die meisten PowerShell-Funktionen werden über Cmdlets bereitgestellt, die stets dem Namensmuster Verb-Nomen folgen (immer im Singular). Cmdlets geben Objekte zurück, keinen Text. Skript — im Unterschied zu einem Cmdlet — ist eine Reihe von Befehlen, die in einer Textdatei gespeichert sind. .ps1 Erweiterung.

Zu den gebräuchlichen Verben, die Sie zum Erlernen von PowerShell verwenden werden, gehören:

  • Erhalten Sie — etwas abrufen.
  • Start — etwas ausführen.
  • Außen — etwas ausgeben.
  • Stoppen — etwas anhalten, das gerade läuft.
  • Stelle den — etwas definieren.
  • New — etwas erschaffen.

Wichtige PowerShell-Befehle

Hilfe bekommen: Hilfe zu PowerShell-Befehlen und -Themen anzeigen.

Beispiel: Hilfe anzeigen für die Format-Table Befehl.

Get-Help Format-Table

Get-Help-Cmdlet

Get-Befehl: Informationen über alles, was aufgerufen werden kann, einholen.

Beispiel: Generieren einer Liste der auf dem Rechner installierten Cmdlets und Funktionen.

Get-Command

Get-Command-Cmdlet

Get-Service: findet alle Dienste auf dem Rechner.

Beispiel: Alle Dienste abrufen, deren Name mit „vm“ beginnt.

Get-Service "vm*"

Get-Service Cmdlet

Get-Member: Zeigen, was man mit einem Objekt alles machen kann.

Beispiel: Liste der von Get-Service zurückgegebenen VM-Dienste auf.

Get-Service "vm*" | Get-Member

Get-Member Cmdlet

Weitere nützliche Cmdlets:

  • Get-Module — zeigt die installierten Befehlspakete an.
  • Get-Content — eine Datei lesen und deren Inhalt verarbeiten.
  • Get-* Platzhalter — Listet alle Cmdlets auf, die mit „Get-“ beginnen.

Beispiel: einen Ordner erstellen.

New-Item -Path 'X:\Guru99' -ItemType Directory

Ausgang:

Ausgabe „Neues Element“

PowerShell-Datentypen

PowerShell unterstützt die Standard-.NET-Datentypen, sodass Sie jeden Wert sauber in einer Variablen speichern können.

PowerShell-Datentypen

Spezielle Variablen

PowerShell stellt eine Reihe integrierter Spezialvariablen bereit. Die nützlichsten sind unten aufgeführt.

Spezielle Variable Beschreibung
$Fehler Ein Array von Fehlerobjekten, die die aktuellsten Fehler darstellen.
$Host Zeigt den Namen der aktuellen Hosting-Anwendung an.
$Profil Speichert den vollständigen Pfad des Benutzerprofils für die Standard-Shell.
$PID Speichert die Prozesskennung.
$PSUICulture Trägt den Namen der aktuellen UI-Kultur.
$NULL Enthält einen leeren oder Nullwert.
$Falsch Enthält den booleschen Wert FALSE.
$Wahr Enthält den booleschen Wert TRUE.

PowerShell-Skripts

PowerShell-Skripte werden gespeichert in .ps1 Dateien. Standardmäßig können Sie ein Skript nicht durch Doppelklicken ausführen – diese Sicherheitsvorkehrung schützt das System vor versehentlichen Schäden. Um ein Skript auszuführen, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Ausführen“. „Mit PowerShell ausführen“.

Mit PowerShell ausführen

Eine Ausführungsrichtlinie steuert, welche Skripte ausgeführt werden dürfen. Die aktuelle Richtlinie kann mit folgendem Link angezeigt werden: Get-ExecutionPolicyMögliche Werte sind:

  • Eingeschränkt — Skripte sind nicht erlaubt. Dies ist die Standardeinstellung.
  • AllSigned — Nur von einem vertrauenswürdigen Entwickler signierte Skripte werden ausgeführt, und jedes Skript erfordert eine Bestätigung.
  • RemoteSigniert — Ihre eigenen Skripte werden ausgeführt, zusätzlich zu signierten Skripten aus vertrauenswürdigen Quellen.
  • Uneingeschränkt — Jedes beliebige Skript kann ausgeführt werden (sparsam verwenden).

Schritte zur Änderung der Ausführungsrichtlinie:

Schritt 1) Öffnen Sie eine PowerShell-Eingabeaufforderung mit Administratorrechten, indem Sie mit der rechten Maustaste auf PowerShell klicken und Folgendes auswählen: Als Administrator ausführen.

Führen Sie PowerShell als Administrator aus

Schritt 2) Führen Sie die folgenden Befehle aus.

  1. Get-ExecutionPolicy
  2. Set-ExecutionPolicy Unrestricted
  3. Enter Y bei der Bestätigungsaufforderung.
  4. Get-ExecutionPolicy

Ausführungsrichtlinie ändern

Erstes PowerShell-Skript

Öffnen Sie Notepad und geben Sie Folgendes ein:

Write-Host "Hello, Guru99!"

Speichern Sie die Datei mit einem .ps1 Erweiterung – zum Beispiel FirstScript.ps1.

Speichern Sie FirstScript.ps1

Führen Sie das Skript in PowerShell mit folgendem Befehl aus:

& "X:\FirstScript.ps1"

Führen Sie FirstScript.ps1 aus

Was ist PowerShell ISE?

Das Windows PowerShell Integrated Scripting Environment (ISE) ISE ist der Standardeditor für PowerShell. In einer grafischen, fensterbasierten Umgebung können Sie Befehle ausführen, Tests schreiben und Skripte debuggen. Er unterstützt mehrzeilige Bearbeitung, Syntaxhervorhebung, Tab-Vervollständigung, selektive Ausführung und vieles mehr.

PowerShell ISE bietet außerdem ein Konsolenfenster, in dem Befehle direkt ausgeführt werden können, während in den Seitenfenstern der Quellcode Ihrer Skripte und alle in ISE eingebundenen Tools angezeigt wird. Sie können mehrere Skriptfenster gleichzeitig öffnen – dies ist hilfreich beim Debuggen von Skripten, die von Funktionen abhängen, die in anderen Skripten oder Modulen definiert sind.

PowerShell-ISE

Erstellen Sie das vorherige Skript in ISE neu:

  1. Füge den Code in den Editor ein.
  2. Speichern Sie das Skript.
  3. Drücken Sie F5, um es auszuführen.
  4. Beobachten Sie die Ausgabe im Konsolenfenster.

Skript in ISE ausführen

Probe 2: Das folgende Skript zeigt kostenlose virtuellen Speicher auf der Maschine.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory

Kostenloses virtuelles Speicherskript

Powershell Concepts

Die folgenden Begriffe bilden das Vokabular der täglichen Arbeit mit PowerShell.

Konzept Beschreibung
Cmdlets Integrierte Befehle, die in .NET-Sprachen wie VB oder C# geschrieben sind. Entwickler erweitern den Befehlssatz durch das Laden oder Schreiben von PowerShell-Snap-Ins.
Funktionen Befehle, die in der PowerShell-Sprache selbst geschrieben sind, ohne dass eine IDE wie z. B. erforderlich ist. Visual Studio.
Scripts Textdateien auf der Festplatte mit dem .ps1 Erweiterung.
Anwendungen Vorhanden Windows Programme, die von der Shell aus aufgerufen werden.
Was ist, wenn Weist das Cmdlet an, nicht ausgeführt zu werden, sondern zu beschreiben, was passieren würde, wenn es ausgeführt würde.
Schichtannahme Weist das Cmdlet an, vor der Ausführung eine Abfrage anzuzeigen.
Ausführlich Bietet ein höheres Maß an operativen Details.
Debuggen Weist das Cmdlet an, Debugging-Informationen auszugeben.
Fehleraktion Legt fest, wie das Cmdlet im Fehlerfall vorgeht. Zulässige Werte: continue, stop, silentlycontinue, inquire.
Fehlervariable Benennt die Variable, die Fehlerinformationen enthält.
OutVariable Weist das Cmdlet an, seine Ausgabe in einer bestimmten Variablen zu speichern.
AußenBuffer Speichert eine bestimmte Anzahl von Objekten, bevor diese durch die Pipeline gesendet werden.

Vorteile der Verwendung von PowerShell-Skripten

  • PowerShell-Skripte sind leistungsstark und prägnant – man kann mit nur wenigen Zeilen viel erreichen.
  • Variablen werden mit dem $<variable> Syntax.
  • Variablen können Befehlsausgaben, Objekte und primitive Werte speichern.
  • Der Variablentyp muss nicht explizit angegeben werden.

PowerShell vs. Eingabeaufforderung

Powershell Eingabeaufforderung
Tief integriert mit WindowsBietet eine interaktive Befehlszeile und eine vollständige Skriptsprache. Standardmäßige Befehlszeilenschnittstelle bereitgestellt von MicrosoftEine einfache Win32-Anwendung, die mit anderen Win32-Objekten kommuniziert.
Verwendet Cmdlets, die interaktiv oder über Automatisierungsskripte aufgerufen werden können. Keine Cmdlets.
Die Ausgabe wird als Objekte behandelt, sodass sie über die Pipeline an ein anderes Cmdlet weitergeleitet werden kann. Die Ausgabe ist ein einfacher Textstrom, keine Objekte.
Fortschrittlich in Bezug auf Funktionen, Leistungsfähigkeit und interne Architektur. Einfache Shell, geeignet für ältere Batch-Aufgaben.

Anwendungsbereiche von PowerShell

PowerShell hat sich für IT-Administratoren als Standardlösung etabliert, da sie den Aufwand in großen Unternehmensnetzwerken erheblich reduziert. Stellen Sie sich vor, Sie verwalten über vierhundert Server und führen eine neue Sicherheitslösung ein, die auf einem bestimmten Dienst basiert, der auf jedem Host ausgeführt werden muss.

Das manuelle Anmelden an jedem Server ist langsam und fehleranfällig. Ein einzelnes PowerShell-Skript kann innerhalb weniger Minuten alle Server durchsuchen, melden, auf welchen Hosts der Dienst bereits ausgeführt wird, und ihn sogar auf den übrigen aktivieren. Das Skript erfasst die gewünschte Konfiguration einmalig und wendet sie zuverlässig im gesamten Netzwerk an.

Häufig gestellte Fragen

PowerShell automatisiert Windows Systemadministration – Verwaltung von Diensten, Dateien, Benutzern und Servern – mittels einer objektorientierten Befehlszeilen- und Skriptsprache, die auf dem .NET-Framework basiert.

Ein Cmdlet ist ein leichtgewichtiges .NET-Klassenobjekt, das einen Verb-Nomen-Namen verwendet und Objekte zurückgibt. Ein herkömmlicher Befehl in anderen Shells gibt Klartext aus und kümmert sich selbst um das Parsen und Formatieren.

PowerShell arbeitet mit Objekten und unterstützt Cmdlets, Skripte und die tiefe Integration von .NET. Die Eingabeaufforderung ist eine einfache textbasierte Shell, deren Befehle Klartext anstelle von Objekten ausgeben.

Eine .ps1-Datei ist ein PowerShell-Skript – eine Textdatei, die einen oder mehrere PowerShell-Befehle enthält. Standardmäßig kann sie nicht durch Doppelklicken ausgeführt werden; sie wird über die Konsole oder mit „Mit PowerShell ausführen“ gestartet.

Öffnen Sie PowerShell als Administrator und führen Sie den Befehl `Set-ExecutionPolicy` mit einem Wert wie „RemoteSigned“ oder „Unrestricted“ aus. Bestätigen Sie anschließend die Ausführung. Verwenden Sie `Get-ExecutionPolicy`, um die aktuelle Einstellung zu überprüfen.

Die Integrated Scripting Environment (ISE) ist der in PowerShell integrierte GUI-Editor zum Schreiben, Ausführen, Testen und Debuggen von Skripten mit Syntaxhervorhebung, Tab-Vervollständigung und der Möglichkeit, mehrere Skript-Tabs zu öffnen.

KI-Assistenten schlagen Cmdlets vor, erklären das Verhalten von Skripten und erkennen Fehler während der Eingabe. Sie helfen Administratoren, Aufgaben schneller zu automatisieren und Anfragen in natürlicher Sprache in funktionierende PowerShell-Befehle umzuwandeln.

Ja. KI-Code-Assistenten generieren vollständige PowerShell-Skripte aus einer Beschreibung in einfacher Sprache, wie z. B. „Liste alle gestoppten Dienste auf und starte sie neu“, und erklären jedes Cmdlet, sodass Sie es vor der Ausführung überprüfen können.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: