Управление Hyper-V с помощью Powershell
Во время выступлений я часто рассказываю о полезных возможностях Powershell. Сегодня хотелось бы поговорить о том, как Powershell может локально или удаленно управлять системой виртуализации Hyper-V.
Автоматизировать задачи создания виртуальных машин, дисков VHD и сетевых интерфейсов достаточно просто. Для этого нужно в систему с Powershell от имени администратора установить библиотеку PSHyperv, написанную одним из наших коллег Джеймсом О`Нилом.
Затем с помощью команд из этой библиотеки можно будет выполнять следующие операции:
Создание, удаление и поиск виртуальных машин,
New-VM , Remove-VM , Set-VM , Get-VM, Choose-VM
Настройка ОЗУ, ЦПУ и дисковых контроллеров виртуальных машин
Get-VMCPUCount, Set-VMCPUCount, Get-VMMemory, Set-VMMemory
Get-VMDiskController
Add-VMSCSIController , Remove-VMSCSIcontroller
Add-VMDrive, Get-VMDrive, Remove-VMdrive
Add-VMDisk, Get-VMDisk, Set-VMDisk, List-VMDisk
Add-VMFloppyDisk, Get-VMFloppyDisk ,
Add-VMNewHardDisk
Создание, подключение и управление VHD файлами
New-VHD, Compact-VHD, Mount-VHD, Unmount-VHD, Get-VHDInfo,
Создание соединения к виртуальной машине
New-VMConnectSession
Получение и управление состояниями виртуальных машин
List-VMState , Set-VMState , Convert-VmState,
Ping-VM , Shutdown-VM , Start-VM, Stop-VM, Suspend-VM
Управление реестром гостевых машин
Get-VMKVP
Резервное копирование, создание мгновеннных снимков и экспорт виртуальных машин VMs
Backup-VM , Export-VM , New-VMSnapshot, Get-VMSnapshot, Choose-VMSnapshot , Apply-VMSnapshot, Remove-VMSnapshot, Get-VMSnapshotTree
Работа с виртуальными коммутаторами и сетевыми интерфейсами виртуальных машин
Add-VMNic, Remove-VMNic, Get-VMNic, List-VMNic, Choose-VMNic, Set-VMNICAddress, Set-VMNICConnection, Get-VMNicport ,
New-VMSwitchPort, Get-VMnicSwitch, Choose-VMSwitch, Get-VMByMACaddress
Как видите, все названия команд вполне очевидны и пользоваться ими довольно легко.
Comments
Anonymous
January 01, 2003
Integration Services можно поставить и в Redhat Enterprise Linux и в Centos. Для них функция завершение работы будет корректно отрабатыавть.Anonymous
January 01, 2003
По списку команд без описания очень многое понятно. При этом есть достаточно подробное описание в формате pdf. Учитывая что этот пак еще бетта - очень неплохо. Проверил - все работает. ЗЫ: очень полезный набор. Например, если имеем Hyper-V в режиме core, и не имеем возможности (временно или постоянно) подключаться к машине удаленно по winrm, а доступен только удаленный рабочий стол - то позволяет полностью управлять виртуальными машинами. Достаточно просто их создавать, запускать, останавливать, настраивать. В принципе все команды и так понятны, запускаешь без параметров - все видно, посмотреть параметры можно табом ...Anonymous
January 01, 2003
2 pethead К сожалению не имею возможности разжевывать вам все детально и написание готовых скриптов в мои обязанности не входит. Те кому тема интересна, используя эти подсказки, будут копать дальше и научатся управлять Hyper-V с помощью Powershell. Благо сделать это не сложно. Если вам это пока не нужно, то просто не читайте. Менять что либо в этой ситуации и заранее писать готовые ответы на вопросы которые вы не потрудились задать, смысла не вижу.Anonymous
January 01, 2003
не, не так. мне тут говорили что у вас тут есть зеркало куда смотреть и круглая штука чтобы на ней ногти свои рассматривать. а как на ней ездить я учиться не хочу и не буду, я и так за неё кучу бабла заплатил =))))Anonymous
January 01, 2003
Модуль проимпортировали?Anonymous
December 25, 2009
типа нахрена это все? я тоже могу написать кучу команд shell безо всякого практического смысла...Anonymous
December 25, 2009
"вот вам двигатель, вот вам бензин (изобретатель бензина так же не я), но заправлять и запускать я не умею, в обязанности не входит, и пользоваться сам тоже не умею, предполагаю что освоить полеты или езду (не знаю что именно) вы сможете копнув дальше меня"Anonymous
January 08, 2010
Я что-то тоже не очень понял в чем практическая польза списка комманд для PowerShell практически без описания... Лишними их конечно сложно назвать, но по-моему пост можно было бы закончить прямо на ссылке на саму библиотеку :)Anonymous
January 25, 2010
Спасибо, отличный указатель направления куда копать :) P.S. Тем, кто любит всё разжеванное - продолжайте разжижать свой моск, всё равно им пользоваться ленитесь...Anonymous
February 11, 2010
Хорошо выключить я смогу с помощью этой библиотеки и команды Shutdown-VM Но когда ее выполнять? опишу ситуацию подробнее... я установил linux debian 5.0 kernel 2.6.18 i386 собрал модули ядра, они у меня подгрузились гостевая система даже увидела и стала работать с seth но, увы "Завершение работы гостевой машины" не работает, работает только перезапуск почему-то ??? выдается такая ошибка: "не удалось завершить работу виртуальной машины ......." у меня первый вопрос почему так ? и второй вопрос как сделать так и главное через что, чтобы у меня вместо процесса выключения отдельной гостевой машины срабатывал скрипт который через эту библиотеку будет тушить машину, в hyper-v ждал и сервер не выключалсяAnonymous
February 16, 2010
> но, увы "Завершение работы гостевой машины" не работает, работает только перезапуск почему-то ??? Потому что линукс, и потому что Integration Services не установлены. Так что переходите на Windows или SUSE :)Anonymous
February 24, 2010
Хммм... Странно... Вроде как про RedHat писали, что он в Hyper-V поддерживается, но за исключением синтетических устройств, то есть Integration Services в нем не поддерживаются официально, а про CentOS вообще слова сказано не было. Или моя информация устарела?Anonymous
March 29, 2010
Устарела. RHEL уже поддерживается.Anonymous
April 08, 2010
К большому удивлению в данной библиотеке отсутствует командлет Backup-VM. Я так понял разработчик решил обойтись командой Export-VM, но работает это только на сохраненной или на остановленной VM. Т.е служба VSS не задействованаAnonymous
December 26, 2010
По поводу резервного копирования : www.inadmin.ru/.../hyper-v-backup-vhd-with-poshAnonymous
February 21, 2012
А можно поподробней про параметры Remove-VMNic?Anonymous
March 01, 2012
Что-то не пойму, я может что не так делаю, но мой шел эти команды не видит устанавливал так: скопировал на жд, запустил скрипт install.cmd