Запрос объектов

После подключения к организации вы получаете доступ к ее объектам (vApp, VM, каталоги, сети, шаблоны и др.). Объекты можно фильтровать, сортировать и искать по ключевым словам. Также можно выводить объекты, подходящие под определенное условие.

Примеры запросов для знакомства с возможностями PowerCLI:

См.также

Все доступные командлеты смотрите в документации VMware.

Запрос VM по ее названию

Чтобы найти VM, которая называется CentOS8, запустите следующую команду в консоли PowerShell.

PowerShell
Get-CIVM -Name CentOS8
Output
Name      Status       GuestOSFullName     CpuCount   Memory GB
----      ------       ---------------     --------   ---------
CentOS8   PoweredOff   CentOS 8 (64-bit)   2          2,0

Запрос всех свойств VM

Чтобы отобразились все свойства VM, запросите вывод в виде списка. Добавьте к команде, используемой выше, оператор конвейера | и команду Format-List.

PowerShell
Get-CIVM -Name CentOS8 | Format-List
Output
ExtensionData   : VMware.VimAutomation.Cloud.Views.Vm
Status          : PoweredOff
Deleted         : False
GuestOsFullName : CentOS 8 (64-bit)
CpuCount        : 2
MemoryMB        : 2048
MemoryGB        : 2
VMVersion       : v14
Org             : Org-Name
OrgVdc          : VDC-Name
VApp            : vApp-Name
Description     :
Href            : https://vcd.sbercloud.ru/api/vApp/vm-27bee2...
Id              : urn:vcloud:vm:27bee2...
Name            : CentOS8
Uid             : /CIServer=admin:sbercloud_tenant@vcd.sbercloud.ru:443/CIVM=urn:vcloud:vm:27bee2.../

См.также

Запрос сетей, присвоенных VM

Чтобы получить список сетей, присвоенных VM, запустите следующую команду в консоли PowerShell.

PowerShell
Get-CIVM -Name CentOS8 | Get-OrgNetwork
Output
Name   Gateway       Org                ExternalNetwork   NetworkType
----   -------       ---                ---------------   -----------
Net    192.168.1.1   SberCloud_tenant                     Routed

См.также

Другие параметры VM, которые можно запросить — в разделе Get-CIVM документации VMware.

Cортировка шаблонов vApp

Запросите список шаблонов vApp, добавив следующие требования:

  • отсортировать шаблоны по размеру (параметр «StorageUsedGB»);

  • вывести последние пять значений.

PowerShell
Get-CIVAppTemplate | Sort-Object -Property StorageUsedGB | Select-Object -Last 5
Output
Name             Status       Owner    StorageUsedGB
----             ------       -----    -------------
Fedora-x64-29    PoweredOff   system   16,000
Ubuntu 18.04     PoweredOff   system   32,000
Ubuntu 19.04     PoweredOff   system   32,000
Debian 9 x64     PoweredOff   system   32,000
ECS-Sync-3.2.7   PoweredOff   system   200,000

См.также

Фильтрация VM

Запросите список VM, добавив следующие фильтры:

  • вывести VM из vApp с названием My-vApp;

  • вывести VM со статусом PoweredOn или Suspended;

  • вывести параметры VM: Name, VApp, Status, CpuCount, MemoryGB.

PowerShell
Get-CIVM -VApp My-vApp -Status "PoweredOn", "Suspended" | Select Name, VApp, Status, CpuCount, MemoryGB
Output
Name     : VM-1
VApp     : My-vApp
Status   : PoweredOn
CpuCount : 2
MemoryGB : 1

Name     : VM-2
VApp     : My-vApp
Status   : Suspended
CpuCount : 2
MemoryGB : 1

Подсказка

Чтобы данные выводились в формате таблицы, добавьте к запросу | Format-Table.

Поиск MAC-адресов VM по ключевому слову

Рассмотрим поиск VM с MAC-адресами, в которых есть строка «00:50:56:01:a4:». Искать таким образом можно по параметрам типа String.

  1. Запросите список сетевых адаптеров VM, поскольку MAC-адрес является параметром сетевого адаптера VM.

  2. Настройте вывод названия VM и MAC-адреса.

  3. Добавьте поиск тех MAC-адресов, в которых есть строка «00:50:56:01:a4:».

PowerShell
Get-CIVM | Get-CINetworkAdapter| Select VM, MACAddress | Select-String -Pattern '00:50:56:01:a4:'
Output
@{VM=VM-1; MACAddress=00:50:56:01:a4:a5}
@{VM=VM-3; MACAddress=00:50:56:01:a4:9a}

См.также

Select-String

Запрос сетей организации с условием

Запросите список сетей организации, для которых должны одновременно выполняться следующие условия:

  • сеть размещается в виртуальном ЦОД с названием vdc01;

  • тип сети — не Routed.

PowerShell
Get-OrgVdcNetwork | Where-Object {$_.OrgVdc.Name -eq "vdc01" -and $_.NetworkType -NotLike "Routed"}
Output
Name    OrgVdc   DefaultGateway   NetworkType
----    ------   --------------   -----------
Net-1   vdc01    192.168.100.1    Isolated

Операторы сравнения

Оператор сравнения

Значение

Пример

-eq

Равно

1 -eq 1

-ne

Не равно

1 -ne 2

-lt

Меньше

1 -lt 2

-le

Меньше или равно

1 -le 2

-gt

Больше

2 -gt 1

-ge

Больше или равно

2 -ge 1

-like

Совпадает

«VM-1» -like » *-?»

-notlike

Не совпадает

«VM-1» -notlike «VM?»

-contains

Содержит

1,2,3 -contains 1

-notcontains

Не содержит

1,2,3 -notcontains 4

Логические операторы

Логический оператор

Значение

Пример

-and

И

(1 -eq 1) -and (2 -eq 2)

-or

ИЛИ

(1 -eq 1) -or (1 -eq 2)

-not

НЕ

-not (1 -eq 2)

!

НЕ

! (1 -eq 2)

См.также

Where-Object