Jump to content

Variableninhalte (array) mit Index versehen und mit diesem Index ausgeben


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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.

Link zu diesem Kommentar

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 von Dukel
Link zu diesem Kommentar
  • 2 Wochen später...

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}

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...