繁体   English   中英

powershell 集合被修改停止所有正在运行的手动服务

[英]powershell Collection was modified stop all running manual services

以下 powershell 语句失败并显示消息:集合已修改; 枚举操作可能无法执行。

Get-Service | Select-Object -Property Name,Status,StartType | Where-Object {$_.Status -eq "Running" -and $_.StartType -eq "Manual"} | Stop-Service -Force

解决方案是不枚举和停止,而是首先将项目转换为数组/列表,但我找不到如何做到这一点。

我希望在 c# 中可能会出现类似ToArrayToList的内容,然后迭代数组而不是使用服务枚举器,但我找不到 powershell 文档关于如何执行此操作。

我只看到使用foreach执行某些操作的示例,这些示例转换为for但我想将其保留为单行,只想将可枚举转换为列表/数组。\

这可能吗?怎么做?

只需在调用Stop-Service之前分配给变量:

$servicesToStop = Get-Service |Where-Object {$_.Status -eq "Running" -and $_.StartType -eq "Manual"}
$servicesToStop |Stop-Service -Force

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM