Power-Shell Scipting

Links

Wer bin ich

Anzeigen von Informaion über Benuter, Gruppen und Privilegien
whoami [/upn | /fqdn | /logonid]
Anzeigen von Informaion über Benuter, Gruppen und Privilegien
whoami {[/user] [/groups] [/priv]} [/fo] <Format> [/nh]
Anzeigen von Informaion über Benuter, Gruppen und Privilegien
whoami /all [/fo <Format>] [/nh]

Verbs

Alle Verbs
Get-Verb
Gruppe Common
Get-Verb | Where Group -eq "Common"
Gruppe Communications
Get-Verb | Where Group -eq "Communications
Gruppe Data
Get-Verb | Where Group -eq "Data
Gruppe Diagnostic
Get-Verb | Where Group -eq "Diagnostic
Gruppe LifeCycle
Get-Verb | Where Group -eq "LifeCycle
Gruppe Security
Get-Verb | Where Group -eq "Security
Gruppe Other
Get-Verb | Where Group -eq "Other

System

Verzeichnisse
Das aktuelle Verzeichnis finden
$runningDirectory = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
Prozesse
Ein Script od. einen Prozess mit Parametern starten
Start-Process -FilePath Powershell -ArgumentList '-File', [script-ort], '-param_1', "value_1", '-param_2', "value_2"
Ein Script od. einen Prozess ALS ADMIN starten
Start-Process -FilePath Powershell -Verb RunAs -ArgumentList '-File', [script-ort], '-param_1', "value_1", '-param_2', "value_2"
Env Variable
Als Beispiel mit einem Pfad zum 'bin' Verz. des aktuellen Benutzers
Session Var - stirbt mit Fenster
$Env:[NAME] = "C:\Users\[user]\bin"
Varibable ausgeben
Get-ChildItem Env:[NAME]
Env-Var für einen Benutzer setzten - Eintrag in Umbebunswariabelen
[System.Environment]::SetEnvironmentVariable('[NAME]','C:\Users\[user]\bin',[System.EnvironmentVariableTarget]::User)

Var für das System setzten - Eintrag in Umbebunswariabelen

Muss als Administratpr ausgeführt werden!

[System.Environment]::SetEnvironmentVariable('[NAME]','C:\Users\[user]\bin',[System.EnvironmentVariableTarget]::Machine)
Füg dem Pfad eine neue Umgebungsvar hinzu
$Env:Path += "C:\Users\[user]\bin"

Allgemein

In Ausgabe schreiben Ref.

Write-Host "hello world"

In Ausgabe schreiben mit Esc Sequenzen \n, \t in PS

Write-Host "[`n], [`t] das ist der Ausgabetext"

Verarbeitung anhalten / pausieren und sofortiges schließen des Fensters verhindern

Start-Sleep -Seconds 4

Pause

Mit Texten arbeiten

Im Text mit RegularExpressions suchen
$result = [System.Text.RegularExpressions.Regex]::Match($wslIpAddr, "(? 172\.[\d\.]*)\/")
Inhalt einer Datei auslesen und ausgeben

$content = Get-Content [pfad-zur-datei] -Encoding UTF8 -Raw

Write-Host $content

Inhalt einer Datei ändern

$replaced = "Neuer Inhalt ..."

$replaced | Set-Content -Path "[pfad-zur-datei]"