Einführung in Powershell
Was ist Powershell?
Geschichte und Versionen
Unterschied zwischen PowerShell und anderen Skriptsprachen
Grundlagen der PowerShell-Syntax
- Zusammenfassung: Grundlagen der Powershell-Syntax
Variablen und Datentypen
- Variablen
- Umgebungsvariablen | Umgebungsvariablen in Powershell und Python
- Array – HashTable – Object – List (Comparison)
- Arrays
- HashTables
Powershell Objekte
- Powershell Objekte
- PowerShell: Objekte, Objekteigenschaften und –Methoden, Objektverarbeitung
- Powershell Pipeline zB Get-Process | Where-Object { $_.name -eq “iexplore” } | Format-Table ProcessName, WorkingSet
- Filtern von Objekten: Where-Object
- Sortieren von Objekten: Sort-Object
- Custom Object – PSCUSTOMOBJECT
Operatoren
- Arithmetische Operatoren
- Vergleichsoperatoren
- Logische Operatoren
- Bitweise Operatoren
Kontrollstrukturen
- Bedingte Anweisungen (if, elseif, else)
- Schleifen (for, foreach, while, do-while)
Funktionen und Skriptblöcke
- Funktionen erstellen und aufrufen
- Parameter in Funktionen
- Rückgabewerte und Ausgabewerte
- Skriptblöcke und Closure
Fehlerbehandlung und Debugging
- Fehlerbehandlung mit try, catch und finally
- Fehleraktionen und $ErrorActionPreference
- Debugging-Techniken (Breakpoints, Write-Debug, Write-Verbose)
Module und Skripte
- Module erstellen und importieren
- Skripte erstellen und ausführen
- Skriptparameter und Argumente
- Skript und Rückgabeparameter
Ausführung
Scheduling of PowerShell Scripts
Sonstige interessante Themen
Umgang mit Uhrzeiten
Zeitspanne / Zeitdifferenz
Dateien / Ordner – Filesystem
Best Practices und Sicherheitsaspekte
- Code-Organisation und -Struktur
- Kommentare und Dokumentation
- Sicherheitsaspekte (Ausführungsrichtlinien, Signierung von Skripten)
Spezialgebiete
Gebiet | Standard | Modul (falls notwendig) | Integrierte Version | Details |
---|---|---|---|---|
Active Directory | Nein | ActiveDirectory | N/A | |
DHCP | Nein | DhcpServer | N/A | |
SQL Server | Nein | SqlServer | N/A | |
Hyper-V | Nein | Hyper-V | N/A | |
Exchange Server | Nein | Exchange | N/A | |
SharePoint | Nein | SharePoint | N/A | |
Office 365 | Nein | MSOnline | N/A | |
Azure | Nein | Az | N/A | |
IIS (Internet Information Services) | Nein | WebAdministration | N/A | |
File Server | Ja | N/A | Windows Server 2008 R2 | |
DNS Server | Nein | DnsServer | N/A | |
Failover Clustering | Ja | N/A | Windows Server 2008 R2 | |
Windows Event Logs | Ja | N/A | PowerShell v2.0 | 1| |
Registry | Ja | N/A | PowerShell v2.0 | |
System Center | Nein | SystemCenter | N/A | |
Configuration Manager | Nein | ConfigurationManager | N/A | |
VMware vSphere | Nein | VMware.PowerCLI | N/A | |
Amazon Web Services (AWS) | Nein | AWSPowerShell | N/A | |
DSC (Desired State Configuration) | Ja | N/A | PowerShell v4.0 | |
Windows Storage Spaces | Ja | N/A | Windows Server 2012 | |
WMI (Windows Management Instrumentation) | Ja | N/A | PowerShell v2.0 | |
Office 365-Reporting | Nein | Office365DSC | N/A | |
Windows Server Backup | Nein | WindowsServerBackup | N/A | |
NFS (Network File System) | Ja | N/A | Windows Server 2012 R2 | |
DirectAccess | Nein | DirectAccessClientComponents | N/A | |
Windows Updates | Nein | PSWindowsUpdate | N/A | |
Remote Desktop Services | Nein | RemoteDesktopServices | N/A | |
Terminal Services | Nein | TerminalServices | N/A | |
SCOM (System Center Operations Manager) | Nein | OperationsManager | N/A | |
SMB (Server Message Block) | Ja | N/A | Windows Server 2012 | |
Windows Firewall | Ja | N/A | PowerShell v2.0 | |
SSIS (SQL Server Integration Services) | Nein | SqlServer | N/A | |
SSAS (SQL Server Analysis Services) | Nein | SqlServer | N/A | |
SSRS (SQL Server Reporting Services) | Nein | ReportingServicesTools | N/A | |
Power BI Server (On-Premises) | Nein | PowerBIRestApi | N/A | |
Power BI Cloud | Nein | MicrosoftPowerBIMgmt | N/A | |
Azure Form Recognizer | Nein | Az.CognitiveServices | N/A | |
Power Apps | Nein | Microsoft.PowerApps.PowerShell | N/A | |
Microsoft Flow (Power Automate) | Nein | Microsoft.PowerPlatform.Dataverse.Client | N/A |
Blog Posts
Powershell Port-Tester
Port-Scanner mit Power Shell
SQL/powershell & UNIXTIME
Powershell und UNIXTIME SQL und UNIXTIME Unixtime 2 DateTime Select dateadd(S, [unixtime], ‘1970-01-01’) From [Table]
Test Auf zu lange Pfade
Es ist bei Dateioperationen sehr lästig, Fehlermeldungen zu bekommen, die darauf hinweisen, dass ein Pfad
Return Value in Funktionen
Powershell hat ein nicht immer klares Verhalten in Bezug auf die Rückgabewerte einer Funktion.
Root Element is missing
Wenn man die Fehlermeldung “Root Element is missing” erhält, hilft selbst ein entfernen und Neuinstallation
Shutdown / Wake Up Computer remote
Shutdown Vorausgesetzt man hat die Rechte dazu, kann man einen Remote Computer mittels > Stop-Computer