Benutzer mit den meisten Antworten
Dienste installieren, starten, beenden oder deinstallieren

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
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- Als Antwort vorgeschlagen Fabian Müller [MSFT]Microsoft employee Freitag, 6. November 2009 08:54
- Als Antwort markiert Andrei TalmaciuModerator Dienstag, 10. November 2009 09:51
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 -
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?" } -
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- Als Antwort vorgeschlagen Fabian Müller [MSFT]Microsoft employee Freitag, 6. November 2009 08:54
- Als Antwort markiert Andrei TalmaciuModerator Dienstag, 10. November 2009 09:51