Установка и использование модуля VMware PowerCLI для управления ESXi и vSphere

31.03.2022

itpro

PowerShell, VMware

комментариев 15
VMware vSphere PowerCLI — это набор модулей PowerShell, позволяющий администрировать компонентами инфраструктуры VMware из командной строки. Вы можете использовать PowerCLI для получения состояния виртуальных машин, хранилищ, сетей, пользователей, управлять различными настройками, создавать новые объекты и использовать PowerShell в скриптах автоматизации ESXi, vCenter Server, vSphere, vSAN и других продуктов VMware.
На данный момент VMware разрабатывает версию PowerCLI только для PowerShell Core (7.0+). Эта версия PowerShell является кроссплатформенной, и может использовать как в Windows, так и в Linux или macOS. Для старых модулей PowerCLI под Windows PowerShell 5.x выпускаются только исправления безопасности. Рекомендуется использовать обновленную версию PowerShell Core.
Установка VMware PowerCLI в Windows
Вы можете установить модуль VMvware PowerCLI в Windows в онлайн или офлайн режиме.
Для онлайн установки модуля PowerCLI из PowerShell Gallery выполните команду:
Install-Module -Name VMware.PowerCLI
До версии vSphere 6.5 модуль PowerCLI распространялся в виде MSI установщика.
Если нужно установить модуль только для текущего пользователя:
Install-Module VMware.PowerCLI -Scope CurrentUser
По умолчанию из PowerShell Gallery устанавливается последняя версия PowerCLI. Если вам нужно установить определенную версию PowerCLI, можно вывести полный список версий и установить нужную:
Find-Module -Name VMware.PowerCLI -AllVersions|select version
Install-Module -Name VMware.PowerCLI -RequiredVersion 12.1.0.17009493

В процессе установки вам будет предложено обновить Nuget провайдер. Также подтвердите установку из недоверенного репозитория PowerShell Gallery (можно сделать его доверенным с помощью командлета Set_PSRepository ).
Проверьте, что модули PowerCLI установлены и выведите их версии:
Get-Module -ListAvailable VMware* | Select Name,version

Для обновления версии PowerCLI достаточно выполнить команду:
Update-Module -Name VMware.PowerCLI
Если в Windows установлен модуль управления пакетами Choco, вы можете найти модуль PowerCLI в репозитории:
choco search vmware
и установить его:
choco install vmware-powercli-psmodule
Модуль powercli в winget пока не доступен.
Если вы хотите установить PowerCLI на изолированном от интернета компьютере, можете использовать офлайн установщик.
- Скачайте zip архив с модулем PowerCLI https://code.vmware.com/web/tool/vmware-powercli (размер zip архива с текущей версией VMware-PowerCLI 12.4.1 около 80 Мб);
- Распакуйте zip архив в каталог с модулями PowerShell на компьютере (список таких каталогов можно получить с помощью команды $env:PSModulePath ). Обычно используется каталог C:\Program Files\WindowsPowerShell\Modules ;
- Снимите блокировку с файлов, скачанных с интернета: cd “c:\Program Files\WindowsPowerShell\Modules” Get-ChildItem * -Recurse | Unblock-File
- Запустите консоль PowerShell и проверьте что модуль PowerCLI теперь доступен: Get-Module -Name VMware.PowerCLI –ListAvailable
Подробнее про офлайн установку модулей PowerShell описано в статье.
Для импорта модуля PowerCLI в текущую сессию, в PowerShell ISE или Visual Studio Code, выполните команду:
При загрузке модуля может появиться ошибка вида:
Import-Module: File C:\Program Files\WindowsPowerShell\Modules\VMware.VimAutomation.Sdk\12.4.0.18627054\VMware.VimAutomation.Sdk.psm1 cannot be loaded because running scripts is disabled on this system
В этом случае нужно настроить политику выполнения скриптов PowerShell. Чтобы разрешить запуск модуля в текущей сессии:
Set-ExecutionPolicy Unrestricted -Scope Process
Можно использовать модуль PowerCLI, установленный на другом компьютере. Для этого его нужно импортировать удаленно через PSRemoting:
$session = New-PSSession -ComputerName msk-man01
Импортируйте модуль PowerCLI на ваш компьютер:
Import-Module -PSsession $session -Name VMware.VimAutomation.Core
Не забудьте закрыть сессию после окончания:
Установка модулей PowerCLI в Linux
Вы можете установить и использовать PowerCLI не только в Windows, но и в Linux. Сначала установите PowerShell Core в ваш дистрибутив Windows, а затем выполните следующие команды в консоли для установки VMware PowerCLI:
pwsh
Install-Module -Name VMware.PowerCLI

Импортируйте модуль в сессию:
Основные команды PowerCLI для управления VMware vSphere и виртуальными машинами
Список командлетов в модулях PowerCLI можно получить так (доступно более 2200 команд):
Get-Command –Module *vmware*

Чтобы при запуске модуля не появлялось предложение сбора данных через VMware Customer Experience Improvement Program (CEIP), можно отключите это уведомление:
Set-PowerCLIConfiguration -Scope AllUsers -ParticipateInCeip $false
Для подключения к vCenter Server или конкретному хосту ESXi:
Если вы используете для сервера vCenter самоподписанный SSL сертификат, то PowerCLI запретит подключение:
Connect-VIServer Error: Invalid server certificate. Use Set-PowerCLIConfiguration to set the value for the InvalidCertificateAction option to Prompt if you'd like to connect once or to add a permanent exception for this server. Additional Information: Could not establish trust relationship for the SSL/TLS secure channel with authority.
Чтобы игнорировать самоподписанные сертификаты:
Set-PowerCLIConfiguration -Scope AllUsers -InvalidCertificateAction Warn
Вывести список виртуальных машин, которые зарегистрированы на вашем сервере ESXi (или vCenter):
Вывести только отключенные ВМ:
Get-VM | Where | Select Name, VMHost, NumCPU, MemoryMB, Version|Format-Table

Запустить виртуальную машину:
Start-VM -VM TestVM01
Корректная перезагрузка ВМ (через агента VMware tools):
Restart-VMGuest -VM TestVM01 -Confirm:$False
Shutdown-VMGuest -VM TestVM01 -Confirm:$False
Вывести список снапшотов для конкретной ВМ:
Get-VM| Get-Snapshot| Format-List
Чтобы переместить запущенную ВМ на другой хост с помощью VMotion используется команда Move-VM. Например, мы хотим перенести все ВМ с хоста msk-esxi1 на msk-esxi2:
Get-VMHost msk-esxi1|Get-Vm| Move-VM –Destination (Get-VMHost msk-esxi2)
Чтобы создать новую виртуальную машину используется командлет New-VM:
New-VM –Name testVM -VMHost msk-esxi1 –ResourcePool Production –DiskGB 10 –DiskStorageFormat Thin –Datastore MSA2000_2_Prod1
Чтобы изменить настройки виртуальной машины, используйте Set-VM .
С помощью командлетов PowerCLI можно взаимодействовать с гостевыми операционными системами виртуальных машин. Для этого в ВМ должны быть установлены VMware Tools. Вы можете обновить VMware Tools так:
Get-VMGuest VMname1 | Update-Tools
С помощью Invoke-VMS можно выполнить скрипт в гостевой ОС с Windows:
$script = ‘»%programfiles%\Common Files\Microsoft Shared\MSInfo\msinfo32.exe» /report «%tmp%\inforeport»‘
Invoke-VMScript -ScriptText $script -VM msk-dc01 -HostCredential $hostCred -GuestCredential $msk-dc01Cred -ScriptType Bat
Или можно скопировать файл на все ВМ:
Чтобы скопировать определенный файл на все ВМ, выполните команду:
Get-VM | Copy-VMGuestFile -Source C:\PS\get-info.ps1 -Destination C:\PS\ — LocalToGuest -GuestUser administrator -GuestPassword p@$$w0rdes2
В модуле есть командлеты для управления кластерами, датацентрами, хранилищами и хостами ESXi:
Вывести список ESXi хостов в кластере:
Get-Cluster mskprod1 | Get-VMHost | sort name
Перевести определенный хост ESXi в режим обслуживания:
Set-VMhost -VMHost msk-esxi1 -State Maintenance
Подключить iSCSI LUN к хосту ESXi и создать на нем VMFS хранилище:
Get-ScsiLun -VmHost msk-esxi1 | ft
New-Datastore -Name ‘new-datastore’ -VMHost msk-esxi1 -Path naa.6000xxxxxxxxxxxxxxxx -Vmfs
Информация. PowerCLI работает в режиме только чтения (read-only) с бесплатным VMware vSphere Hypervisor. Это означает, что вы использовать команды для просмотра свойств хоста и ВМ, но не сможете их изменить.
Примеры скриптов PowerCLI
На сайте есть несколько примеров использования PowerCLI для получения информации об элементах инфраструктуры VMware и автоматизации некоторых действий. Вы можете использовать примеры из этих статей в качестве основы для ваших скриптов PowerCLI:
- Проверка свободного места на VMFS хранилищах
- Сопоставить диски в ВМ Windows с vmdk дисками
- Поиск ВМ по IP или MAC адресу
- Настройка параметров SNMP на хостах VMware ESXi
- Перезапуск зависшей виртуальной машины на VMware
- Установка обновлений Windows в шаблоны виртуальных машин
- Бэкап/восстановление конфигурации ESXi хостов
- Интеграция драйверов в установочный образ ESXi
- Поиск ВМ со статусом Virtual Machine disks consolidation is needed
- Обновление версии vm hardware
- Настройка автозапуска виртуальных машин VMware
vSphere PowerCLI это мощный инструмент для управления и автоматизации инфраструктуры VMWare. В состав PowerCLI вход более 2000 командлетов для управления облачной и виртуальной инфраструктурой VMware (vSphere, vSAN, vRealize Operations Manager, vCloud Director, Site Recovery Manager, Horizon, NSX-T, VMware Cloud Services, VMware Cloud on AWS и т.д.).
Предыдущая статья Следующая статья
Установка и использование PowerCLI
В этой статье попытаюсь рассмотреть инсталляцию замечательного инструмента для администрирования и автоматизации управления виртуальной средой vSphere – PowerCLI. По правде сказать, PowerCLI поддерживает и может управлять не только vSphere, но и рядом других продуктов VMware, а именно:
- NSX-T
- VMware Cloud Director
- VMware vSAN
- VMware Site Recovery Manager
- vRealize Operations Manager
- VMware Horizon
- VMware Cloud on AWS
- VMware Hybid Cloud Extension
Но к сожалению, или к счастью данный список за пределами нашего топика, и мы сосредоточены на установке и базовом использовании PowerCLI.
Что такое PowerCLI? Это инструмент администрирования вышеописанных продуктов VMware из командной оболочки PowerShell, который после инсталяции добавляет множество дополнительных командлетов в PowerShell для работы с ними. Становиться очень удобно автоматизировать многие рутинные процессы и отчеты в инфраструктуре. Для базового администрирования vSphere PowerCLI не сильно подходит ввиду определенной сложности команд и времени, необходимом на их ввод в консоль.
Когда-то давно, во времена прекрасного C# vSphere Client и когда не выпускались патчи на vSphere пачками, да и в принципе все было безоблачнее, а зеленый цвет – зеленее, PowerCLI распространялся в виде MSI установочного файла, который можно было загрузить с официального сайта VMware, предварительно зарегистрировавшись на нем. Так было до версии 6.5. Но времена изменились и теперь мы имеем версию 12.1.0, а на дворе 2021 год, PowerCLI стал загружаемым модулем в составе PowerShell, и его установка сводится к импорту этого самого модуля средствами самого PowerShell, вместо запуска MSI. В данный момент установить PowerCLI можно на все платформы, поддерживающие и PowerShell, то есть и на Mac и на Linux помимо Windows. Посмотрим программные требования для PowerCLI на всех платформах:
| Тип ОС | Версия .NET | Версия PowerShell |
| Windows | .NET Framework 4.7.2 или новее | Windows PowerShell 5.1 или новее |
| Linux | .NET Core 3.1 | PowerShell 7 |
| macOS | .NET Core 3.1 | PowerShell 7 |
Рассмотрим два варианта установки PowerCLI. Первый вариант прост и подразумевает наличие на машине, на которой производится установка доступа в интернет, а второй – где интернета нет. В обоих случаях, если присутствует старая версия, установленная при помощи MSI файла, ее необходимо удалить через панель управления.
Установка PowerCLI на машину с интернетом
Как ясно из названия нам потребуется доступ в интернет и консоль PowerShell. Запускаем PowerShell от имени администратора и используем команду:
Install-Module -Name VMware.PowerCLI
Опционально можно использовать ключ, чтобы установить PowrCLI только для текущего пользователя:
Install-Module -Name VMware.PowerCLI -Scope CurrentUser
Если на нашей машине ранее не было установок модулей PowerShell из интернета, то скорее всего пошик ругнется на источник пакетов PSGellery и спросит, что делать, выбираем «Y» и продолжается установка. После завершения процесса инсталляции модуля PowerCLI убеждаемся, что все установилось и появились новые командлеты:
Get-Command -Module *VM*
Нам вывалится огромный список командлетов PowerCLI, что означает что установка прошла успешно и можно приступать к их использованию.
Установка PowerCLI на машину без интернета
Частенько в работе инженеров и администраторов возникает задача установить PowerCLI не имея выхода в мировую паутину, например разворачивая инфраструктуру где ни будь в вагончике в Сибири либо же по соображениям политик безопасности.
Нам потребуется загрузить ZIP архив с файлами модулей PowerCLI с официального сайта — https://code.vmware.com/web/tool/12.1.0/vmware-powercli . Скачиваем его. Затем нам нужно определить в какой директории расположены уже существующие модули PowerShell, это повлияет на то, куда нам нужно будет распаковать скачанный архив. В этом нам поможет команда:
$ENV:PSModulePath.Split(";")
Мы увидим список мест где у нас лежат модули пошика, у меня это:
C:\Users\User\Documents\WindowsPowerShell\Modules C:\Program Files\WindowsPowerShell\Modules C:\Windows\system32\WindowsPowerShell\v1.0\Modules
Если мы хотим, чтобы PowerCLI был доступен для всех пользователей данного компьютера, нам нужно распаковать скачанный архив в “C:\Program Files\WindowsPowerShell\Modules”, а если требуется что бы только текущий пользователь мог использовать PowerCLI, то наш выбор “C:\Users\%UserName%\Documents\WindowsPowerShell\Modules ”.
Если вы устанавливаете PowerCLI этим методом, то после того как вы распаковали содержимое архива по одному из путей выше, нужно разблокировать папки модулей командой:
Get-Childitem -Path 'C:\Program Files\WindowsPowerShell\Modules\VMware*' -Recurse | Unblock-File
В моем примере указан путь установки для всех пользователей, в вашем случае используйте тот куда вы распаковали.
Теперь проверяем ранее приведенной командой доступность командлетов PowerCLI.
Get-Command -Module *VM*
Видим, что они присутствуют и можем приступать к работе.
Как пользоваться PowerCLI
Теперь остановимся на использовании данного решения в администрировании. Итак, после того как мы установили PowerCLI и воспылали желанием его использовать, нам нужно подключиться к нашей инфраструктуре vSphere, это может быть, как vCenter так и одиночный хост ESXi. В случае хоста ESXi нужно учесть, что если он лицензирован бесплатной лицензией, то использовать PowerCLI с ним не получиться. Давайте начнем. Открываем консоль PowerShell и запускаем команду:
Connect-Viserver –Server
Эта команда подключает нас к инфраструктуре VMware. Нам сразу же всплывет окно для вывода логина и пароля и после успешной аутентификации мы будем подключены к vCenter или ESXi. Логин с паролем мы можем ввести вместе с командой:
Connect-Viserver –Server -User administrator@vsphere.local –Password VMware!23
Но это достаточно небезопасно. Можно использовать переменную для аутентификационных данных, а потом вставить ее в команду выше:
$cred=Get-Credentials Connect-Viserver –Server -Credentials $cred –SaveCredentials
В команде выше мы использовали ключ «–SaveCredentials», с помощью которого наши логин и пароль запоминаются PowerShell-ом и в последствии при подключении к этому vCenter нам нет необходимости повторно их вводить, если мы работаем на машине под тем же самым пользователем. Если вы подключаетесь к vCenter в первый раз, у которого нет доверенного сертификата, как это бывает в большинстве случаев, то добавьте ключ «–Force» в конец команды, что бы проверка сертификата игнорировалась. Или используйте предварительно команду ниже, чтобы определить будущую реакцию PowerCLI на не доверенные сертификаты.
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
После того как мы залогинились, можно приступать к работе. Что бы ознакомиться с доступными командами PowerCLI можно использовать команду ниже.
Get-Command -Module vmware*
И Мы увидим весь список доступных команд PowerCLI. С помощью следующей команды мы можем получить информацию о какой-либо интересующей нас команде, о ее синтаксисе и функционале.
Get-Help -Full
Get-Help Stop-VM –Full
Это отлично помогает разобраться в устройстве командлетов и подобрать нужный для ситуации. Запомнить все командлеты нереально, даже если вы пользуетесь PowerCLI и PowerShell постоянно, то и дело придется регулярно использовать Get-Help. Теперь рассмотрим базовые команды и примеры с ними.
Работа с VM
Для базовой работы с виртуальными машинами в vSphere используются командлеты, в составе которых есть «VM». Вот список этих команд:
Remove-VM New-VM Set-VM Move-VM Start-VM Stop-VM Suspend-VM Restart-VM
Думаю, понятно по названию команд что они делают. Давайте рассмотрим пару примеров. В примере ниже мы создадим VM с простой конфигурацией.
New-VM -Name new-vm -Location Folder-name -VMHost esxi-a-01 -Datastore datastore-a -DiskGB 256 -NumCpu 4 -MemoryMB 2048 -Portgroup vm-net
А теперь из шаблона с использование кастомизации.
New-VM -Template vm-template -OSCustomizationSpec linux-spec -Name new-vm -Location Folder-name -VMHost esxi-a-01 -Datastore datastore-a -Portgroup vm-net
Клонирование существующей виртуальной машины.
New-VM -VM 2016-template -Name new-vm -VMHost esxi-a-01 -Datastore datastore-01 -Location Folder-name -VMHost esxi-a-01 -Portgroup vm-net
А теперь рассмотрим более интересный пример. У PowerShell есть много прекрасных свойств и одно из них — это работа с различными источниками данных, например, с CSV фалами. Для начала нам нужен CSV файл со списком VM и их требуемыми характеристиками. Например, такого состава.
| name | mem | cpu | gb |
| vm-01 | 2 | 2 | 128 |
| vm-02 | 4 | 2 | 256 |
Мы с помощью PowerShell импортируем содержимое файла в переменную, а затем циклом воспроизведем команду по созданию VM с параметрами из ее строки.
$csv=import-csv -Path 'C:\Temp\vms.csv' foreach ($vm in $csv)
Также возможно создать множество машин похожим способом, но с использованием XML файла как источника информации. Допустим мы имеем XML с таким содержанием.

Теперь загрузим его содержимое в переменную.
[xml]$xml = Get-Content C:\Temp\NewVM.xml
Затем создаем машину.
$xml.NewVM.VM | foreach
И вуаля… Можно усложнять у увеличивать количество данных в источнике информации, что придаст нам удобности и гибкости. Так же мы с помощью PowerCLI можем использовать недоступный из GUI инструмент – InstantClone, который используется в VMware Horizon для быстрого создания машин для развертывания VDI ресурсов. Об этом отлично написано в блоге Уильяма Лама .
Теперь сделаем с помощью PowerCLI список всех включенных машин и выгрузим его в CSV файл.
Get-VM | Where-Object | Export-Csv C:\Temp\vms.csv -NoTypeInformation -UseCulture -Force
Список машин, где не установлены VMware Tools или устарели.
get-vm | where | select name, @> | export-csv -path " C:\Temp\vms.csv"
Где подключен CD привод и отключим его.
Get-VM | Where-Object | Get-CDDrive | FT Parent, IsoPath Get-VM | Where-Object | Get-CDDrive | Set-CDDrive -NoMedia -Confirm:$False
Список снепшотов. О это моя любимая тема. Когда инфраструктура большая и множество людей имеют доступ к vSphere, в промышленных масштабах растет и количество создаваемых снепшотов, которые нам как администратору приходиться вовремя удалять.
get-vm | get-snapshot | select vm, name, sizegb | ft -AutoSize
Управление хостами ESXi
Рассмотрим примеры управлением ESXi хостами. Для этого нам понадобятся команды с именами «VMHost».
Add-VMHost Move-VMHost Remove-VMHost Restart-VMHost Set-VMHost Start-VMHost Stop-VMHost Suspend-VMHost
По названиям команд нетрудно определить их назначение.
Введем хост в Maintenance Mode.
Set-VMhost -VMHost esxi-a-01 -State Maintenance
Переместим хост в другой кластер, для этого предварительно нужно ввести его в Maintenance.
Move-VMHost –VMHost esxi-a-01 –Destination ‘Cluster-B’
С остальными командами проблем думаю не должно быть, кроме того, что перед какими-то серьезными действиями хост должен быть переведен в Maintenance Mode.
Операции с хранилищами
Для работы с хранилищами vSphere есть следующие командлеты:
Get-Datastore Remove-Datastore Set-Datastore Move-Datastore
А также мы можем примонтировать с помощью PowerCLI одно или несколько датасторов к нашей машине и производить операции с ними, копировать файлы и так далее. В этом нам поможет нативный PSProvider VMware – VimDatastore.
$datastore=Get-datastore 'datatstore' New-PSDrive -Name Datastore -Location $datastore -Root "\" -PSProvider Vimdatastore
Проверим содержимое хранилища:
Get-ChildItem Datastore:\
Мы так же можем копировать файлы и папки между нашим примонтированным хранилищем vSphere и нашей машиной, что существенно облегчает это по сравнению с аналогичными действиями в GUI vSphere Client.
Copy-DatastoreItem -Item 'C:\Users\User\Downloads\TEMPLATE_RHEL_7_7_v2_2\*' -Destination Datastore:\TEMPLATE_RHEL_7_7_v2_2\
Теперь вернемся к более повседневным задачам администрирования vSphere и приведем пример создания нового хранилища NFS.
New-Datastore -Nfs -VMHost esxi-a-01 -Name NFSDatastore -Path /mynfs -NfsHost 10.10.10.3
Создание хранилища VMFS. Тут все немного сложнее, потому что нам нужно выбрать устройство для дальнейшей разметки в VMFS. А информацию об устройстве еще нужно получить, для определения устройства используется его идентификатор вида «naa.XXX XXX». Используем команду ниже и указываем хост, имеющий доступ к устройству.
Get-ScsiLun -VmHost esxi-a-02.lab.local | ft -AutoSize

Выделенное CanonicalName и есть нужный идентификатор устройства. Подсказка – используйте «Format—Table –Autosize» для того что бы получаемая информация целиком помещалась на экране консоли. Теперь используем следующую команду для создания хранилища.
New-Datastore -Name 'new-datastore' -VMHost esxi-a-02.lab.local -Path naa.60003ff44dc75adcb3b3ca5f12bc9aa8 -Vmfs
Итоги
PowerCLI это мощнейший инструмент для автоматизации виртуальной инфраструктуры VMware. Он очень гибок и удобен, а синтаксис достаточно понятен и легко запоминается. В некоторых случаях он представляет даже больше удобства и функционала чем другие продукты VMware, разработанные специально для автоматизации, это линейка vRealize, но у каждого из этих решений свое назначение и сравнивать их – неправильно. Функционал PowerCLI выходит намного дальше, чем те примеры, которые я привел в данной статье и писать о нем и приводить другие примеры можно бесконечно долго.
Об авторе
Какой то инженер по виртуализации. В данном контексте это не особо важно. Вы же не за этим сюда пришли, верно?
Как запустить powercli из powershell
You are using an outdated browser. Please upgrade your browser to improve your experience.
expand-card-line
calendar-line —>
Before you can manage vSphere Auto Deploy with rules that you create with PowerCLI cmdlets, you must install PowerCLI .
Prerequisites
- Select a version of PowerCLI compatible with your version of ESXi by using the VMware Product Interoperability Matrix .
- Check system requirements for the version of PowerCLI that you selected by using the Compatibility Matrix on the PowerCLI home page for the respective PowerCLI version.
- Open PowerShell on your workstation. In Windows Server configurations where PowerShell Gallery is not available by default, you must add the PowerShell Gallery as a trusted repository.
Procedure
- Download a version of PowerCLI later than PowerCLI 6.5R1 from the PowerCLI home page.
- To install all PowerCLI modules, run the command: Install-Module VMware.PowerCLI -Scope CurrentUser . Alternatively, you can install individual PowerCLI modules by running the Install-Module cmdlet with the module name.
If you see a warning that you are installing modules from an untrusted repository, press y and then press Enter to confirm the installation.
- Check the PowerShell Module path by using the command: $env:PSModulePath .
- Extract the contents of the ZIP file to one of the listed folders.
- Unblock the files by using the commands cd and Get-ChildItem * -Recurse | Unblock-File .
You can verify that the PowerCLI module is available by using the command Get-Module -Name VMware.PowerCLI* -ListAvailable .
What to do next
Configure the settings of your target hosts to prepare them for provisioning with vSphere Auto Deploy.
Как установить VMware PowerCLI?

VMware PowerCLI начиная с версии 6.5.1 больше не распространяется через MSI-файл для автоматической установки, последняя версия, которую можно использовать для автоматической установки осталась 6.5. Теперь установка выполняется через сам PowerShell.
Существует два способа установки PowerCLI с помощью нового метода: онлайн, который подходит для машин имеющих прямое подключение к сети Интернет и оффлайн, для машин без доступа в Интернет.
Чтобы приступить к установке новой версии VMware PowerCLI, необходимо сначала удалить старую версию, установленную с помощью MSI-файла, это можно сделать через панель управления. Для этого необходимо открыть панель управления, выбрать VMware PowerCLI и нажать правой кнопкой мыши и выбрать Uninstall.
После завершения работы мастера, стоит проверить, что папка «PowerCLI» была удалена из директории: C:\Program Files (x86)\VMware\Infrastructure\. По окончании удаления старой версией PowerCLI, можно приступать к установке новой версии.
Online установка PowerCLI на компьютере с доступом к сети Интернет
Для того чтобы выполнить установку VMware PowerCLI онлайн, потребуется выполнить следующие действия:
1. На компьютере с Интернет соединением запустить командную строку Powershell:
2. В открывшемся окне выполнить командлет:
Find-Module -Name VMware.PowerCLI
и убедиться, что модуль VMware.PowerCLI был найден в галерее PowerShell (PSGallery)
Примечание. Если ранее не было обращений к коллекции PowerShell, то может появиться сообщение о том, что существует отсутствующий или устаревший поставщик NuGet. NuGet-это поставщик управления пакетами. Они в основном используются для автоматической установки, обновления, настройки и/или удаления программного обеспечения. Чтобы принять установку правильной версии NuGet, необходимо нажать “Y».
3. Установить VMware.PowerCLI
Install-Module -Name VMware.PowerCLI -Scope CurrentUser

параметр Scope CurrentUser — указывает, что необходимо выполнить установку модуля только для текущего пользователя (это не требует привилегий администратора)
После успешной установки модулей можно проверить доступность набора команд VMware, например при помощи командлета:
Get-Command -Module *VM*
Offline устанока PowerCLI на компьютере без Интернет
Для того чтобы выполнить установку VMware PowerCLI на компьютере, где отсутствует подключение к сети Интернет, необходимо выполнить следующее:
1. На компьютере с Интернет соединением запустить командную строку Powershell:
2. В открывшемся окне выполнить командлет:
Find-Module -Name VMware.PowerCLI
и убедиться, что модуль VMware.PowerCLI был найден в галерее PowerShell (PSGallery)
2. Сохранить обнаруженный модуль VMware.PowerCLI в локальную папку, выполнить командлет:
Save-Module -Name VMware.PowerCLI -Path
- C:\Windows\System32\WindowsPowerShell\v1.0\Modules — если необходимо, чтобы доступ к этому модулю имели все пользователи и у вас есть административные права на целевой машине
- C:\Users\%UserName%\Documents\WindowsPowerShell\Modules — если необходимо, чтобы доступ к этому модулю имел только пользователь из под которого выполняется установка