Задача: разобрать, как подключиться к ESXi, включить определенную VM, а после подключиться к ней с указанными учетными данными.
В наличии есть ESXi версии 5.0.0 (Build914586), а также VM: srv-wsus которую нужно включить на данном хосте.
Приступаю к решению поставленной задачи:
Скачиваю с сайта vmware.com (потребуется зарегистрированный аккаунт) версию командного интерпретатора PowerCLI версии 5.0, после устанавливаем, в процессе установки нет ничего сложного, даже не подготовленный пользователь в этом сможет разобраться. Шаги: Далее (Next)– Далее (Next) – Далее (Next).
Запускаю командную оснастку:
Пуск – Все программы – Vmware – VMware vSphere PowerCLI – (т.к. моя система x64, то запускаю) – VMware vSphere PowerCLI, но после обнаруживаю, что в моей системе запрещено выполнение скриптов. Обычно так сделано по умолчанию,
Не удается загрузить файл C:\Program Files (x86)\VMware\Infrastructure\vSphere
PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1, таккак выполнение скрипто
в запрещено для данной системы. Введите “get-help about_signing” для получения
дополнительных сведений.
строка:1 знак:2
+ . <<<< “C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Script
s\Initialize-PowerCLIEnvironment.ps1″
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
Чтобы разрешить запуск скриптов воспользуемся моей заметкой:
PS C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI> set-executionpolicy remotesigned
Изменение политики выполнения
Политика выполнения обеспечивает защиту компьютера от ненадежных скриптов.
Изменение политики выполнения может подвергнуть компьютер риску нарушения
системы безопасности, как описано в разделе справки, вызываемом командой
about_Execution_Policies. Изменить политику выполнения?
[Y] Да – Y [N] Нет – N [S] Приостановить – S [?] Справка
(значением по умолчанию является “Y”):Y
Теперь авторизуюсь на моём ESXi:
PS C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI> cd c:\
Для справки: пользователь ekzorchik состоит в группе root и обладает полными правами к данному хосту.
PS C:\> connect-viserver -server 192.168.0.7 -protocol https -user ekzorchik -password 712mbddr@
ПРЕДУПРЕЖДЕНИЕ: There were one or more problems with the server certificate:
* The X509 chain could not be built up to the root certificate.
* The certificate’s CN name does not match the passed value.
Certificate: [Subject]
OID.1.2.840.113549.1.9.2=”1404297297,564d7761726520496e632e”,
CN=localhost.localdomain, E=ssl-certificates@vmware.com, OU=VMware ESX Server
Default Certificate, O=”VMware, Inc”, L=Palo Alto, S=California, C=US
[Issuer]
O=VMware Installer
[Serial Number]
00A55B506FA329
[Not Before]
02.07.2014 14:34:58
[Not After]
31.12.2025 14:34:58
[Thumbprint]
433C98F28662EF8411EA14A303617BA6CFDCA791
The server certificate is not valid.
ПРЕДУПРЕЖДЕНИЕ: THE DEFAULT BEHAVIOR UPON INVALID SERVER CERTIFICATE WILL
CHANGE IN A FUTURE RELEASE. To ensure scripts are not affected by the change,
use Set-PowerCLIConfiguration to set a value for the InvalidCertificateAction
Name Port User
—- —- —-
192.168.0.7 443 ekzorchik
PS C:\>
Выведем, какие виртуальные машины есть на данном хосте:
PS C:\> get-vm
Name PowerState Num CPUs MemoryGB
—- ———- ——– ——–
1C_83 PoweredOn 8 20,000
vmwHost0 PoweredOff 2 6,000
ELMEBETAL PoweredOn 1 2,000
KERIO PoweredOn 4 4,000
srv-wsus PoweredOn 2 2,000
srv-ad PoweredOn 2 2,000
CRM PoweredOn 4 2,000
CAD4 PoweredOn 1 1,000
Мне нужно включить VM: srv-wsus, она сейчас выключена, включаю:
PS C:\> get-vm | where-object {$_.Name -eq "srv-wsus"} | start-vm
Name PowerState Num CPUs MemoryGB
—- ———- ——– ——–
srv-wsus PoweredOn 2 2,000
Проверяю, что у данной VMпорт: 3389 открыт, через некоторое время после которого запустил виртуальную машину:
PS C:\> telnet srv-wsus 3389
В ответ консоль командной строки должна стать полностью черной, без каких либо символов, этим характеризуется, что VMвключилась и к ней уже можно подключиться через клиент удаленного подключения, делаю:
Чтобы передать через командную строку учетные данные воспользуюсь консольной утилитой входящей в стандартный набор консольных команд операционной системы Windows7 – это cmdkey, из справки возможности данной команды следующие: Создание, отображение, удаление и сохранение имен пользователей и паролей, ну что же продемонстрирую.
PS C:\> cmdkey /generic:TERMSRV/"srv-wsus" /user:"Administrator" /pass:"712mbddr@"
CMDKEY. Учетные данные добавлены успешно.
, если неправильно указали, к примеру, пароль, то удаляем учетные данные, так:
PS C:\> cmdkey /delete:TERMSRV/"srv-wsus"
CMDKEY. Учетные данные удалены успешно.
, если же учетные данные верны то подключаемся:
PS C:\> mstsc /v:"srv-wsus"
Из скриншота выше я наглядно демонстрирую, что удаленное подключение к системе с предопределенными учетными данными прошло успешно.
Можно сказать, что поставленная задача выполнена. Данная задача ставилась себе с целью последующего автоматизированного управления с одного места и посредством консольных утилиты, а не GUI’шный, т.к. в моем случае узнавая, как подключиться и обслуживать удаленные системы через консоль я получаю наивысшее удовольствие, мне это интересно. Стараюсь все делать через консоль, хотя сперва пробую через GUI интерфейс, а же после через консоль, но консоль потом становится на первом место. Вообщем-то все под данной заметки, до встречи, с уважением автор блога ekzorchik.
Спасибо большое, вот этот способ аутентификации с сохраненными учетными данными для RDP соединения мне очень был нужен, теперь не ставя никакой софт а используя лишь внутренности консольных системных утилит у меня все работает. Спасибо ekzorchik. Так держать.