Думаю, вам прежде всего надо разбить свой скрипт на шаги помельче.
и каждый шаг выполнить отдельно, контролируя его выполнение. То есть выполнять не из файла, а самостоятельно из консоли.
1. получить список компов: $computers = ...
2. проконтролировать что получили то что надо: $computers.Count; $computers[0]
3. Выполнить первую часть установки на одном из компов: Invoke-Command -ComputerName $computers[0] { тут команда установки chocolatey }
4. убедиться что всё встало: залезть на комп и посмотреть
5. Поставить софт на этот комп: Invoke-Command -ComputerName $computers[0] { тут команды choco install }
6. убедиться что всё встало: залезть на комп и посмотреть
7. прочистить список компов от тех кто выключен: самостоятельное упражнение
8. повторить пункты 3 и 5 на прочищенном списке: самостоятельное упражнение
В результате из шагов 1, 7 и 8 сможете скомбинировать рабочий скрипт
И скрипты свои пишите так же - по команде на строке, не экономьте переводы строк, читать невозможно.
И не злоупотребляйте пайпами пока не понимаете что получаете на каждом их этапе, пишите всё в переменные