Christoph_A4 10 Geschrieben 12. November 2013 Melden Teilen Geschrieben 12. November 2013 Hallo, Ich bin gerade dabei ein kleines Script zu basteln, um einer Person zu ermöglichen einen Dienst zu beenden. Dabei möchte ich es so weit runterbrechen, dass ich ihm eine Auswahl an Diensten des Servers anbiete. Die Person muss nur noch eine Zahl eingeben, um den entsprechend mit dieser Zahl verknüpften Dienst zu beenden. Idealerweise folgendermaßen: -- Dienste -- 1 BranchCache 2 Anmeldedienst 3 Designs 4 Computerbrowser Welchen Dienst möchten Sie beenden? Im Speziellen geht es mir eigentlich erst einmal nur darum, wie ich es hinbekomme, dass ich dem Inhalt einer Variable (array) einen fortlaufenden Index vergeben kann. In der Ausgabe möchte ich es dann so haben, dass der array-Wert direkt neben dem Inhalt dargestellt wird (wie oben, z.B. 2 Anmeldedienst), damit die Person im darauf folenden Schritt nur noch die Zahl eingeben muss. Ich hoffe ich bin einigermaßen verständlich. Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 12. November 2013 Melden Teilen Geschrieben 12. November 2013 Damit hast du erstmal einen Start: cls $array = @("Dienst1", "Dienst2") foreach ($item in $array) { Write-host "[$([array]::IndexOf($array, $item))] $($item)" } Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 12. November 2013 Melden Teilen Geschrieben 12. November 2013 (bearbeitet) Kann kann bei einem Array keinen Index zuweisen, das geht z.B. mit einer Hash Tabelle. Intern gibt es aber ein Index, mit dem du auf ein Array Element zugreifen kannst. z.B. $services = @('Branch Cache','Anmeldedienst','Designs','Computer Browser') foreach($i in 0..($services.length-1)){ $id = $i+1; $service = $services[$i]; "$id : $service" } bearbeitet 12. November 2013 von Dukel Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 12. November 2013 Melden Teilen Geschrieben 12. November 2013 Kann kann bei einem Array keinen Index zuweisen, das geht z.B. mit einer Hash Tabelle. Intern gibt es aber ein Index, mit dem du auf ein Array Element zugreifen kannst. z.B. [Klugsc***ern] Das ist aber kein richtiger Index, dass ist ein Counter der pro Item hochgezählt wird. [/Klugsc***ern] Zitieren Link zu diesem Kommentar
Christoph_A4 10 Geschrieben 27. November 2013 Autor Melden Teilen Geschrieben 27. November 2013 Hallo nochmals, mir fehlt eigentlich nur noch der abschließende Befehl, kann mir da jemand unter die Arme greifen? $service=Invoke-Command pc0815 -scriptblock {Get-service | where {$_.name -match "branche"} | select displayname } -hidecomputername | Select DisplayName #-ExcludeProperty RunspaceID $test = $service foreach ($service in $test) { Write-host "[$([array]::IndexOf($test, $service))] $($service)" } $eingabe = Read-Host "Bitte den abzubrechenden Dienst wählen" Wie setze ich jetzt an, dass der ausgewählte Dienst (mittels stop-service | -force ?) gestoppt wird? Danke, hab es endlich hinbekommen. $service=Invoke-Command pc0815 -scriptblock {Get-service | where {$_.name -match "branche"} | select * } -hidecomputername | Select * -ExcludeProperty RunspaceID $test = $service foreach ($service in $test) { Write-host "[$([array]::IndexOf($test, $service))] $($service.displayname)" } $eingabe = Read-Host "Bitte den abzubrechenden Dienst wählen" $test[$eingabe] | Invoke-Command pc0815 -scriptblock {Stop-Service -force} Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.