|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Задача c клонированием VM. |
|
|
PowerShell - Задача c клонированием VM.
|
Пользователь Сообщения: 70 |
Приветствую друзья!
Собственно в создании скриптов я полный ноль, посему без вашей помощи никак. Задача следующая: Есть VM на HyperV назовем ее BOSS_MAIN Так же есть еще две VM BOSS_1 and BOSS_2 Необходимо написать скрипт, при запуске которого будут останавливаться и удаляться BOSS_1 и BOSS_2, далее делать копию с VM BOSS_MAIN и заново создавать с нее BOSS_1 BOSS_2 Вопрос следующий можно ли просто скопировать BOSS_MAIN и создать две VM, либо надо сначала экспортировать BOSS_MAIN потом создать две голые VM и только потом импортировать на них экспорт BOSS_MAIN? Собственно нашел у вас следующий скрипт и немного подредактировал, чтобы сразу создавались VM без запроса параметров и перед созданием остановил, удалил BOSS_1 BOSS_2 и сделал экспорт BOSS_MAIN: Stop-VM -vm BOSS_1 Remove-VM -vm BOSS_1 Stop-VM -vm BOSS_2 Remove-VM -vm BOSS_2 export-vm -vm BOSS_MAIN -path D:\backups\VM -copystate -wait -force # Variables $SRV1 = "BOSS_1" $SRAM = 512MB $SRV1VHD =40GB $VMLOC = C:\HyperV $Network1 = "Network1" # Configure Hyper-V Virtual Network remove-vmswitch $Network1 -force -erroractionsilentlycontinue new-vmprivateswitch $Network1 # Create Virtual Machines MD $VMLoc -erroractionsilentlycontinue new-vm $SRV1 -path $VMLoc new-vhd -vhdpaths $VMLoc\$SRV1 -size $SRV1VHD add-vmdisk -vm $SRV1 -controllerid 0 -lun 0 -path $VMLoc\$SRV1 get-vm $SRV1 | add-vmdrive -controllerid 1 -lun 0 -dvd get-vm $SRV1 | set-vmmemory -memory $SRAM get-vm $SRV1 | add-vmnic -virtualswitch $Network1 $SRV1 = "BOSS_2" $SRAM = 512MB $SRV1VHD =40GB $VMLOC = C:\HyperV2 $Network1 = "Network2" # Configure Hyper-V Virtual Network remove-vmswitch $Network2 -force -erroractionsilentlycontinue new-vmprivateswitch $Network2 # Create Virtual Machines MD $VMLoc -erroractionsilentlycontinue new-vm $SRV2 -path $VMLoc new-vhd -vhdpaths $VMLoc\$SRV2 -size $SRV1VHD add-vmdisk -vm $SRV1 -controllerid 0 -lun 0 -path $VMLoc\$SRV1 get-vm $SRV2 | add-vmdrive -controllerid 1 -lun 0 -dvd get-vm $SRV2 | set-vmmemory -memory $SRAM get-vm $SRV2 | add-vmnic -virtualswitch $Network2 #Дальше, как мне сделать обратный импорт BOSS_MAIN на эти две виртуалки? предположу, что так: Import-VM -vm BOSS_1 -path D:\backups\VM -copystate -wait -force Import-VM -vm BOSS_2 -path D:\backups\VM -copystate -wait -force #Я же правильно понимаю, что при импорте, я так же, как и при экспорте указываю ту же директорию, или же я должен указать директорию новых VM? |
|
Отправлено: 23:50, 05-12-2013 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать Немного поправил скрипт:
Stop-VM -vm BOSS_1 Remove-VM -vm BOSS_1 Stop-VM -vm BOSS_2 Remove-VM -vm BOSS_2 export-vm -vm BOSS_MAIN -path F:\VM\export\BOSS_MAIN\export -copystate -wait -force # Variables $SRV2 = "BOSS_1" $SRAM = 512MB $SRV2VHD = 40GB $VMLOC = "F:\VM\export\BOSS_1" $Network2 = "Network2" # Configure Hyper-V Virtual Network remove-vmswitch $Network2 -force -erroractionsilentlycontinue new-vmprivateswitch $Network2 # Create Virtual Machines MD $VMLoc -erroractionsilentlycontinue new-vm $SRV2 -path $VMLoc new-vhd -vhdpaths $VMLoc\$SRV2 -size $SRV2VHD add-vmdisk -vm $SRV2 -controllerid 0 -lun 0 -path $VMLoc\$SRV2 get-vm $SRV2 | add-vmdrive -controllerid 1 -lun 0 -dvd get-vm $SRV2 | set-vmmemory -memory $SRAM get-vm $SRV2 | add-vmnic -virtualswitch $Network2 $SRV3 = "BOSS_2" $SRAM = 512MB $SRV3VHD = 40GB $VMLOC = "F:\VM\export\BOSS_2" $Network3 = "Network3" # Configure Hyper-V Virtual Network remove-vmswitch $Network3 -force -erroractionsilentlycontinue new-vmprivateswitch $Network3 # Create Virtual Machines MD $VMLoc -erroractionsilentlycontinue new-vm $SRV3 -path $VMLoc new-vhd -vhdpaths $VMLoc\$SRV3 -size $SRV3VHD add-vmdisk -vm $SRV3 -controllerid 0 -lun 0 -path $VMLoc\$SRV3 get-vm $SRV3 | add-vmdrive -controllerid 1 -lun 0 -dvd get-vm $SRV3 | set-vmmemory -memory $SRAM get-vm $SRV3 | add-vmnic -virtualswitch $Network3 Import-VM -vm BOSS_1 -path F:\VM\export\BOSS_MAIN\export -copystate -wait -force Import-VM -vm BOSS_2 -path F:\VM\export\BOSS_MAIN\export -copystate -wait -force И еще такой вопрос при остановке и удалении VM он меня спрашивает, точно ли я хочу провести это действие, можно ли как то это обойти, чтобы он сразу останавливал и удалял их без запроса? Еще вопрос: после того, как он создает заново VM BOSS_1 BOSS_2 , то начинает ругаться при создании VHD мол, что уже такой жесткий существует, это что получается, при удалении VM VHD не удаляется? это надо отдельно прописать, чтобы VHD удалялось после удаления VM? |
Последний раз редактировалось Mishanya3624, 06-12-2013 в 15:12. Отправлено: 09:22, 06-12-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать Если делаю команду на импорт такой :
Import-VM -vm BOSS_1 -path 'F:\VM\export\BOSS_MAIN\export\BOSS_MAIN\Virtual Machines\37057F64-D1E1-48FD-80B6-1B28ED948AB2.exp' –Copy -GenerateNewId[/b] То ругается так: Import-VM : Не удается найти параметр, соответствующий имени параметра "vm". D:\ps1.ps1:56 знак:14 + Import-VM -vm <<<< BOSS_1 -path 'F:\VM\export\BOSS_MAIN\export\BOSS_MAIN\Virtual Machines\37 057F64-D1E1-48FD-80B6-1B28ED948AB2.exp' -Copy -GenerateNewId + CategoryInfo : InvalidArgument: (:) [Import-VM], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Import-VM |
Последний раз редактировалось Mishanya3624, 06-12-2013 в 15:12. Отправлено: 10:09, 06-12-2013 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Mishanya3624, код на форуме оформляется тэгом [code].
|
Отправлено: 13:21, 06-12-2013 | #4 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать Поправил, жду теперь помощи.
По поводу: И еще такой вопрос при остановке и удалении VM он меня спрашивает, точно ли я хочу провести это действие, можно ли как то это обойти, чтобы он сразу останавливал и удалял их без запроса? Ставить: echo |Y |
|
Отправлено: 15:22, 06-12-2013 | #5 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать Ну что никто, никак, ничем не поможет?
|
Отправлено: 22:14, 08-12-2013 | #6 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать При записи строки импорта:
Import-VM BOSS_1 -path 'F:\VM\export\BOSS_MAIN\export\BOSS_MAIN\Virtual Machines\37057F64-D1E1-48FD-80B6-1B28ED948AB2.exp' Get-WmiObject : Сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA) C:\Program Files\modules\hyperV\VM.ps1:331 знак:40 + $VSMgtSvc=Get-WmiObject <<<< -ComputerName $server -Namespace $HyperVNamespa ce -Class "MsVM_virtualSystemManagementService" + CategoryInfo : InvalidOperation: (:) [Get-WmiObject], COMException + FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCom mand Нельзя вызвать метод для выражения со значением NULL. C:\Program Files\modules\hyperV\VM.ps1:332 знак:54 + $Result=$VSMgtSvc.importVirtualSystem <<<< ($path,(-not $ReuseIDs.Ispresent) ) + CategoryInfo : InvalidOperation: (importVirtualSystem:String) [], RuntimeExcept ion + FullyQualifiedErrorId : InvokeMethodOnNull Не удается преобразовать значение NULL в тип "ReturnCode" из-за недопустимых значений перечисле ния. Укажите одно из следующих значений перечисления и повторите попытку. Возможны следующие зн ачения перечисления: "OK, JobStarted, Failed, AccessDenied, NotSupported, Unknown, Timeout, Inv alidParameter, SystemInUse, InvalidStateForOperation, IncorrectDataType, SystemNotAvailable, Ou tOfMemory, FileNotFound". C:\Program Files\modules\hyperV\VM.ps1:337 знак:64 + else {Write-Verbose ([ReturnCode]$result. <<<< returnValue) + CategoryInfo : NotSpecified: (:) [], RuntimeException + FullyQualifiedErrorId : RuntimeException Что может быть? |
Отправлено: 13:14, 11-12-2013 | #7 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать Разговор с самим собой
![]() |
Отправлено: 09:09, 12-12-2013 | #8 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать Ну неужели никто не работал с VM через Power shell......
|
Отправлено: 16:13, 26-12-2013 | #9 |
Старожил Сообщения: 280
|
Профиль | Отправить PM | Цитировать не совсем понятно. BOSS_MAIN это работающая машина? или держите как шаблон для BOSS_1 И BOSS_2.
По поводу ошибки Цитата Mishanya3624:
не нашел там параметра '-vm' |
|
Отправлено: 23:24, 26-12-2013 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Задача | bangybam | Программирование и базы данных | 1 | 09-12-2012 14:47 | |
C/C++ - C++ Задача | SanchezArz | Программирование и базы данных | 5 | 20-11-2010 18:12 | |
C/C++ - Задача | svdanik | Программирование и базы данных | 8 | 04-10-2010 00:41 | |
Задача С++ | papam | Программирование и базы данных | 1 | 28-11-2005 11:34 | |
Проблема с клонированием w2k!!!! | J Fox | Microsoft Windows NT/2000/2003 | 7 | 17-03-2003 15:58 |
|