none
Dienste installieren, starten, beenden oder deinstallieren RRS feed

  • Frage

  • Hallo zusammen, ich habe leider nciht so viel Ahnung von Powershell und suche darum hier nach Hilfe
    Mein Script (bin nicht weit gekommen und so das lauft aber irgend wie nicht):

            #Falls ein Prozess läuft sollte es Grün angezeigt werden
      if ($process.Status.ToString() -eq "Running"){
       $templvi.ForeColor = "Green"
            #Andernfalls sollte es Rot angezeigt werden
      } else {
       $templvi.ForeColor = "Red"
      }




    Ich muss einen Script machen, das mir alle Dienste in einer Tabelle anzeigt. Die Dienste, die laufen in grün und die anderen in rot.  Ich muss können einen wählbaren Dienst bearbeiten. Wenn der Dienst nicht lauft dann muss ich entscheiden können ob ich den installieren will oder nicht. Wenn der Dienst installiert ist, muss ich entscheiden können ob der wieder neuinstalliert werden soll oder nicht. Danach überprüfen ob der Dienst läuft oder nicht. Bitte dringend um Hilfe.


    Danke und Grüsse

    Donnerstag, 5. November 2009 08:11

Antworten

  • Hi,

    das Problem bei Deinem Scipt ist, daß Du den Service zwar ausliest, jedoch danach nicht als Objekt "einliest".
    Versuche es einmal so (nur diese beiden Zeilen anpassen, der Rest sollte passen):

    [...]     
    
    $Servicename = Read-Host "Gesuchten Dienst eingeben:"
    $Service = Get-service  $Servicename | Select-Object -property Status, Name, DisplayName
    
    [...]

    Viele Grüße
    Fabian
    http://blogs.technet.com/deds
    Donnerstag, 5. November 2009 09:41

Alle Antworten

  • Hi Alexander,

    ein komplettes Script wird Dir hier wohl eher niemand schreiben, aber Du kannst gern Fragen zu konkreten Aufgabenstellungen stellen.
    Ich vermute Du meinst Dienste, nicht Prozesse? Wenn ein Prozess nicht läuft, kannst Du ihn nicht auslesen, das macht nur bei Diensten Sinn. Daher einmal ein Gedankenanstoß für Dich mit folgender Anpassung Deines Scripts:

    ###Falls ein Prozess läuft sollte es Grün angezeigt werden
    # Dienste auslesen
    $service= Invoke-Expression "Get-Service"
    
    
    #Für jeden Dienst den Status auslesen und die Farbe festlegen
    foreach ($a in $service) {
    	if ($a.Status -eq "Running")
    	{
       		$templvi = "Green"
        	} 
    	else
    	{
       		$templvi = "Red"
      	}
             # Ausgeben des Dienstes in der jeweiligen Farbe
    	Write-Host $a.name -ForeGroundColor $templvi
    }

    Viele Grüße
    Fabian
    http://blogs.technet.com/deds
    Donnerstag, 5. November 2009 08:48
  • danke für Antowrt, genau, habe die Dienste gemeint

    habe jetzt den script erweitert, aber irgend wie funkts immer noch nicht richtig:

     Get-Service | Select-Object Name, Status | ForEach-Object {
         if ($_.status -eq "running") {Write-Host $_.name $_.status -ForegroundColor Green -BackgroundColor black}
         elseif ($_.status -eq "stopped") {Write-Host $_.name $_.status -ForegroundColor red -BackgroundColor black
         }}
         $Service = Read-Host "Gesuchten Dienst eingeben:"
         Get-service  $Service | Select-Object -property Status, Name, DisplayName
    if ($service.status -eq "stopped") {
    $YesNo = Read-Host "Dieser Dienst ist gestoppt. Möchten sie den Dienst starten" }
    elseif ($service.status -eq "running") {
    $yesno = Read-Host "Dieser Dienst lauft. Möchten sie den Dienst stoppen?" }

    Donnerstag, 5. November 2009 09:06
  • Hi,

    das Problem bei Deinem Scipt ist, daß Du den Service zwar ausliest, jedoch danach nicht als Objekt "einliest".
    Versuche es einmal so (nur diese beiden Zeilen anpassen, der Rest sollte passen):

    [...]     
    
    $Servicename = Read-Host "Gesuchten Dienst eingeben:"
    $Service = Get-service  $Servicename | Select-Object -property Status, Name, DisplayName
    
    [...]

    Viele Grüße
    Fabian
    http://blogs.technet.com/deds
    Donnerstag, 5. November 2009 09:41