PowerShell meistern: Einsteiger-Guide für mächtiges Scripting
Lassen Sie uns mit PowerShell-Lektionen beginnen. Zuerst lernen wir:
Was ist PowerShell?
Windows PowerShell ist eine objektorientierte Automatisierungs-Engine und Skriptsprache. Sie wurde hauptsächlich für IT-Profis und Systemadministratoren entwickelt, um die Administration von Windows OS und anderen Anwendungen zu steuern und zu automatisieren. Sie bietet überzeugende neue Konzepte, um das Wissen zu erweitern, das Sie in der Windows-Eingabeaufforderung und der Windows Script Host-Umgebung erworben haben.
Sie kombiniert die Flexibilität von Skripting, Kommandozeilen-Geschwindigkeit und die Power eines GUI-basierten Admin-Tools. Sie ermöglicht effizientes Problemlösen, indem sie Systemadministratoren hilft, zukünftige manuelle Arbeitsstunden zu eliminieren. Wir gehen alle wichtigen Aspekte durch, die Sie kennen sollten, um PowerShell zu lernen.
In diesem PowerShell-Tutorial für Einsteiger lernen Sie PowerShell-Grundlagen wie:
- Was ist PowerShell?
- Warum PowerShell nutzen?
- PowerShell Geschichte
- PowerShell Features
- PowerShell starten
- PowerShell Cmdlets
- Cmdlet vs. Command
- PowerShell Datentypen
- Spezielle Variablen
- PowerShell Skripte
- Erstes PowerShell-Skript
- Was ist PowerShell ISE?
- PowerShell Konzepte
- PowerShell vs. Command Prompt
- Anwendungen von PowerShell
Dies ist ein vollständiger Leitfaden zu PowerShell-Skripting-Grundlagen… legen wir los!
Warum PowerShell nutzen?
Hier sind wichtige Gründe für die Nutzung von PowerShell:
- PowerShell bietet eine gut integrierte Kommandozeilen-Erfahrung für das Betriebssystem.
- PowerShell erlaubt vollständigen Zugriff auf alle Typen im .NET Framework.
- Vertraut von Systemadministratoren.
- PowerShell ist ein einfacher Weg, Server- und Workstation-Komponenten zu manipulieren.
- Es ist auf Systemadministratoren ausgerichtet, indem es eine einfachere Syntax schafft.
- PowerShell ist sicherer als die Ausführung von VBScript oder anderen Skriptsprachen.
PowerShell Geschichte
PowerShell Version 1.0 wurde 2006 veröffentlicht. Heute ist PowerShell bei Version 7.2. Mit den Jahren und Versionen wuchsen PowerShells Fähigkeiten und Hosting-Umgebungen erheblich.
Versionsweise Geschichte von PowerShell:
- PowerShell 1.0 unterstützte lokale Administration von Windows Server 2003.
- PowerShell 2.0 war in Windows 7 und Windows Server 2008 R2 integriert. Unterstützt Remoting und erweitert Fähigkeiten wie Transaktionen, Background Jobs, Events, Debugging.
- PowerShell 3.0 wurde als interner Teil des Windows Management Frameworks veröffentlicht. Installiert auf Windows 8 und Windows Server 2012. Geplante Jobs, Session Connectivity, automatisches Modul-Laden.
- PowerShell 4.0 kam mit Windows 8.1 und Windows Server 2012 R2. Desired State Configuration, erweitertes Debugging, Netzwerk-Diagnostik.
- PowerShell 5.0 als Teil von Windows Management Framework 5. Remote Debugging, Klassendefinitionen, .NET Enumerationen.
- PowerShell 7.2 veröffentlicht. Basiert auf .NET 6.0. Neue Operatoren, vereinfachte und dynamische Fehleransicht, automatische Versionsbenachrichtigungen.
PowerShell Features
- PowerShell Remoting: Erlaubt Aufruf von Skripten und Cmdlets auf Remote-Maschinen.
- Background Jobs: Führt Skripte oder Pipelines asynchron aus. Jobs können lokal oder auf mehreren Remote-Maschinen laufen.
- Transactions: Ermöglichen Cmdlets und Entwicklern, Transaktionen durchzuführen.
- Events: Dieser Befehl hilft beim Lauschen, Weiterleiten und Reagieren auf Management- und Systemereignisse.
- Network File Transfer: PowerShell bietet native Unterstützung für priorisierten, asynchronen, gedrosselten Dateitransfer zwischen Maschinen mittels BITS (Background Intelligent Transfer Service).
PowerShell starten
In diesem PowerShell-Skript-Tutorial lernen wir, wie man PowerShell unter Windows OS startet.
PowerShell ist in allen aktuellen Windows-Versionen vorinstalliert. Um PowerShell zu starten, folgen Sie diesen Schritten:
Schritt 1) Nach PowerShell in Windows suchen. Auswählen und klicken.
Schritt 2) PowerShell-Fenster öffnet sich.
PowerShell Cmdlet
Ein Cmdlet (Command-let) ist ein leichtgewichtiger Befehl in der Windows-basierten PowerShell-Umgebung. PowerShell ruft diese Cmdlets in der Kommandozeile auf. Sie können Cmdlets über PowerShell APIs erstellen und aufrufen.
Cmdlet vs. Command
Cmdlets unterscheiden sich von Befehlen in anderen Kommandozeilen-Umgebungen in folgenden Punkten:
- Cmdlets sind .NET Framework Klassenobjekte – sie können nicht separat ausgeführt werden.
- Cmdlets können aus nur wenigen Dutzend Zeilen Code erstellt werden.
- Parsing, Ausgabeformatierung und Fehlerpräsentation werden nicht von Cmdlets gehandhabt.
- Cmdlets arbeiten auf Objekten. Textstreams und Objekte können nicht als Ausgabe für Pipelining übergeben werden.
- Cmdlets sind datensatzbasiert und verarbeiten ein einzelnes Objekt zur Zeit.
Der Großteil der PowerShell-Funktionalität kommt von Cmdlets, die immer im Verb-Noun-Format vorliegen und nicht plural sind. Zudem geben Cmdlets Objekte zurück, nicht Text. Ein Cmdlet ist eine Reihe von Befehlen, mehrzeilig, gespeichert in einer Textdatei mit .ps1-Endung.
Ein Cmdlet besteht immer aus einem Verb und einem Nomen, getrennt durch Bindestrich. Wichtige Verben für PowerShell:
- Get – Etwas abrufen
- Start – Etwas starten
- Out – Etwas ausgeben
- Stop – Etwas stoppen, das läuft
- Set – Etwas definieren
- New – Etwas erstellen
Wichtige PowerShell-Befehle
Get-Help: Hilfe zu PowerShell-Befehlen und Themen
Beispiel: Hilfe zu Format-Table anzeigen
Get-Help Format-Table
Get-Command: Informationen über alles Abrufbare
Beispiel: Liste aller Cmdlets und Funktionen auf Ihrem System
Get-Command
Get-Service: Findet alle Cmdlets mit dem Wort „service“
Beispiel: Alle Dienste, die mit „vm“ beginnen
Get-Service "vm*"
Get-Member: Zeigt, was mit einem Objekt gemacht werden kann
Beispiel: Member der vm-Prozesse
Get-Service "vm*" | Get-Member
Weitere Befehle:
- Get-Module – Zeigt Pakete von Befehlen
- Get-Content – Nimmt Datei und verarbeitet Inhalt
- Get- – Findet alle Cmdlets beginnend mit „get-“
Beispiel: Ordner erstellen
New-Item -Path 'X:\Guru99' -ItemType Directory
Ausgabe:
PowerShell Datentypen
Spezielle Variablen
| Spezielle Variable | Beschreibung |
|---|---|
| $Error | Array von Fehlerobjekten, zeigt neueste Fehler |
| $Host | Name der aktuellen Host-Anwendung |
| $Profile | Gesamter Pfad des Benutzerprofils für die Standard-Shell |
| $PID | Prozess-Identifikator |
| $PSUICulture | Name der aktuellen UI-Kultur |
| $NULL | Enthält leeren oder NULL-Wert |
| $False | Enthält FALSE-Wert |
| $True | Enthält TRUE-Wert |
PowerShell Skripte
PowerShell-Skripte werden in .ps1-Dateien gespeichert. Standardmäßig können Sie ein Skript nicht durch Doppelklick ausführen. Dies schützt Ihr System vor versehentlichem Schaden. Um ein Skript auszuführen:
Schritt 1: Rechtsklick und „Run with PowerShell“ klicken.
Zudem gibt es eine Policy, die Skriptausführung einschränkt. Sie sehen diese Policy mit Get-ExecutionPolicy.
Mögliche Ausgaben:
- Restricted – Keine Skripte erlaubt. Standard-Einstellung.
- AllSigned – Nur von vertrauenswürdigen Entwicklern signierte Skripte. Fragt vor Ausführung zur Bestätigung.
- RemoteSigned – Eigene Skripte oder von vertrauenswürdigen Entwicklern signierte.
- Unrestricted – Beliebige Skripte ausführbar.
Schritte zur Änderung der Execution Policy:
Schritt 1) Erhöhten PowerShell-Prompt öffnen. Rechtsklick auf PowerShell → „Als Administrator ausführen“
Schritt 2) Folgende Befehle eingeben:
- Get-ExecutionPolicy
- Set-ExecutionPolicy Unrestricted
- Y bei Aufforderung eingeben
- Get-ExecutionPolicy
Erstes PowerShell-Skript
In Notepad folgenden Befehl schreiben:
Write-Host "Hello, Guru99!"
PowerShell-Skripte haben die Endung .ps1. Als FirstScript.ps1 speichern.
In PowerShell Skript aufrufen mit:
& "X:\FirstScript.ps1"
Was ist PowerShell ISE?
Die Windows PowerShell Integrated Scripting Environment (ISE) ist der Standard-Editor für Windows PowerShell. In der ISE können Sie Befehle ausführen, Skripte schreiben, testen und debuggen in einer fensterbasierten GUI-Umgebung. Sie unterstützt mehrzeiliges Editieren, Syntax-Highlighting, Tab-Vervollständigung, selektive Ausführung und vieles mehr.
PowerShell ISE erlaubt auch das Ausführen von Befehlen in einem Konsolenbereich. Zudem unterstützt sie Bereiche (Panes), um gleichzeitig Quellcode Ihres Skripts und andere Tools anzuzeigen, die in die ISE eingebunden werden können.
Sie können sogar mehrere Skriptfenster gleichzeitig öffnen. Besonders nützlich beim Debuggen von Skripten, die Funktionen in anderen Skripten oder Modulen nutzen.
Dasselbe Skript, das wir in Notepad erstellt haben, kann in der ISE erstellt werden:
- Code in Editor einfügen
- Skript speichern
- F5 drücken zum Ausführen
- Ausgabe in Konsole beobachten
Beispiel 2: Freien virtuellen Speicher anzeigen
Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost | Select-Object -Property CSName,FreeVirtualMemory
PowerShell Konzepte
Wichtige PowerShell-Konzepte:
Cmdlets – In .NET-Sprachen wie VB oder C# geschriebene Build-Befehle. Erlauben Entwicklern, Cmdlet-Sets durch Laden und Schreiben von PowerShell Snap-ins zu erweitern.
Funktionen – In PowerShell-Sprache geschriebene Befehle. Entwickelbar ohne andere IDEs wie Visual Studio.
Skripte – Textdateien auf Datenträger mit .ps1-Endung.
Anwendungen – Existierende Windows-Programme.
WhatIf – Sagt dem Cmdlet, nicht auszuführen, sondern anzuzeigen, was passieren würde.
Confirm – Fordert Cmdlet auf, vor Ausführung zu bestätigen.
Verbose – Gibt höheren Detailgrad.
Debug – Weist Cmdlet an, Debug-Informationen bereitzustellen.
ErrorAction – Weist Cmdlet an, bei Fehler spezifische Aktion auszuführen: continue, stop, silently-continue, inquire.
ErrorVariable – Variable, die Fehlerinformationen hält.
OutVariable – Variable für Ausgabe-Informationen.
OutBuffer – Hält angegebene Anzahl Objekte, bevor nächstes Cmdlet in Pipeline aufgerufen wird.
Vorteile von PowerShell-Skripten
- PowerShell-Skripte sind wirklich mächtig und erledigen viel in wenigen Zeilen.
- Variablen werden als
$<variable>deklariert. - Variablen können Ausgabe von Befehlen, Objekte und Werte halten.
- „Typ“ einer Variable muss nicht spezifiziert werden.
PowerShell vs. Command Prompt
| PowerShell | Command Prompt |
|---|---|
| Integriert tief in Windows OS. Bietet interaktive CLI und Skriptsprache. | Standard-CLI von Microsoft. Einfache Win32-Anwendung, die mit Win32-Objekten interagieren kann. |
| Nutzt Cmdlets. Aufruf in Runtime oder Automatisierungs-Skripten. | Keine solchen Features. |
| Behandelt Ausgabe als Objekte. Kann als Input an andere Cmdlets via Pipeline übergeben werden. | Ausgabe ist nur Textstrom, keine Objekt-Sammlung. |
| Sehr fortgeschritten bzgl. Features, Fähigkeiten, Inneres. | Sehr grundlegend. |
Anwendungen von PowerShell
Heute ist PowerShell die ideale Wahl für IT-Administratoren, da sie Verwaltungsoperationen und Aufwand in großen Firmennetzwerken erleichtert. Beispiel: Sie verwalten ein großes Netzwerk mit über 400 Servern. Sie wollen eine neue Sicherheitslösung implementieren, die von einem bestimmten Dienst abhängt, der auf diesen Servern laufen muss.
Sie könnten sich auf jedem Server einloggen und prüfen, ob der Dienst installiert und läuft. Das dauert jedoch lange und ist fehleranfällig.
Mit PowerShell erledigen Sie diese Aufgabe in wenigen Minuten. Ein einziges Skript sammelt Informationen über laufende Dienste auf allen Servern.
Zusammenfassung
- Windows PowerShell ist objektorientierte Automatisierungs-Engine und Skriptsprache.
- PowerShell bietet gut integrierte Kommandozeilen-Erfahrung für das OS.
- PowerShell 1.0 erschien 2006.
- PowerShell erlaubt Skript- und Cmdlet-Aufruf auf Remote-Maschinen.
- PowerShell ist in allen aktuellen Windows-Versionen vorinstalliert.
- Ein Cmdlet ist ein leichtgewichtiger Befehl in der Windows PowerShell-Umgebung.
- Get, Start, Out, Stop, Set, New sind wichtige PowerShell-Verben.
- Boolean, Byte, Char, Decimal, Long sind wichtige PowerShell-Datentypen.
- $Error, $Host, $Profile, $PID, $PSUICulture, $NULL sind spezielle Variablen.
- Windows PowerShell ISE ist der Standard-Editor für PowerShell.
- PowerShell integriert tief in Windows OS, Command Prompt ist Standard-CLI von Microsoft.
- PowerShell ist ideale Wahl für IT-Admins, erleichtert Management in großen Netzwerken.
C Sprache
- Windows 10 IoT Core auf Raspberry Pi 3 Model B+ installieren – Schritt-für-Schritt
- Raspberry Pi Hindernis-vermeidenden Roboter bauen – Einsteiger-Anleitung
- CNC-Fräser für Einsteiger: Den Markt mit müheloser Präzision erobern
- Visual Studio 2019 Community Edition für C#-Entwicklung unter Windows installieren
- C# Kontrollfluss: IF, SWITCH, FOR, WHILE – Praktische Beispiele & Erklärungen
- Top 10 C# IDEs für Windows, macOS und Linux – 2021 Review
- Die besten C-IDEs für Windows, macOS und Linux (2024)
- C-Programmierung meistern: Umfassendes PDF-Tutorial für Einsteiger
- CNC-Fräsen meistern: 4 unverzichtbare Tipps für Einsteiger
- Metallfertigung 101: Ein klarer Leitfaden für Einsteiger