Allgemeine Befehle - PowerShell
Aus Wiki-WebPerfect
Version vom 20. Oktober 2017, 08:54 Uhr von Admin (Diskussion | Beiträge)
Inhaltsverzeichnis
- 1 Allgemein
- 2 Darstellung / Suche
- 2.1 Darstellung Werte in einer Tabelle ausgeschrieben (Format-Table)
- 2.2 Suchen nach Befehlen mit einem Suchstring (Get-Command)
- 2.3 Beispiele bzw. Verwendung eines Befehls anzeigen
- 2.4 Objekt in einer Tabelle suchen
- 2.5 Nur eine gewisse Spalte anzeigen
- 2.6 Nur eine gewisse Spalte anzeigen und nach Alphabet sortieren
- 2.7 Sortieren nach Datum
- 3 Dateien
- 4 Betriebssystem
- 5 Prozesse
- 6 User
- 7 Filesystem
- 8 Netzwerk
- 9 Remoting
- 10 Datum und Zeit
- 11 Variablen
- 12 Dienste / Services
- 13 Treiber (Driver)
- 14 CPU
- 15 PowerShell Module
- 16 Windows Features
- 17 Hilfe
- 18 Logging/Aufzeichnung
Allgemein
Ausklammern / Kommentar im PowerShell Quellcode
#Beschreibung des Commands
Analyse was würde der Befehl bewirken
<Command> -WhatIf
Zeigt an was er alles gemacht hat
<Command> -Verbose
Zeigt alle Aliase an. (Beispiel: Get-Command = gcm)
Get-Alias
Bereits Definierter Alias löschen
$alias= Get-Alias "<zu löschender Alias>" If (Test-Path Alias:$Alias) {Remove-Item Alias:$Alias}
Eigenes PowerShell Profil anzeigen
$profile
Darstellung / Suche
Darstellung Werte in einer Tabelle ausgeschrieben (Format-Table)
<sonstiger PowerShell-Command> | Format-Table -Wrap -AutoSize
Suchen nach Befehlen mit einem Suchstring (Get-Command)
gcm *-*<Suchstring>*
Beispiel: Alle Befehle mit dem Suchstring VPN:
gcm *-*vpn*
Beispiele bzw. Verwendung eines Befehls anzeigen
man <Befehl> -Examples
Objekt in einer Tabelle suchen
<Command> | ? name -match "Suchbegriff"
Nur eine gewisse Spalte anzeigen
<PowerShell-Command> | Select <Spaltenname>
Nur eine gewisse Spalte anzeigen und nach Alphabet sortieren
<PowerShell-Command> | Select <Spaltenname> | Sort-Object -Property <Spaltenname>
Sortieren nach Datum
Sort {$_."<Spalten-Name>" -as [datetime]}
Dateien
Komprimierung bzw. Erstellung eines Zip-Archives
Compress-Archive -Path <Verzeichnis> -DestinationPath <Verzeichnis>.zip -CompressionLevel Optimal
Entpacken eines Zip-Archives
Expand-Archive <Archiv>.zip <Destination-Verzeichnis> -Force
Betriebssystem
Windows Version anzeigen
[System.Environment]::OSVersion.Version
Systeminformationen anzeigen
Systeminfo
Informationen über das Pagefile.sys anzeigen
wmic pagefile list /format:list
Pagefile Konfiguration anzeigen (Beispiel: Automatic)
wmic Computersystem get AutomaticManagedPagefile /VALUE
Prozesse
Alle laufenden Prozesse anzeigen
Get-Process
Bestimmten Prozess stoppen (Beispiel: Notepad)
Get-Process | ? ProcessName -eq notepad | Stop-Process
Alle laufenden Prozesse einer Applikation anzeigen (Beispiel: Notepad | Unterschiedliche Schreibweisen)
Get-Process | Where-Object {$_.ProcessName -eq 'notepad'} Get-Process | Where {$_.ProcessName -eq 'notepad'} Get-Process | ? ProcessName -eq notepad
User
Alle angemeldeten Benutzer anzeigen
query user /server:$SERVER
Benutzer abmelden
logoff <Session-ID> /server:<Server> /V
Benutzer-Session zurücksetzen
reset <Session-ID> /server:<Server> /V
Message an alle angemeldeten Benutzer schicken
msg * "Your message goes here"
Filesystem
Alle Laufwerke und Mounts anzeigen
Get-psdrive
Netzwerk
Ports testen (Telnet Alternative)
Test-NetConnection <IP oder DNS-Namen> -Port <Port>
Beispiel: Port 80 bei Webperfect testen:
Test-NetConnection webperfect.ch -Port 80
Routing testen
Test-NetConnection -DiagnoseRouting
Remoting
Invoke-Command: lokale Variable Remote verwenden ($using:variable)
$LokaleVariable = "Wert" Invoke-Command -ComputerName <Hostname> -ScriptBlock { $using:LokaleVariable }
Datum und Zeit
Beispiel das Datum von Heute vor 180 Tage anzeigen
$Now = Get-Date $Now | gm $Now.addDays(-180)
Variablen
Variablen setzen
Für Strings:
$Variable = "Test"
Für Integers:
$Variable = 1
Explicite Variable definieren
[string]$Variable = "Test"
Zeigt alle möglichen Eigenschaften der Objekte (Beispiel: Anzahl der Buchstaben im Wert der Variable)
$Variable | Get-Member
Beispiel:
$Variable.Length
Dienste / Services
Bestimmter Dienst löschen
.\sc.exe delete <Dienstname>
Alle Dienste innerhalb eines Prozesses anzeigen
$Service = "<zu suchender Server>" $ID = Get-WmiObject -Class Win32_Service -Filter "Name LIKE '$Service'" | Select-Object -ExpandProperty ProcessId Get-WmiObject -Class Win32_Service -Filter "ProcessId LIKE $id" | select Name
Treiber (Driver)
Alle Treiber inklusiv Version anzeigen
Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion
CPU
CPU-Funktion (Anzahl CPUs, Cores und logische Prozessoren)
Function Get-CPUNumber ($Node) { $CPUProperty = "NumberOfCores","NumberOfLogicalProcessors" $NumberOfCPUs = (Get-WmiObject -class win32_processor -computername $Node).Count $NumberOfCores = (Get-WmiObject -class win32_processor -computername $Node -Property $CPUProperty).NumberOfCores | select -First 1 $NumberOfLogicalProcessors = (Get-WmiObject -class win32_processor -computername $Node -Property $CPUProperty).NumberOfLogicalProcessors | select -First 1 $obj1 = new-object PSObject -Property @{"Number of CPUs"="$NumberOfCPUs";"Number of Cores"="$NumberOfCores";"Number of logical Processors"="$NumberOfLogicalProcessors"} $obj1 | select "Number Of CPUs", "Number of Cores", "Number of logical Processors" | Format-List }
PowerShell Module
PowerShell verfügbare Module anzeigen
Get-Module list
Funktionen bzw. Commands eines Modules anzeigen
Get-Command -Module Hyper-V
Windows Features
Windows Feature deinstallieren (Beispiel SMBv1, ACHTUNG: Restart Notwendig!)
Remove-WindowsFeature -Name FS-SMB1
Hilfe
Man-Pages bzw. Hilfe-Seiten aktualisieren
PowerShell als Administrator öffnen:
Update-Help
Man-Artikel eines Commands als Fenster anzeigen
man <Command> -ShowWindow
Beschreibung/Hilfe eines Parameters zu einem Command anzeigen
man <Command> -Parameter <parameter>
Logging/Aufzeichnung
Zeichnet alle Befehle in eine Textdatei auf:
Start-Transcript -Path C:\Users\Username\AllOutputs.txt
Beendet die Aufzeichnung wieder:
Stop-Transcript -Path C:\Users\Username\AllOutputs.txt