Изменить гостевой пароль с помощью pyvmomi

Я использую pyVmomi для своей автоматизации. Сейчас я тестирую виртуальную машину, где SSH отключен по умолчанию, и я должен изменить пароль при первом входе в систему:

Вам необходимо немедленно сменить пароль (используется root)

Если я попытаюсь подключиться с помощью StartProgramInGuest pyVmomi, я получу исключение vim.fault.InvalidGuestLogin:

Не удалось пройти аутентификацию в гостевой операционной системе с использованием предоставленных учетных данных.

Я ищу способ программно изменить пароль по умолчанию (предпочтительно) с помощью pyVmomi


person Arik    schedule 23.11.2020    source источник
comment
Что касается ошибки, похоже, что это ошибка входа в гостевую систему из-за ошибки пользователя или пароля. Вы не ошиблись с пользователем и паролем для гостя?   -  person sky_jokerxx    schedule 24.11.2020
comment
Учетные данные в порядке. Я думаю, что vmware не имеет такого типа ошибки. Это слишком конкретно.   -  person Arik    schedule 24.11.2020


Ответы (1)


Для начала, похоже, что вы не смогли передать правильные учетные данные при вызове функции StartProgramInGuest, вы можете указать и передать учетные данные этой функции, используя Аутентификация по имени и паролю, как показано ниже.

creds = vim.vm.guest.NamePasswordAuthentication(username='username', password='password)

Протестируйте это и убедитесь, что вы успешно прошли аутентификацию на гостевой виртуальной машине. После успешной аутентификации вы можете использовать Диспетчер процессов, чтобы создать процесс Linux или процесс Windows для смены пароля. Например, вот процесс PowerShell, протестированный на виртуальной машине Windows 10 и запущенный через StartProgramInGuest.

 argument= vim.vm.guest.ProcessManager.ProgramSpec(programPath='powershell.exe -Command', arguments='"& {net user  loginid  newpassword;}"')
 res = pm.StartProgramInGuest(vm, creds, argument)

Дайте мне знать, если вам нужны какие-либо разъяснения!

person basic197    schedule 26.03.2021