JamesTorri 10 Geschrieben 13. August 2014 Melden Geschrieben 13. August 2014 Hallo zusammen Ich hab hier einen Powershell-Script und eine Inputdatei (welche die Servernamen beinhaltet, welche abgefragt werden sollen). Der Powershellscript überprüft Dienste, welche auf "Automatic" gestellt, jedoch nicht gestartet sind. Der Powershellscript sieht wie folgt aus (und funktioniert eigentlich einwandfrei): Get-content getserviceslist.txt | forEach { Get-WmiObject Win32_Service |` where {($_.startmode -like "*auto*") -and ` ($_.state -notlike "*running*")}|` select DisplayName,Name,StartMode,State|ft -AutoSize } Das Inputfile "getserviceslist.txt" sieht inhaltlich wie folgt aus: SERVER01 SERVER02 Der Output, welcher in der Powershell generiert wird, sieht wie folgt aus: DisplayName Name StartMode State ----------- ---- --------- ----- Software Protection sppsvc Auto Stopped DisplayName Name StartMode State ----------- ---- --------- ----- Software Protection sppsvc Auto Stopped Meine Problematik liegt darin, dass im Output nicht ersichtlich ist, welcher Server abgefragt wurde. Sehr hilfreich wäre dann, dass irgendwo zum Output der Servername genannt wird. Ich danke Euch für die Unterstützung.
Dukel 468 Geschrieben 13. August 2014 Melden Geschrieben 13. August 2014 Der wichtigste Teil fehlt. Wo und wie generierst du den Output? Evtl. ein " $_ ; " vor das Get-WmiObject. Ansonsten ein PSComputerName oder SystemName in das select aufnehmen.
JamesTorri 10 Geschrieben 14. August 2014 Autor Melden Geschrieben 14. August 2014 Hallo Dukel Bis anhin habe ich den Output nur in der Powershell Console generiert. Werde aber später alles in einer Datei umleiten. Ich hatte leider schon ein bisschen Mühe, "meinen" einfachen Befehl zu generieren (ist natürlich aus Beispiel im Internet zusammengesetzt). Wie würden deine Hinweise im Script aussehen?
Dukel 468 Geschrieben 14. August 2014 Melden Geschrieben 14. August 2014 Ich würde mir mal die Grundlagen der Powershell aneignen. Das Script könnte folgendermaßen aussehen: Get-content getserviceslist.txt | forEach { $_ ; Get-WmiObject Win32_Service |`where {($_.startmode -like "*auto*") -and `($_.state -notlike "*running*")}|`select DisplayName,Name,StartMode,State|ft -AutoSize } oder Get-content getserviceslist.txt | forEach { Get-WmiObject Win32_Service |`where {($_.startmode -like "*auto*") -and `($_.state -notlike "*running*")}|`select SystemName,DisplayName,Name,StartMode,State|ft -AutoSize }
4077 30 Geschrieben 14. August 2014 Melden Geschrieben 14. August 2014 Fehlt nicht der Computername-Parameter bei Get-WmiObject Win32_Service -Computername $_?
Dukel 468 Geschrieben 14. August 2014 Melden Geschrieben 14. August 2014 Stimmt. Dieses fehlt auch. Ist mir erst gar nicht aufgefallen. Wäre dann dem TO aufgefallen, wenn der Rechnername mit aufgenommen wurde.
JamesTorri 10 Geschrieben 14. August 2014 Autor Melden Geschrieben 14. August 2014 Danke Leute, ihr seit perfekt. Mein Skript sieht jetzt so aus und funktioniert einwandfrei: Get-content getserviceslist.txt | forEach { Get-WmiObject Win32_Service -Computername $_ |` where {($_.startmode -like "*auto*") -and ` ($_.state -notlike "*running*")}|` select SystemName,DisplayName,Name,StartMode,State|ft -AutoSize } Und ich habe begonnen, Powershell Grundlagen anzueignen ;-)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden