Diese Webseite nutzt nur technisch notwendige Cookies.

PowerShell Tutorial – Einführung mit Grundlagen (2024)

PowerShell Befehle Einführung

Das ist das ultimative PowerShell Tutorial. Hier lernst Du alles zu Konsolen-Programmen und Befehlen von PowerShell, CMD und Bash.

In diesem Tutorial geht (fast) alles ohne ein Graphical User Interface.

Ich stelle heute Dir die PowerShell vor!

Begriffe klären: Konsole, Shell, CMD, PowerShell und mehr

  • Konsole ist eine Eingabe-Aufforderung oder Prompt (engl. abfragen, auffordern), die nach einer Texteingabe fragt und meistens eine Textausgabe anzeigt.
  • Windows CMD.exe nennt sich die Windows-Eingabeaufforderung von Windows NT (New Technology) Line und React-OS (Operating System).
  • Bash = Shell ist ein Unix Projekt unter GPL und eine Konsole für Linux und UNIX-Systeme ist. Diese hat Brian Fox entwickelt.
  • Windows PowerShell basiert auf Dot-Net seit 2009 und ist eine plattformübergreifende Konsole mit der MIT-Lizenz.

Eine BAT-Datei (engl. Batch – Stapel) ist eine Script mit fertigen Konsolen-Befehlen für Windows. Mit einem Klick auf die Datei führt der Computer die Befehle aus. Kontrollstrukturen wie Schliefen und Variablen sind möglich.

PowerShell erklärt

PowerShell ist ein plattformübergreifendes Framework zur Einstellung, Administration und Automatisierung von z. B. Microsoft Systemen. Zu der PowerShell gehört ein Kommandozeilen-Interpreter und eine Sprache zum Skripten von Kommandos.

PowerShell gehört zu den .NET Framework. .NET ist eine Sammlung von Entwicklerwerkzeugen und Klassen-Bibliotheken, die auf der Common Language Runtime basiert. Seit 2016 ist PowerShell plattformübergreifend (nicht nur auf Windows beschränkt) und Open Source.

Hinter CMD.exe steht der Kommandozeilen-Interpreter COMMAND.COM, der die Eingaben überprüft. Windows PowerShell arbeitet mit der PowerShell-Engine als Kommandozeilen-Interpreter

PowerShell Bedienung in 5 Schritten

Eine Konsole arbeitet nach dem gleichen Schema:

  1. Der Nutzer gibt ein Befehl ein
  2. Der Nutzer startet den Befehl mit ENTER
  3. Der Computer führt den Befehl aus (und gibt Text aus)
  4. Der Computer stellt ein neues Eingabefeld zur Verfügung.
  5. Gehe zu Schritt 1

PowerShell vs. Grafische Nutzeroberfläche

Wann verwende ich eine Kommandozeile? Wann die GUI? Was sind die Vor- und Nachteile der Eingabemöglichkeiten?

KommandozeileGrafische Nutzeroberfläche
Geringere System-Ressourcen zur DarstellungWeniger „gegoogle“ nach Kommandozeilen-Befehle und Fehlern (wenn diese gut ist)
Optionen mit help-Flag schnell auffindbarGrafische Verbesserungen wie Schriftarten, Drop-Down-Menus
Vereinfachte Automation und WiederholungenEingewöhnungszeit von GUIs ist im Vergleich zur Kommandozeile gering
Entwickeln von ProzedurenEinfache Bedienung (für nicht ITler) gedacht

Ein GUI verwenden, wenn …

  • Du eine Standard-Aufgabe erledigst.
  • eine erprobte GUI verfügbar ist.
  • Du die Befehle nicht kennst.
  • keine Kommandozeile verfügbar hast

Die Kommandozeile verwenden, wenn …

  • Du spezielle Aufgaben erledigen möchtest.
  • Du eine Debugging-Möglichkeit brauchst.
  • Du erhöhte Bearbeitungsgeschwindigkeit brauchst.
  • die GUI Sche*** ist.

Skripten mit PowerShell

Zur Automation brauchst Du ein Skript, welches Du auf der PowerShell ausführen kannst. Die PowerShell hat wie jede Programmiersprache ein paar Besonderheiten. Statt ein Kleiner-als-Zeichen verwendest Du -lt , um einen Vergleich darzustellen.

for($counter=0;$counter -lt 9;$counter++) {
Write-Host „Wiederhole die Schlefe $counter“
}

Anwendungsgebiet PowerShell

Die plattformübergreifende PowerShell ist ultra vielseitig einsetzbar. Konfiguriere mit der PowerShell z. B.:

  • Windows Server ab 2008
  • Active Directory (Verwaltung von mehreren Windows Computern)
  • Domain Name System (Auflösung von IP-Nummern in Domain-Adressen)
  • Hyper-V (Virtualisierungsumgebung von virtuellen Maschinen)
  • ISS Web Service (Microsoft Web Server)
  • Konfiguration von Netzwerk, Festplatten, Proxy usw.

Mehr zu den Möglichkeiten mit der PowerShell findest Du untern Linetworks.

Ultimative Produktivitäts-Tipps für die PowerShell

Damit Du schnell und effizient mit PowerShell arbeitest, lerne die folgenden Shortcuts auswendig. Mit Rechtsklick auf den PowerShell Menüleiste passe unter > Einstellungen > Optionen, einige Shortcuts nach Deinen Wünschen an.

ShortcutBedeutung / Wirkung
Strg + C (nicht kopieren)Stoppt den laufenden Vordergrund-Prozess (hart)
Strg + ZAnhalten des Vordergrund-Prozesses
Strg + LEin- und Ausgaben leeren
Pfeil nach oben / untenDurch alle vorherigen Eingaben blättern
TabDer Shortcuts vervollständigt ein Kommando, Dateiname, Pfad für Dich automatisch

Typen von Konsolen / Shell / CMD

  • Betriebssystem-Konsolen: cmd.exe, DEC Digital Command Language
  • Anwendung-Konsolen: Anwendungen auf Konsolen-Basis
    • Parameter: Informationen zur Ausführung des Programms, die den Ausführungsverlauf verändern
    • Prompts: Nach Ausführung fragt das Programm nach verschieden Parametern

Die 11 Befehle – PowerShell Tutorial

Wenn Du diese 11 Befehle für Bash und CMD aus diesem PowerShell Tutorial kennst, kannst Du 80 % von der tagtäglichen Operation innerhalb der Konsole / CMD / Bash / Shell.

Lese Dir die folgende Tabelle durch und scrolle zu dem betreffenden Abschnitt:

Ich möchte mit der PowerShell …

 PowerShell WindowsBash Linu
Hilfe zu einem Befehl anzeigen lassenhelp programmnameprogrammname –h [alternativ –help]
in anderes Verzeichnis / Ordner wechselncd Ordnername[/Ordnername/…]cd Ordnername[/Ordnername/…]
Dateien und Ordner anzeigen lassendir [/Ordnername/…]ls [/Ordnername/…]
Datei verschiebenmove altordner\dateiname.end neuordner\ dateiname.endmv altordner/dateiname.end neuordner/ dateiname.end
Datei löschendel Dateiname.endrm Dateiname.end
Ordner erstellenmkdir Ordnernamemkdir Ordnername
Datei bearbeiten / erstellennotepad [Dateiname alt/neu]vi [Dateiname alt/neu]
Installationsort eines Programms ausgeben lassenwhere programmNamewhere programmName
Datei downloadencurl [https://url] –output [file.endung]curl [https://url] –output [file.endung]
Programm ausführenprogrammNameprogrammName oder ./programmName
Administrator-Rechten Dateien / Ordner ausführenrunas /noprofile /user:Administrator cmdsudo [jeder Befehl außer cd]

Hilfe anzeigen lassen für das PowerShell Tutorial

Nehmen wir eine für das Tutorial an, Du hast ein tollenSDKKonsolenProgramm. Du kennst die Befehle nicht und eine Dokumentation findest Du im Internet nicht. Mit dem Help-Flag kannst Du Dir alle Befehle vom tollenSDKKonsolenProgramm ausgeben lassen, ohne nach irgendwelchen Beschreibungen zu suchen. Ein Befehl setzt sich aus dem Programmnamen, Parameter und Flags / Optionen zusammen. Die Ausgaben des Help-Flags sollten die Befehle des tollenSDKKonsolenProgramm erklären.

 PowerShell WindowsBash Linux
Befehlhelp–h oder -help
Syntaxhelp programmnameprogrammname –h [alternativ –help]
BeispielhelpJavac -help
TippsNur für Windows eigene ProgrammeFür jedes Linux Konsolen Programm
01 Help Cmd
Help Cmd

Die Programmierer folgen normalerweise diesen Konventionen. Wenn Du aber ein neues Programm nutzt, kannst Du kein help-Flag finden. Entweder gibt es keine help-Seite oder die Programmierer „haben einen richtigeren“ Weg gefunden und machen ihr eigenes Ding!

In anderes Verzeichnis / Ordner wechseln

Ein Pfad steht vor dem Eingabefeld in der die Konsole.

Die Konsole kann nur in dem angegebenen Ordner operieren (siehe Pfad). Falls Du ein Programm in einem anderen Ordner ausführen möchtest, dann musst Du das Verzeichnis (change directory) verändern.

 PowerShell WindowsBash Linux
Befehlcdcd
Syntaxcd Ordnername[/Ordnername/…]cd Ordnername[/Ordnername/…]
Beispielcd AMDcd AMD
TippsMit Tab kannst Du den Ordnernamen vervollständigenMit Tab kannst Du den Ordnernamen vervollständigen
03 change directory cmd
change directory cmd

Dateien und Ordner anzeigen lassen

Die Konsole sagt nicht mehr als den Pfad des Ordners, in dem Du Dich befindest. Der dir- / ls-Befehl gibt Dir alle Dateien, Programmen und Unterordner als Liste aus.

 PowerShell WindowsBash Linux
Befehldirls
Syntaxdir [/Ordnername/…]ls [/Ordnername/…]
Beispieldir userls user
TippsMit dir /AH kannst Du Dir versteckte Dateien anzeigen lassenMit ls –a kannst Du Dir versteckte Dateien anzeigen lassen
05 Dir cmd
Dir cmd . PowerShell Tutorial

Datei verschieben / umbenennen

So transferierst Du eine Datei von dem A-Ordner zum B-Ordner.

 PowerShell WindowsBash Linux
Befehlmovemv
Syntaxmove altordner\dateiname.end neuordner\ dateiname.endmv altordner/dateiname.end neuordner/ dateiname.end
Beispielmove c:\users\steff\text.txt C:\users\steff\Downloadsmv c:/users/steff/Downloads/text.txt c:/users/steff/text.txt
07 move cmd
move cmd

Datei löschen

 PowerShell WindowsBash Linux
Befehldelrm
Syntaxdel Dateiname.endrm Dateiname.end
Beispieldel text.txtrm text.txt
08 del cmd
del cmd

Ordner erstellen

In Windows kannst Du in der grafischen Oberfläche STRG+UMSCHALT+N nutzen, um schnell neue Ordner zu erstellen.

 PowerShell WindowsBash Linux
Befehlmkdirmkdir
Syntaxmkdir Ordnernamemkdir Ordnername
Beispielmkdir Gartenmkdir Garten
10 rm bash
rm bash

Datei bearbeiten / erstellen

Windows bietet „nur“ den grafischen Editor notepad. Linux hat eine Konsolen-intern Editor vi (ausgesprochen wie-ei) für visual editor bzw. vim (m = improved)

 PowerShell WindowsBash Linux
Befehlnotepadvi
Syntaxnotepad [Dateiname alt/neu]vi [Dateiname alt/neu]
Beispielnotepad text.txtvi text.txt
TippsÖffnet eine graphische Oberflächevi ist ein etwas altmodischer (aber schneller Editor), nutze nano für eine modernere Bedingung
13 notepad cmd
notepad cmd

Wenn Du vi nicht magst, ist nano ein Super-Alternative. Die Shortcuts sind „moderner“, dafür ist das Programm nicht auf jedem System verfügbar.

Installationsort eines Programms ausgeben lassen

Falls Du nicht weißt, in welchem Ordner die Java-, Andorid SDK-, VS Code-Installation sich befindet, hilft where.

 PowerShell WindowsBash Linux
Befehlwherewhich
Syntaxwhere programmNamewhich programmName
Beispielwhere javawhich java
TippsSuche nach .exe Dateien, die DU über die Konsole ausführen willst. Trage neue Ordner in die Umgebungsvariablen ein, um mehr .exe Programm mit der Konsole anzusprechenUm Variablen dauerhaft hinzuzufügen, führe sudo -H gedit /etc/environment aus und füge eine Zeile hinzu VALUE=WERT. Speichere. Loge Dich ein und wieder aus. Starte die Konsole neu.
14 where java cmd
where java cmd
15 where code java bash
where code java bash

Datei downloaden

Ohne Browser geht’s schneller.

 PowerShell WindowsBash Linux
Befehlcurlcurl
Syntaxcurl [https://url] –output [file.endung]curl [https://url] –output [file.endung]
Beispielcurl https://lippke.li –output lippke.htmlcurl https://lippke.li –output lippke.html
Tipps  
16 curl cmd
curl cmd
17 curl bash in file
curl bash in file

Programm ausführen

 PowerShell WindowsBash Linux
BefehlNichtsNichts oder ./
SyntaxprogrammNameprogrammName oder im Homeverzeichnis ./programmName
Beispieljavajava oder ./java
TippsNutze den help-Flag (siehe oben), um mehr über die Befehle des Programms zu erfahrenNutze den help-Flag (siehe oben), um mehr über die Befehle des Programms zu erfahren.

Du kannst nur ein Programm starten, wenn dieses im gleichen Verzeichnis sich befindet wie der Konsolenpfad. Alternativ hast Du den Ordner des Programms in einer Umgebungsvariablen gespeichert. Mit der gesetzten Umgebungsvariable kannst Du von jedem Ordner aus das Programm aufrufen.

Administrator-Rechten Dateien / Ordner ausführen

Diese Befehle brauchst Du, um in den Gott-Modus zu wecheln.

 PowerShell WindowsBash Linux
Befehlrunas /noprofile /user:Administrator cmdsudo oder
Syntaxrunas /noprofile /user:Administrator cmdsudo [jeder Befehl außer cd]
Beispielrunas /noprofile /user:Administrator cmdsudo apt-get install java
TippsDu kannst die CMD mit eine Rechtsklick im Admin-Modus starten.Mit sudo –s kannst Du in den SUPERUSER-Modus wechseln. Das kann gefahrlich sein. Im  SUPERUSER-Modus kannst Du das gesamte System mit Allem löschen.

PowerShell Programmierung

Schleifen foreach

PowerShell ist mehr als nur eine Kommandozeile. Du kannst Skripte mit Syntax, Schleifen, Funktionen und mehr in einem Script (.ps1) erstellen.

Iteriere durch eine Schliefe mit einer foreach.

$einArray = "steffen","coding","hacking","security"
foreach ($keyword in $einArray)
{
  Write-Host $keyword
}

Kommentare gehen so:

# Kommentar 1
# Noch mehr Text

Write-Host "Hallo"

<#
langer Text
#>

Konditionen mit PowerShell gehen so:

if($entscheidungsVariabele){
 # Verzweigung für Erfüllung
} else {
 # Verzweigung für NICHT-Erfüllung
}

-eq = equal = gleich
-gt = greater than = größer als
-lt = lower than = kleiner als
-contains = prüft ob der Wert links im Array rechts von dem Begriff ist

Definiere Variablen:

$name='horst';
$alter= 42

Wenn Du komplexere Programme programmieren willst, ist PowerShell Skript eine Option, aber klassische Programmiersprachen wie Java oder Python sind gute Alternativen.

10 Tipps für die Nutzung von PowerShell

  1. Get-Help verwenden: Nutze das Mini Programm (Cmdlets) Get-Help-, um Informationen zu Programmen und deren Verwendung zu erhalten. Zum Beispiel: Get-Help Get-Process.
  2. Pipelines effektiv nutzen: PowerShell ermöglicht den Einsatz von Pipelines (|) zur Weiterreichung von Daten zwischen Mini Programmen. Das erleichtert das Arbeiten mit verschiedenen Mini Programmen in Kombination. Wenn Du z. B. eine String in eine Datei schreiben willst nutzt Du: "Der Text, den du hinzufügen möchtest." | Out-File -FilePath "C:\Pfad\zur\Datei.txt" -Append
  3. Filtern mit Where-Object: Das Where-Object-Cmdlet ermöglicht es, Objekte basierend auf bestimmten Kriterien zu filtern. Zum Beispiel: Get-Process | Where-Object { $_.CPU -gt 50 }.
  4. Format- cmdlets verwenden: Die Format-Cmdlets wie Format-Table, Format-List und Format-Wide ermöglichen es, die Ausgabe für eine bessere Lesbarkeit anzupassen.
  5. Variablen sinnvoll benennen: Benenne Variablen so, dass ihr Zweck klar ist. Dies verbessert die Lesbarkeit des Codes.
  6. PowerShell-Profile nutzen: Verwende Dein PowerShell-Profil ($PROFILE) zum Konfigurieren von benutzerspezifischen Einstellungen und Funktionen, die bei jedem Start von PowerShell geladen werden.
  7. Benutzerdefinierte Funktionen erstellen: Erstelle benutzerdefinierte Funktionen, um wiederkehrende Aufgaben zu automatisieren und Deinen Code zu organisieren.
  8. Remoting für entfernte Server: PowerShell ermöglicht das Ausführen von Befehlen auf entfernten Servern. Nutze Enter-PSSession oder Invoke-Command, um Befehle auf entfernten Systemen auszuführen.
  9. Objektorientierte Ausgabe nutzen: PowerShell gibt oft Objekte aus. Nutze die Eigenschaften dieser Objekte, um spezifische Informationen zu extrahieren, anstatt auf den gesamten Text zuzugreifen.
  10. PowerShell-Module verwenden: Mache Dich mit PowerShell-Modulen vertraut. Sie enthalten wiederverwendbaren Code und Funktionen, die Deine Arbeitsabläufe erleichtern können. Du kannst Module mit Import-Module oder Install-Module hinzufügen.

Das war das zu viel auf einmal? Hier sind die bestehen Cheatsheets zum Download: Microsoft, Rambelling Cookie Monster, Amazon, Netzweise, SANS

Kommentare 5

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

get rss abo

Jetzt
Abbonnieren
academy

Erhalte Free
Security Kurs

Jeden Monat teile ich mit Mitgliedern
4 neue praxisnahe Tutorials (je 1000+ Wörter).


Trage Deine Mail, damit Du
Deine Coding + Hacking Skills erweitern kannst!