2016-08-15 74 views
0

這是我的第一篇文章,我一直是各種帖子的很長時間的讀者。PowerShell Loop異常後不會繼續

我要做的就是在大量的虛擬機中禁用大量的服務。我有6-7個不同的環境來做到這一點,我創建了2個文本文件/ /路徑,我給變量$ vmList和$ serviceList。

當我通過使用(外部IP)地址的不同環境運行這些地址時,它僅適用於1個環境。當我嘗試使用(INTERNAL IP)地址運行時,我得到了相同的異常拋出,即它無法在機器上找到set服務(defragsvc),然後退出循環。但是,當我登錄到這些機器時,他們肯定存在但尚未啓動。我肯定失去了,爲什麼這部作品在1個環境(確認機器上),但沒有在其他任何幫助,將不勝感激

 $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

不回答你的問題,而不是'-EA停止'我會推薦'嘗試{Set-Service ; Write-Host } Catch {Write-Host「無法在$ vm上停止服務」爲了更好地跟蹤哪些是有效的,哪些不行,而不僅僅是轉儲腳本。 – TheMadTechnician

+0

沒有您的網絡關於組策略設置的知識,以及我不認爲我們可以用提供的信息準確回答這個問題。 – TheMadTechnician

+0

EA停止是終止循環的原因。你是否確定你正在使用正確的服務名稱?與友好名稱相比,內部名稱可能非常不同。 – bluuf

回答

0

哈,我想通了,

事實證明,我無法連接到服務控制管理器,這是一個權限錯誤,而不是腳本的問題。經驗教訓