none
Как выполнить Stop-VM из скрипта без ожидания ввода подтверждения и без -Force RRS feed

  • Вопрос

  • Когда я запускаю команду:

    Stop-VM -Name "VMNAME" -confirm:$false

    То получаю ожидание ввода:

        Confirm
        Hyper-V cannot shut down virtual machine VMNAME because the Shutdown integration service is 
        unavailable. To avoid potential data loss, you can pause or save the state of the virtual machine. 
        The
        other option is to turn off the virtual machine, but data loss might occur.
        [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): N

    Но я запускаю Stop-VM в скрипте (скрипт запускается через ssh с другого сервера) и он у меня конечно подвисает на этом месте. Т.е. где то на сервере висит куча процессов в фоне и ждут когда нажмут N Enter:

    

    Процессы ждут бесконечно и копятся.

    Мне бы хотелось, что бы команда Stop-VM если у неё не получается остановить, то вернула бы ошибку или молча закончила работу, а мы уж в скрипте дальше попробуем разобраться что произошло. Ну или просто оставили сообщение в логах.

    И мне нужно именно ответить N на данный вопрос. Я ожидал, что 

    -confirm:$false

    как раз и приведёт к такому поведению, но не выходит.

    -Force 
    не подходит, потому что если не получается по хорошему (идёт там обновление или ещё какие нибудь причины, как выше например) остановить машину, то пусть живёт.
    27 ноября 2019 г. 12:51

Ответы

  • создаете в главном скрипте job в котором запускаете выключение вм, при этом в главном скрипте выставляет wait-job "shutdownvm" -timeout 300

    The opinion expressed by me is not an official position of Microsoft

    • Помечено в качестве ответа Alexey Ponomarev 28 ноября 2019 г. 7:09
    27 ноября 2019 г. 21:23
    Модератор

Все ответы

  • создаете в главном скрипте job в котором запускаете выключение вм, при этом в главном скрипте выставляет wait-job "shutdownvm" -timeout 300

    The opinion expressed by me is not an official position of Microsoft

    • Помечено в качестве ответа Alexey Ponomarev 28 ноября 2019 г. 7:09
    27 ноября 2019 г. 21:23
    Модератор
  • Вобщем так вчера и сделал. 
    Проверку на то работает ли Shutdown integration service тоже вставили, но надежды на то что Stop-VM в следующий раз по какой то другой причине начнет ожидать ввода от пользователя, хотя ему сказали -confirm:$false конечно нет.
    В потоке и прибиваем по таймауту.
    28 ноября 2019 г. 7:12