PowerShell Loop异常后不会继续
问题描述:
这是我的第一篇文章,我一直是各种帖子的很长时间的读者。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
}
}
答
哈,我想通了,
事实证明,我无法连接到服务控制管理器,这是一个权限错误,而不是脚本的问题。经验教训
不回答你的问题,而不是'-EA停止'我会推荐'尝试{Set-Service; Write-Host } Catch {Write-Host“无法在$ vm上停止服务”为了更好地跟踪哪些是有效的,哪些不行,而不仅仅是转储脚本。 –
TheMadTechnician
没有您的网络关于组策略设置的知识,以及我不认为我们可以用提供的信息准确回答这个问题。 – TheMadTechnician
EA停止是终止循环的原因。你是否确定你正在使用正确的服务名称?与友好名称相比,内部名称可能非常不同。 – bluuf