PowerShell Befehle PDFs und Handbücher sind sehr hilfreich beim Schreiben von Skripten. Sie helfen Ihnen, Befehle schnell zu finden. Dies ermöglicht präzises Arbeiten. Zudem sorgen Execution Policies für die Sicherheit Ihrer Skripte.
Wichtige Erkenntnisse
- PowerShell bietet seit der Version 1.0 bis zur aktuellen Version 7.2 eine kontinuierliche Verbesserung für Ihr Skripting.
- Einbettung von PowerShell in Betriebssysteme wie Windows 7 und Windows Server 2008 R2 seit PowerShell 2.0.
- Die Verfügbarkeit von PowerShell auf verschiedenen Windows-Plattformen steigert die Flexibilität und Kompatibilität.
- PowerShell 7.2 nutzt neue Features wie neue Operatoren und eine verbesserte Fehleransicht, basierend auf .NET 6.0.
- Acht Typen von Execution Policies bieten Ihnen die Kontrolle über die Sicherheit Ihrer Skripte.
- Wählen Sie aus fünf Bereichen für Ihre Execution Policies, um Ihren Anforderungen entsprechend die Sicherheit zu konfigurieren.
- Entwicklungs- und Produktionsumgebungen erfordern unterschiedliche Herangehensweisen bei der Wahl der Execution Policies – von AllSigned bis Unrestricted.
Einleitung zu PowerShell und seine Bedeutung für die Systemadministration
PowerShell ist ein starkes Tool und ein wichtiger Teil der Verwaltung von Windows-Systemen. Es wurde 2006 eingeführt. PowerShell Script nutzt PowerShell Cmdlets, um komplexe Aufgaben zu automatisieren.
PowerShell Scripts speichert man in .ps1 Textdateien. Sie werden über die PowerShell-Konsole ausgeführt, indem man den Dateipfad angibt. Viele Systeme schränken die Ausführung von Skripten aus Sicherheitsgründen ein. Daher ist es wichtig, die Windows PowerShell Befehle und ihre Ausführungsregeln zu kennen.
- Visual Studio Code, ein kostenfreier Editor von Microsoft, unterstützt mit einer offiziellen Erweiterung PowerShell-Scripting.
- Die PowerShell Integrated Scripting Environment (ISE) diente der Erstellung und dem Test von Scripts, bevor Visual Studio Code sie ersetzte.
- PowerShell-Ausführungsrichtlinien sorgen für Sicherheit. Es gibt vier Typen: Restricted, AllSigned, RemoteSigned und Unrestricted. Sie bestimmen den Vertrauensgrad von Skripten vor ihrer Ausführung.
Durch das Festlegen von Ausführungsrichtlinien sichern Administratoren die Balance zwischen Sicherheit und Funktionalität. Mit Get-ExecutionPolicy
und Set-ExecutionPolicy
prüft und ändert man diese Richtlinien. PowerShell ist so ein zentrales Tool zur Optimierung und Automation im Systemmanagement.
Die Grundlagen der PowerShell Skript-Erstellung
Zum Einstieg in die Automatisierung und Systemverwaltung mit PowerShell sind die Grundlagen wichtig. Es ist wichtig, die PowerShell Konsole und Tools wie PowerShell ISE und Visual Studio Code (VS Code) zu kennen. Sie helfen Ihnen, effizient Skripte zu machen.
Installation und Konfiguration von PowerShell-Umgebungen
Vor dem Schreiben eigener Skripte benötigen Sie eine passende PowerShell-Umgebung. In den meisten Windows-Versionen ist PowerShell schon installiert. Direkt können Sie die PowerShell Konsole oder die PowerShell ISE nutzen. Sie können Ihre Umgebung anpassen, indem Sie zusätzliche Module installieren oder mit Set-ExecutionPolicy
die Ausführungsrichtlinien ändern.
Erste Schritte mit der PowerShell-Konsole
Die PowerShell Konsole ist zentral für das Ausführen von Befehlen. Mit Get-Command
sehen Sie alle Befehle. Dies hilft, PowerShell’s Funktionen zu verstehen. Variablen, Schleifen und Bedingungen lernen Sie hier schnell.
Erstellung von Skripten mit der PowerShell ISE und VS Code
Die PowerShell ISE unterstützt beim Erstellen und Testen von Skripten. Sie bietet automatische Codevervollständigung und ein integriertes Debugging. Seitdem VS Code mit der PowerShell-Erweiterung existiert, gibt es noch bessere Möglichkeiten. VS Code hat viele Funktionen, wie Syntaxhervorhebung und ein integriertes Terminal. Es vereinfacht die Arbeit durch einfache Installation und Konfiguration der PowerShell-Erweiterung.
Eigenschaft | PowerShell ISE | VS Code mit PowerShell-Erweiterung |
---|---|---|
Benutzeroberfläche | Standardisierte IDE | Modern, anpassbar |
Codevervollständigung | Ja, grundlegend | Erweitert durch IntelliSense |
Debugging | Integriert | Erweiterte Debugging-Optionen |
Unterstützung neuer Updates | Eingeschränkt | Regelmäßige Updates und Community Support |
Essentielle PowerShell Befehle und ihre Praktische Anwendung
PowerShell Befehle sind in der Systemadministration sehr wichtig. Sie helfen, Aufgaben schnell und automatisch zu erledigen. Die PowerShell Cmdlet Liste bietet viele Befehle, die die tägliche Arbeit leichter machen. Zum Beispiel beim Verwalten von Diensten oder Bearbeiten von Dateien. Jeder Systemadministrator sollte die Grundbefehle von PowerShell kennen.
Lasst uns einige wichtige Cmdlets anschauen, die fast überall nützlich sind:
- Get-Command: Findet alle in Ihrer PowerShell-Sitzung verfügbaren Cmdlets, Funktionen, Workflows und Aliase.
- Get-Help: Bietet Infos zu Cmdlets. Das ist hilfreich, um neue Befehle zu lernen.
- Get-Service: Zeigt alle Dienste eines Systems an. Man kann damit auch Dienste starten oder stoppen.
- Get-Content: Liest den Inhalt von Dateien und zeigt ihn an. Gut geeignet, um Log-Files oder Konfigurationsdateien zu prüfen.
- New-Item: Ermöglicht das Erstellen neuer Elemente, wie Dateien, Verzeichnisse und Registry-Schlüssel.
Diese Beispiele zeigen, wie die PowerShell Cmdlet Liste eure Arbeit erleichtern kann. Man kann Cmdlets auch in Skripten nutzen, um komplexe Aufgaben automatisch zu erledigen.
Cmdlet | Beschreibung | Typische Anwendung |
---|---|---|
Get-Command | Ermittelt verfügbare Befehle | Verwendung in Skript-Debugging und Cmdlet-Discovery-Prozessen |
Get-Help | Zeigt Hilfeinformationen an | Erste Schritte und Lernen von neuen Cmdlets |
Get-Service | Listet Systemdienste auf | Überwachung und Verwaltung von Windows-Diensten |
Get-Content | Liest Dateiinhalte | Schnelles Prüfen von Log-Daten und Konfigurationsdateien |
New-Item | Erstellt neue Objekte | Skriptgesteuerte Datei- und Verzeichniserstellung |
Mit diesen Grundbefehlen werdet ihr eure täglichen Aufgaben besser bewältigen. Sie bilden auch die Basis für komplexere Automatisierungen. PowerShell ist wegen seiner Flexibilität und Stärke wichtig für jede IT-Umgebung.
Automatisierungsstrategien mit PowerShell-Befehlen
Powershell Automatisierung ist sehr wichtig für IT-Umgebungen. Sie hilft, Routineaufgaben automatisch zu erledigen. So werden komplexe Aufgaben leichter. Besonders bei Hintergrundjobs, Terminplanung und Netzwerkmanagement ist PowerShell sehr stark.
Erstellen von Hintergrundjobs und nutzen der Scheduling-Funktionen
PowerShell Hintergrundjobs lassen Skripte nebenbei laufen. So können Sie weiterarbeiten, während das Skript läuft. Das ist gut für lange Prozesse. Mit PowerShell Scheduling laufen Aufgaben auch nach Feierabend. Die Befehle Start-Job und Schedule-Job sind hier wichtig.
Verwaltung von Netzwerkressourcen und Einsatz von Remoting-Funktionen
PowerShell macht die Netzwerkverwaltung einfacher. Administratoren können damit Befehle auf anderen Computern ausführen. Das ist sehr nützlich in großen Netzwerken. Mit Befehlen wie Invoke-Command oder Enter-PSSession können Sie Updates oder Diagnosen auf vielen Servern gleichzeitig machen.
Cmdlet | Beschreibung | Nützlich für |
---|---|---|
Get-Command | Listet alle Cmdlets und Funktionen auf, die auf einem System verfügbar sind. | Überblick und Zugriff |
Start-Job | Startet einen PowerShell Hintergrundjob. | Asynchrone Aufgaben |
Invoke-Command | Führt Befehle auf Remote-Computern aus. | Remote-Verwaltung |
Get-Help | Bietet detaillierte Hilfe und Anleitungen zu Cmdlets. | Unterstützung und Lernen |
Schedule-Job | Schafft geplante Aufgaben für zukünftige Ausführung. | Planung von Automation |
PowerShell ist sehr mächtig für Automatisierung und Management. Die vorgestellten Befehle helfen, Ihre Arbeit zu verbessern. Sie sorgen dafür, dass Ihr Netzwerk gut läuft.
Sicherheit und Execution Policies in PowerShell
Die PowerShell Sicherheit ist für die Sicherheit auf Windows wichtig. PowerShell Ausführungsrichtlinien helfen, Skripte sicher auszuführen. Es gibt verschiedene Sicherheitsstufen, die an jede IT-Umgebung angepasst werden können.
Die Standardrichtlinie auf Windows-Servern ist RemoteSigned. Sie erlaubt lokal erstellte Skripte ohne digitale Signatur. Externe Skripte müssen jedoch signiert sein. Für andere Plattformen gilt Unrestricted. Das bedeutet, alle Skripte sind erlaubt.
Um die Richtlinien zu ändern, nutzt man Set-ExecutionPolicy. Diese Richtlinien sollen nicht Nutzer einschränken. Sie verhindern unbeabsichtigte Skriptausführungen und bieten Sicherheit.
Policy Typ | Definition | Standard auf Windows Server | Standard auf Nicht-Windows |
---|---|---|---|
Restricted | Keine Skripte zugelassen | Nein | Nein |
RemoteSigned | Ausführung lokal erstellter Skripte | Ja | Nein |
AllSigned | Nur signierte Skripte zugelassen | Nein | Nein |
Unrestricted | Alle Skripte zugelassen | Nein | Ja |
PowerShell Ausführungsrichtlinien beeinflussen verschiedene Bereiche. Darunter sind MachinePolicy, UserPolicy, Process, CurrentUser und LocalMachine. Sie erlauben eine genaue Kontrolle der Skriptausführung, passend zu den Sicherheitsbedürfnissen.
Die richtige Anwendung von PowerShell Ausführungsrichtlinien fördert die Sicherheit. Es macht die Netzwerk- und Systemverwaltung zuverlässiger, besonders in komplexen oder sicherheitskritischen Umgebungen.
PowerShell-Befehle – Die wichtigsten Cmdlets & ihre Anwendung
PowerShell ist eine leistungsstarke Skriptsprache und bietet zahlreiche Befehle (Cmdlets) für Systemadministration, Netzwerkanalyse und Automatisierung. Hier sind die wichtigsten **50+ PowerShell-Befehle**, die dir helfen, dein System effizient zu verwalten.
🛠 Grundlagen – Erste Schritte mit PowerShell
Diese Befehle helfen dir, einen Überblick über verfügbare Cmdlets und Module zu erhalten:
-
- Get-Command – Zeigt eine Liste aller verfügbaren Cmdlets an.
Get-Command
-
- Get-Help – Zeigt detaillierte Informationen zu einem Cmdlet an.
Get-Help Get-Process
-
- Get-Module – Listet alle geladenen Module auf.
Get-Module -All
🔍 Systeminformationen abrufen
-
- Get-Process – Listet alle laufenden Prozesse auf.
Get-Process
-
- Get-Service – Zeigt alle aktiven Dienste an.
Get-Service
-
- Get-ComputerInfo – Ruft detaillierte Systeminformationen ab.
Get-ComputerInfo
📂 Dateien & Verzeichnisse verwalten
-
- Get-ChildItem – Listet alle Dateien in einem Verzeichnis auf.
Get-ChildItem C:\Users
-
- New-Item – Erstellt eine neue Datei oder einen neuen Ordner.
New-Item -Path C:\Test -ItemType Directory
-
- Remove-Item – Löscht eine Datei oder einen Ordner.
Remove-Item C:\Test
⚙️ Prozesse & Dienste steuern
-
- Start-Process – Startet ein Programm.
Start-Process notepad.exe
-
- Stop-Process – Beendet einen laufenden Prozess.
Stop-Process -Name notepad
-
- Restart-Service – Startet einen Dienst neu.
Restart-Service Spooler
🌍 Netzwerk & Internet
-
- Test-Connection – Sendet eine Ping-Anfrage an einen Server.
Test-Connection google.com
-
- Get-NetIPAddress – Zeigt IP-Adressinformationen an.
Get-NetIPAddress
-
- Get-NetAdapter – Listet alle Netzwerkadapter auf.
Get-NetAdapter
🛡 Sicherheit & Benutzerkonten
-
- Get-LocalUser – Zeigt alle lokalen Benutzerkonten an.
Get-LocalUser
-
- Get-LocalGroup – Listet alle lokalen Gruppen auf.
Get-LocalGroup
-
- New-LocalUser – Erstellt ein neues Benutzerkonto.
New-LocalUser -Name "TestUser" -Password (ConvertTo-SecureString "Passwort123" -AsPlainText -Force) -FullName "Test User"
📜 Historie & Automatisierung
-
- Get-History – Zeigt eine Liste der letzten PowerShell-Befehle.
Get-History
-
- Clear-History – Löscht die Befehls-Historie.
Clear-History
-
- Start-Sleep – Setzt ein Skript für eine bestimmte Zeitspanne aus.
Start-Sleep -Seconds 5
💾 Speicherverwaltung & Festplatten
-
- Get-PSDrive – Zeigt alle verfügbaren Laufwerke an.
Get-PSDrive
-
- Get-Volume – Listet Informationen über Festplatten-Volumes auf.
Get-Volume
-
- Clear-Disk – Löscht alle Partitionen auf einer Festplatte.
Clear-Disk -Number 1 -RemoveData -Confirm:$false
-
- Format-Volume – Formatiert eine Festplatte mit einem bestimmten Dateisystem.
Format-Volume -DriveLetter D -FileSystem NTFS -NewFileSystemLabel "Backup"
📊 Ereignisprotokolle & Monitoring
-
- Get-EventLog – Zeigt Ereignisprotokolle älterer Systeme an.
Get-EventLog -LogName System -Newest 10
-
- Get-WinEvent – Ruft moderne Ereignisprotokolle ab.
Get-WinEvent -LogName Application
-
- Write-EventLog – Schreibt eine Nachricht in das Ereignisprotokoll.
Write-EventLog -LogName Application -Source "MyApp" -EntryType Information -EventId 1 -Message "Test-Event"
-
- New-EventLog – Erstellt ein neues benutzerdefiniertes Ereignisprotokoll.
New-EventLog -LogName "CustomLog" -Source "MyScript"
🛠 Systemkonfiguration & Registry
-
- Get-WMIObject – Ruft detaillierte Hardware- und Systeminformationen ab.
Get-WMIObject Win32_OperatingSystem
-
- Set-TimeZone – Ändert die Zeitzone des Systems.
Set-TimeZone -Id "Pacific Standard Time"
-
- Get-ItemProperty – Zeigt Registry-Einträge an.
Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion"
-
- Set-ItemProperty – Ändert Werte in der Windows-Registry.
Set-ItemProperty -Path "HKLM:\Software\MyApp" -Name "Version" -Value "2.0"
🔑 Benutzerverwaltung & Sicherheit
-
- Enable-LocalUser – Aktiviert ein deaktiviertes Benutzerkonto.
Enable-LocalUser -Name "TestUser"
-
- Disable-LocalUser – Deaktiviert ein Benutzerkonto.
Disable-LocalUser -Name "Guest"
-
- Remove-LocalUser – Löscht ein Benutzerkonto.
Remove-LocalUser -Name "TestUser"
-
- Set-LocalUser – Ändert ein Benutzerkennwort.
Set-LocalUser -Name "TestUser" -Password (ConvertTo-SecureString "NewPass123" -AsPlainText -Force)
🤖 Automatisierung & Skripting
-
- Invoke-Expression – Führt einen Befehl als Zeichenkette aus.
Invoke-Expression "Get-Date"
-
- Start-Job – Führt einen Befehl im Hintergrund aus.
Start-Job -ScriptBlock { Get-Process }
-
- Wait-Job – Wartet auf die Beendigung eines Hintergrundjobs.
Wait-Job -Id 1
-
- Receive-Job – Holt das Ergebnis eines Hintergrundjobs.
Receive-Job -Id 1
-
- New-ScheduledTask – Erstellt eine geplante Aufgabe.
New-ScheduledTask -Action (New-ScheduledTaskAction -Execute "notepad.exe") -Trigger (New-ScheduledTaskTrigger -Daily -At 9am) -Principal (New-ScheduledTaskPrincipal -UserId "Administrator" -LogonType ServiceAccount) -Settings (New-ScheduledTaskSettingsSet)
📡 Remote-Management
-
- Enter-PSSession – Startet eine Remote-PowerShell-Sitzung.
Enter-PSSession -ComputerName Server01
-
- Exit-PSSession – Beendet eine Remote-Sitzung.
Exit-PSSession
-
- Invoke-Command – Führt einen Befehl auf einem Remote-Computer aus.
Invoke-Command -ComputerName Server01 -ScriptBlock { Get-Service }
-
- Restart-Computer – Startet einen entfernten Computer neu.
Restart-Computer -ComputerName Server01 -Force
-
- Stop-Computer – Fährt einen entfernten Computer herunter.
Stop-Computer -ComputerName Server01 -Force
🚀 Performance-Optimierung
-
- Get-Process -IncludeUserName – Zeigt die laufenden Prozesse mit Benutzerinformationen an.
Get-Process | Select-Object ProcessName, Id, UserName
-
- Measure-Object – Misst Werte von numerischen Daten.
Get-Process | Measure-Object -Property CPU -Sum
-
- Optimize-Volume – Optimiert Festplatten für bessere Leistung.
Optimize-Volume -DriveLetter C -ReTrim -Verbose
-
- Get-Counter – Ruft Leistungsindikatoren für das System ab.
Get-Counter -ListSet Processor
🔄 Windows-Updates & Systemwartung
-
- Get-WindowsUpdate – Zeigt verfügbare Windows-Updates an (Zusatzmodul notwendig).
Get-WindowsUpdate -MicrosoftUpdate
-
- Install-WindowsUpdate – Installiert verfügbare Windows-Updates.
Install-WindowsUpdate -AcceptAll -AutoReboot
-
- Repair-WindowsImage – Repariert beschädigte Windows-Systemdateien.
Repair-WindowsImage -Online -RestoreHealth
-
- Get-EventLog -LogName Security – Überprüft sicherheitsrelevante Ereignisse.
Get-EventLog -LogName Security -Newest 50
📜 Log-Dateien & Fehlerdiagnose
-
- Get-WinEvent -LogName System – Zeigt Systemprotokolle an.
Get-WinEvent -LogName System | Format-Table -AutoSize
-
- Export-EventLog – Exportiert Ereignisprotokolle.
wevtutil qe System /c:100 /rd:true /f:text > C:\Logs\SystemLog.txt
-
- Start-Transcript – Erstellt eine ausführliche Protokolldatei für alle PowerShell-Befehle.
Start-Transcript -Path C:\Logs\PowerShellLog.txt
-
- Stop-Transcript – Beendet die Protokollierung.
Stop-Transcript
🔧 Festplatten- und Dateiverwaltung
-
- Check-FileIntegrity – Prüft die Integrität von Dateien.
Get-FileHash -Path "C:\Users\Name\Documents\Testfile.txt" -Algorithm SHA256
-
- Compress-Archive – Erstellt ein ZIP-Archiv.
Compress-Archive -Path C:\Daten\* -DestinationPath C:\Backup\Daten.zip
-
- Expand-Archive – Entpackt eine ZIP-Datei.
Expand-Archive -Path C:\Backup\Daten.zip -DestinationPath C:\Daten
-
- Get-Disk – Listet alle Datenträger und deren Status auf.
Get-Disk
📡 Erweiterte Netzwerkbefehle
-
- Get-NetTCPConnection – Zeigt alle aktiven Netzwerkverbindungen an.
Get-NetTCPConnection | Sort-Object LocalPort
-
- Test-NetConnection – Testet eine Verbindung zu einem Server.
Test-NetConnection google.com -Port 443
-
- Reset-NetAdapter – Setzt einen Netzwerkadapter zurück.
Restart-NetAdapter -Name "Wi-Fi"
-
- New-NetIPAddress – Erstellt eine neue IP-Konfiguration.
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.1.100 -PrefixLength 24 -DefaultGateway 192.168.1.1