none
powershell перевести в состояние сохранить все виртуальные машины. RRS feed

  • Вопрос

  • Здравствуйте. Есть кластер из 6 лезвий - на них крутится server 2012 r2  с hyper-v. нужен скрипт перевода всех кластерных машин в состояние save - stop vm -save - Знаю такую команду но это для отдельного хоста, а хотелось бы чтобы перевести машины в состояние сохранено было возможным с одного хоста кластера.

    попытался сделать массив - вот, что получилось - что делать дальше??

    $massivVM=Get-ClusterNode $i | Get-Clusterresource| ?{$_.ResourceType -eq 'Virtual Machine'}|Get-Vm

    2 февраля 2017 г. 6:56

Ответы

Все ответы

  • .. | Get-Vm | Stop-VM -Save

    • Помечено в качестве ответа shmelfrol 3 февраля 2017 г. 9:31
    2 февраля 2017 г. 7:02
    Отвечающий
  • это будет работать с одного узла кластера? сможет он сохранить машины на других узлах кластера?
    2 февраля 2017 г. 8:04
  • это будет работать с одного узла кластера? сможет он сохранить машины на других узлах кластера?

    А что мешает проверить?

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

    2 февраля 2017 г. 8:05
    Модератор
  • рабочее время.... проверю вечером)))
    2 февраля 2017 г. 9:27
  • Спасибо, все работает.

    Еще один вопрос. я это делаю для использования с porachute networkshutdown - поставлю его на один узел - задам выполнение батника, который при переходе на питание от батарей записывает в файл choto.txt 1 - а в автозагрузке стоит скрипт powershell, который мониторит этот файл и если в него записана 1, то сохраняет все виртуальные машины, а затем гасит узлы по очереди.

    почему такая многоходовка, потому что  powerchute  не умеет запускать .ps1, а при выключении хоста все кластеризованные машины переходят на живой хост, таким образом все машины оказываются на том хосте, который последним отключается, у него может не хватить ресурсов для всех машин - и не известно как все выключится.....

    прав я в своем решении???

    $i=1
    while ($i -gt 0){
    $a=get-content C:\ups\541.txt
    $stroka=[int]::Parse($a)
    if ($stroka -eq 1){
    write-host "rrrrrr"
    Get-ClusterNode $i | Get-Clusterresource| ?{$_.ResourceType -eq 'Virtual Machine'}|Get-Vm
    start-sleep -s 10
    shutdown /s /t 10 /m \\gse264-bl6
    start-sleep -s 60
    shutdown /s /t 10 /m \\gse264-bl5
    start-sleep -s 60
    shutdown /s /t 10 /m \\gse264-bl4
    start-sleep -s 60
    shutdown /s /t 10 /m \\gse264-bl3
    start-sleep -s 60
    shutdown /s /t 10 /m \\gse264-bl2
    start-sleep -s 60
    shutdown /s /t 10
    }
    else {write "not"
    start-sleep -s 10
           }
    }

    • Изменено shmelfrol 3 февраля 2017 г. 9:27
    3 февраля 2017 г. 9:23
  • Спасибо, все работает.

    Еще один вопрос. я это делаю для использования с porachute networkshutdown - поставлю его на один узел - задам выполнение батника, который при переходе на питание от батарей записывает в файл choto.txt 1 - а в автозагрузке стоит скрипт powershell, который мониторит этот файл и если в него записана 1, то сохраняет все виртуальные машины, а затем гасит узлы по очереди.

    почему такая многоходовка, потому что  powerchute  не умеет запускать .ps1, а при выключении хоста все кластеризованные машины переходят на живой хост, таким образом все машины оказываются на том хосте, который последним отключается, у него может не хватить ресурсов для всех машин - и не известно как все выключится.....

    прав я в своем решении???

    Не надо создавать сборище вопросов из одной темы, которые не пересекаются. Создайте отдельную тему.
    3 февраля 2017 г. 9:31
    Отвечающий