PowerShell: Unterschied zwischen den Versionen
| Zeile 54: | Zeile 54: | ||
=== Grundlagen und Hilfesystem === | === Grundlagen und Hilfesystem === | ||
* '''STRG + Mausrad''': Ändert die Schriftgröße in der Konsole. | * '''STRG + Mausrad''': Ändert die Schriftgröße in der Konsole. | ||
* < | * '''<code>Get-Help</code>''': Zeigt die Hilfeseite zu einem Cmdlet an (z.B. <code>Get-Help Get-Process</code>). | ||
* < | * '''<code>Update-Help</code>''': Lädt die neuesten Hilfedateien herunter. | ||
* < | * '''<code>Get-Command</code>''': Listet alle verfügbaren Befehle auf. | ||
** < | ** <code>Get-Command -Name *-service*</code>: Findet Cmdlets, die "-service" im Namen enthalten. | ||
=== Kompatibilität mit Cmd & Linux === | === Kompatibilität mit Cmd & Linux === | ||
| Zeile 63: | Zeile 63: | ||
* '''Typische Aliase:''' | * '''Typische Aliase:''' | ||
** < | ** <code>dir</code> → Get-ChildItem | ||
** < | ** <code>ls</code> → Get-ChildItem | ||
** < | ** <code>ipconfig /all</code> → Wird direkt ausgeführt | ||
** < | ** <code>mkdir</code> → New-Item | ||
** < | ** <code>rd</code> → Remove-Item | ||
** < | ** <code>man</code> → Get-Help | ||
** < | ** <code>cls</code> → Clear-Host | ||
* '''Alias abfragen:''' < | * '''Alias abfragen:''' <code>Get-Alias ls</code> zeigt, welches Cmdlet sich hinter <code>ls</code> verbirgt. | ||
=== Einfache Cmdlets für den Einstieg === | === Einfache Cmdlets für den Einstieg === | ||
| Zeile 76: | Zeile 76: | ||
* '''Prozesse:''' | * '''Prozesse:''' | ||
** < | ** <code>Get-Process</code>: Zeigt alle laufenden Prozesse an (wie <code>tasklist.exe</code>). | ||
** < | ** <code>Get-Process -Name notepad</code>: Zeigt alle Notepad-Prozesse. | ||
** < | ** <code>Stop-Process -Name notepad</code>: Beendet alle Notepad-Prozesse. | ||
** Prozess starten: < | ** Prozess starten: <code>.\notepad.exe</code> (relativer Pfad) | ||
* '''Systeminformationen:''' | * '''Systeminformationen:''' | ||
** < | ** <code>$PSVersionTable</code>: Zeigt die PowerShell-Version an. | ||
** < | ** <code>Get-Service</code>: Listet alle Dienste und ihren Status auf. | ||
** < | ** <code>Get-HotFix</code>: Zeigt installierte Updates. | ||
** < | ** <code>Get-WindowsDriver -Online -All</code>: Listet alle Windows-Treiber auf. | ||
* '''Drucker:''' | * '''Drucker:''' | ||
** < | ** <code>Get-Printer</code>: Zeigt konfigurierte Drucker an. | ||
** < | ** <code>Get-PrintConfiguration -PrinterName "Druckername"</code>: Zeigt Konfiguration eines bestimmten Druckers. | ||
=== Arbeiten mit Parametern === | === Arbeiten mit Parametern === | ||
Parameter werden mit < | Parameter werden mit <code>-Parametername</code> übergeben. Es gibt zwei Typen: | ||
* '''Parameter mit Argument:''' < | * '''Parameter mit Argument:''' <code>-Name "wuauserv"</code> | ||
* '''Switch-Parameter (ein/aus):''' < | * '''Switch-Parameter (ein/aus):''' <code>-Online</code>, <code>-All</code> | ||
=== Beispiele: Systemkonfiguration === | === Beispiele: Systemkonfiguration === | ||
* '''Dienste konfigurieren:''' | * '''Dienste konfigurieren:''' | ||
** < | ** <code>Set-Service -Name wuauserv -StartupType Disabled</code> | ||
** < | ** <code>Stop-Service -Name wuauserv</code> | ||
* '''Netzwerk:''' | * '''Netzwerk:''' | ||
** < | ** <code>Get-NetIPInterface</code>: Listet Netzwerkschnittstellen auf. | ||
** < | ** <code>Get-NetIPAddress -AddressFamily IPv4 -PrefixOrigin Dhcp</code>: Zeigt IPv4-Adressen, die von DHCP bezogen wurden. | ||
** < | ** <code>Test-NetConnection -ComputerName 'Nwfs'</code>: Ähnlich wie <code>ping</code>, aber leistungsstärker. | ||
** < | ** <code>Set-NetFirewallProfile -All -Enabled true</code>: Aktiviert die Firewall für alle Profile. | ||
* '''Apps verwalten (Windows 10/11):''' | * '''Apps verwalten (Windows 10/11):''' | ||
** < | ** <code>Get-AppxPackage -Name *help* | Remove-AppxPackage</code>: Entfernt Apps mit "help" im Namen für den aktuellen Benutzer. | ||
** < | ** <code>Get-AppxPackage | Out-GridView -PassThru</code>: Zeigt Apps in einer grafischen Tabelle zur Auswahl. | ||
=== Daten Im- und Export === | === Daten Im- und Export === | ||
| Zeile 115: | Zeile 115: | ||
* '''Export:''' | * '''Export:''' | ||
** < | ** <code>... | Export-Csv -Path C:\data.csv -Delimiter ";" -Encoding UTF8</code> | ||
** < | ** <code>... | Export-Clixml -Path C:\data.xml</code> (PowerShell-spezifisches Format) | ||
** < | ** <code>... | ConvertTo-Json | Out-File -FilePath C:\data.json</code> | ||
* '''Import:''' < | * '''Import:''' <code>Import-Csv -Delimiter ";" -Path C:\data.csv</code> | ||
=== Arbeiten mit Objekten und der Pipeline (|) === | === Arbeiten mit Objekten und der Pipeline (|) === | ||
| Zeile 125: | Zeile 125: | ||
* '''Pipeline-Beispiele:''' | * '''Pipeline-Beispiele:''' | ||
** < | ** <code>Get-PrintConfiguration -PrinterName "Drucker" | Select-Object -Property Printername, Duplexingmode</code> | ||
** < | ** <code>Get-PrintConfiguration -PrinterName "Drucker" | Select-Object -Property *</code> (zeigt alle Eigenschaften) | ||
* '''Objekteigenschaften auslesen:''' | * '''Objekteigenschaften auslesen:''' | ||
** < | ** <code>(Get-NetIPAddress -AddressFamily IPv4).IPAddress</code> | ||
=== Weitere nützliche Befehle === | === Weitere nützliche Befehle === | ||
* '''Webanfragen:''' | * '''Webanfragen:''' | ||
** < | ** <code>(Invoke-WebRequest -Uri www.google.de).Links.href</code> Extrahiert alle Links von einer Webseite. | ||
* '''Eventlog:''' | * '''Eventlog:''' | ||
** < | ** <code>Get-EventLog -LogName Application -EntryType Error -After '2020-03-30'</code> | ||
** < | ** <code>Get-WinEvent -FilterHashtable @{Logname="*Hyper*"; Providername="Microsoft"; ID=2008; Level=4}</code> | ||
* '''Umgebungsvariablen:''' | * '''Umgebungsvariablen:''' | ||
** < | ** <code>$env:COMPUTERNAME</code> | ||
* '''Pfade:''' | * '''Pfade:''' | ||
** < | ** <code>Test-Path C:\ -PathType Container</code> (Prüft, ob ein Pfad existiert) | ||
** < | ** <code>Split-Path -Path C:\Windows -Parent</code> / <code>-Leaf</code> | ||
** < | ** <code>Join-Path -Path C:\Windows -ChildPath Ordner</code> | ||
* '''Virtuelle Festplatten:''' | * '''Virtuelle Festplatten:''' | ||
** < | ** <code>New-VHD -Path D:\test.vhdx -SizeBytes 50GB -Dynamic</code> | ||
** < | ** <code>Mount-VHD -Path D:\test.vhdx</code> | ||
== Datenimport und -export == | == Datenimport und -export == | ||