Schlieng 10 Geschrieben 8. August 2011 Melden Teilen Geschrieben 8. August 2011 Hallo, habe auf einem Server mehrer Dienste (ca. 30) die mit @ beginnen, Dienste starte ich mit diesem Powershell Befehl! Get-Service | Where-Object { $_.name -match "^@" -and $_.Status -eq "Stopped" } | Start-Service Was leider ziemlich lange dauert (da alle Dienste nacheinander gestartet werden), gibt es eine Möglichkeit in der Powershell das man mehrere Dienste gleichzeitig startet? Danke & MfG Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 8. August 2011 Melden Teilen Geschrieben 8. August 2011 Powershell v2? get-help about_remote speziell "-asJob" Zitieren Link zu diesem Kommentar
Schlieng 10 Geschrieben 8. August 2011 Autor Melden Teilen Geschrieben 8. August 2011 thx für die schnelle Antwort! Ja es handelt sich um Powershell v2. hätte es jetzt so gelöst: $Service = Get-Service | Where-Object { $_.name -match "^@" -and $_.Status -eq "Stopped" } Start-Job -Name Service1 -ScriptBlock { $Service[0..10] | Start-Service } Start-Job -Name Service2 -ScriptBlock { $Service[11..20] | Start-Service } Start-Job -Name Service3 -ScriptBlock { $Service[21..-1] | Start-Service } gibt es hierfür eine elegantere Lösung? Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 8. August 2011 Melden Teilen Geschrieben 8. August 2011 Bin mir jetzt nicht ganz sicher, aber könnte das gehen: Get-Service | ? { $_.name -match "^@" -and $_.Status -eq "Stopped" } | % { Start-Job -Name $_.Name -ScriptBlock {$_.Name | Start-Service} } Ich kanns leider nicht testen, probiers mal aus. Mit Measure-Command { Get-Service | ? { $_.name -match "^@" -and $_.Status -eq "Stopped" } | % { Start-Job -Name $_.Name -ScriptBlock {$_.Name | Start-Service} } } kannst du messen, wie lange das ganze dauert. Zitieren Link zu diesem Kommentar
Schlieng 10 Geschrieben 16. August 2011 Autor Melden Teilen Geschrieben 16. August 2011 Hat leider nicht ganz funktioniert, dem scriptblock muss man die variable mit -ArgumentList übergeben. hier die Lösung: $Services = Get-Service | ? { $_.name -match "^@" -and $_.Status -eq "Stopped" } foreach( $Service in $Services ) { Start-Job -Name $Service.Name {param($Service); $Service | Start-Service} -ArgumentList $Service.Name } 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.