Вы немного дрейфуете в неправильном направлении. При использовании Invoke-Command
он обрабатывает блок сценариев одновременно с 32 компьютерами (параллельно)!
Если вы обрабатываете компьютеры с foreach
, он обрабатывает их последовательно, что будет намного медленнее. То же самое действует при использовании командлетов * WMI. Всегда пытайтесь заменить их соответствующими командлетами CIM , так как применяется та же логика - компьютеры обрабатываются параллельно.
Рассмотрим что-то вроде:
$ComputerList = Get-Content -Path Clients.txt
Invoke-Command -ComputerName $ComputerList -ErrorAction SilentlyContinue -ScriptBlock {
Resume-BitLocker -MountPoint "C:"
#Add second command
#add third command and so on
}
Я не уверен, что будет альтернативой команде Invoke-WMIMethod
при локальном выполнении. Возможно Set-WMIInstance
, но я только размышляю! Затем, если вы хотите добавить вторую команду для выполнения, просто добавьте ее в блок сценариев Invoke-Command
.