Например:
$vmhost = Get-Content "C:\Users\users1\Desktop\vm.txt"
If (Test-WSMan -ComputerName $vmhost -Authentication default -ErrorAction Stop)
{
$RS = Enter-PSSession -ComputerName $vmhost
Invoke-Command -Session $RS -ScriptBlock {Stop-VM -Name * -Force}
Start-Sleep -Seconds 300
$RunningVM = Invoke-Command -Session $RS -ScriptBlock {Get-VM | Where{$_.State -eq 'Running'}}
If (!($RunningVM))
{
Invoke-Command -Session $RS -ScriptBlock {stop-computer -force}
}
....
}
1. В файле "vm.txt" одно имя или несколько? Если несколько - то после Get-Content добавится конструкция ForEach;
2.
Stop-VM -Force
- если на ВМ есть активные сессии, то дается 5 минут на завершение/сохранение работы, после чего ВМ выключается. Если активных сессий нет, то ВМ останавливается сразу
3.
При выполнении скрипта появляется зеленная полоска "[Завершение работы]"
- при запуске скрипта в PowerShell ISE увидите зеленую полоску
4. А что надо видеть в логах?