Dynamisches Auswahlmenü

Um den Kollegen einen Self-Service in den Skripten anbieten zu können, empfiehlt es sich diese nicht dazu zu nötigen erst in den Code reingehen zu müssen. Darum sind Auswahlmenüs wichtig. Hier eine einfaches Beispiel, wie solch ein Menü aufgebaut werden kann.

$Processes = Get-Process
$Output = @()
$InputIDMappings = @()
$i = 1
foreach($Process in $Processes){

	$Output += "$i : " + $Process.ProcessName
	$InputIDMapping = "" | Select Input,ProcessID,ProcessName
	$InputIDMapping.Input = $i
	$InputIDMapping.ProcessID = $Process.ID
	$InputIDMapping.ProcessName = $Process.ProcessName
	$InputIDMappings += $InputIDMapping
	$i++
}


Write-Host "Welcher Prozess soll gestoppt werden:"
$Output
$Selection = Read-Host "Bitte eine Auswahl treffen"


$KillID = ($InputIDMappings | ? {$_.Input -eq $Selection}).ProcessID

echo "KILL-ID: $KillID"

Die Möglichkeiten sind schier endlos… So habe ich das beispielsweise als Grundlage für ein Self-Service Skript für den Helpdesk verwendet um im eigenen Cloud-Service Mandanten, Datenbanken, Mail-Domains, etc. dynamisch abzufragen, zu löschen, usw.