Следующая инструкция powershell завершается ошибкой с сообщением: Коллекция была изменена; Операция перечисления может не выполняться.
Get-Service | Select-Object -Property Name,Status,StartType | Where-Object {$_.Status -eq "Running" -and $_.StartType -eq "Manual"} | Stop-Service -Force
Решение состоит в том, чтобы не перечислять и не останавливать, а сначала преобразовать элементы в массив / список, но я не могу найти, как это сделать.
Я ожидал бы что-то вроде ToArray
или ToList
, как это возможно в c#, а затем перебрал бы массив вместо использования перечислителя служб, но я не могу найти документацию powershell о том, как это сделать.
Я вижу только примеры, которые что-то делают с foreach
, которые конвертируются в for
, но я бы хотел сохранить его в единственном числе и просто преобразовать перечисляемый в список / массив. \
Это возможно и как?