JamesTorri 10 Geschrieben 13. August 2014 Melden Teilen 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. Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 13. August 2014 Melden Teilen 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. Zitieren Link zu diesem Kommentar
JamesTorri 10 Geschrieben 14. August 2014 Autor Melden Teilen 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? Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 14. August 2014 Melden Teilen 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 } Zitieren Link zu diesem Kommentar
4077 30 Geschrieben 14. August 2014 Melden Teilen Geschrieben 14. August 2014 Fehlt nicht der Computername-Parameter bei Get-WmiObject Win32_Service -Computername $_? Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 14. August 2014 Melden Teilen 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. Zitieren Link zu diesem Kommentar
JamesTorri 10 Geschrieben 14. August 2014 Autor Melden Teilen 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 ;-) 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.