Добрый день! Работаю над скриптом, который подключается к хосту и выключает все VM а после и сам хост, на котором работают эти ВМ.
$vmhost = Get-Content "C:\Users\users1\Desktop\vm.txt"
Enter-PSSession -ComputerName $vmhost
Invoke-Command -ScriptBlock {Stop-VM -Name * -Force -Passthru | Get-VM}
stop-computer -force
Что я получаю:
Name State CPUUsage(%) MemoryAssigned(M) Uptime Status Version
---- ----- ----------- ----------------- ------ ------ -------
878 Off 0 0 00:00:00 Работает нормально 9.0
win10 Off 0 0 00:00:00 Работает нормально 9.0
121 Off 0 0 00:00:00 Работает нормально 9.0
Я недавно начал осваивать powershell. Хочется доработать его.
1. Если ошибусь с названием хоста в txt ошибка себя проявит и я это увижу. Логично будет подставить в
Enter-PSSession -ComputerName $vmhost
-ErrorAction -Stop
и не использовать Try, Catch и Finally
2. Как реализовать "грамотное логирование" :
-чтобы после выполнения
Stop-VM -Name * -Force -Passthru
было сообщение, что на 100% все ВМ были выключены и сам хост;
-возможно ли указать статус выключения каждой ВМ, если к примеру vm тяжелая ? (При выполнении скрипта появляется зеленная полоска "[Завершение работы]"
-логи скрипта в txt файл после завершения
Чтобы вы добавили?