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.

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.
Schritt 2) Das PowerShell-Fenster öffnet sich.
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-Befehl: Informationen über alles, was aufgerufen werden kann, einholen.
Beispiel: Generieren einer Liste der auf dem Rechner installierten Cmdlets und Funktionen.
Get-Command
Get-Service: findet alle Dienste auf dem Rechner.
Beispiel: Alle Dienste abrufen, deren Name mit „vm“ beginnt.
Get-Service "vm*"
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
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:
PowerShell-Datentypen
PowerShell unterstützt die Standard-.NET-Datentypen, sodass Sie jeden Wert sauber in einer Variablen speichern können.
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“.
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.
Schritt 2) Führen Sie die folgenden Befehle aus.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- Enter
Ybei der Bestätigungsaufforderung. Get-ExecutionPolicy
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.
Führen Sie das Skript in PowerShell mit folgendem Befehl aus:
& "X:\FirstScript.ps1"
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.
Erstellen Sie das vorherige Skript in ISE neu:
- Füge den Code in den Editor ein.
- Speichern Sie das Skript.
- Drücken Sie F5, um es auszuführen.
- Beobachten Sie die Ausgabe im Konsolenfenster.
Probe 2: Das folgende Skript zeigt kostenlose virtuellen Speicher auf der Maschine.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
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.
















