2016-08-15 6 views
0

Dies ist mein erster Beitrag, ich bin ein langer Zeit Leser von verschiedenen Post gewesen.PowerShell Loop nicht weiter nach Ausnahme

Was ich tun muss, ist eine große Anzahl von Diensten in einer großen Anzahl von VMs zu deaktivieren. Ich habe 6-7 verschiedene Umgebungen, um dies zu tun, ich habe 2 Textdateien // Pfade erstellt, die ich den Variablen $ vmList und $ serviceList gegeben habe.

Wenn ich diese durch die verschiedenen Umgebungen mit (EXTERNAL IP) -Adressen ausführen, funktioniert es für nur 1 Umgebung. Wenn ich versuche, das mit (INTERNAL IP) -Adressen auszuführen, bekomme ich die gleiche identische Ausnahme, die ist, dass es den Satzdienst (defragsvc) auf der Maschine nicht finden kann und die Schleifen dann beendet. Wenn ich mich jedoch bei diesen Maschinen anmelde, sind sie definitiv dort, aber nicht gestartet. Ich bin auf jeden Fall verloren, warum dies in 1 Umgebung funktioniert (an den Maschinen bestätigt), aber nicht in den anderen jede Hilfe

 $vmList =gc C:\PowerCli\Services\Staging_1_Defrag_Kill.txt 
    $serviceList =gc C:\PowerCli\Services\ServicesKill.txt 


    ForEach ($vm in $vmList){ 
    ForEach ($service in $serviceList){ 

      write-host $vm 

      Stop-service -inputobject(Get-Service -Name $service -ComputerName $vm)-force -confirm:$false -EA SilentlyContinue 

      Set-Service -ComputerName $vm -Name $service -EA Stop -Startmode Disabled 
      Write-Host "$vm : Successfully disabled the service $service" -ErrorAction SilentlyContinue 
} 
} 
+0

Antwortet nicht auf Ihre Frage, aber anstatt "-EA Stop" würde ich 'Try {Set-Service ; Schreib-Host } Catch {Write-Host" konnte Service auf $ vm nicht stoppen " -für Red} ', um besser zu verfolgen, was funktioniert und was nicht, und nicht nur das Skript ausgibt. – TheMadTechnician

+0

Ohne eingehende Kenntnisse Ihrer Netzwerke für Dinge wie Gruppenrichtlinieneinstellungen und was nicht, ich glaube nicht, dass wir diese Frage mit den bereitgestellten Informationen genau beantworten können. – TheMadTechnician

+0

Der EA-Stopp ist die Ursache für die Abschlussschleife. Sind Sie auch sicher, dass Sie den richtigen Servicenamen verwenden? Die internen Namen können im Vergleich zu den Anzeigenamen sehr unterschiedlich sein. – bluuf

Antwort

0

Hah geschätzt würde, dachte ich es aus,

Wie sich herausstellt , Ich konnte keine Verbindung zum Dienststeuerungs-Manager herstellen, es war ein Berechtigungsfehler, kein Problem mit dem Skript. Lessons Learned