使用 pyvmomi 更改访客密码

问题描述 投票:0回答:2

我正在使用 pyVmomi 进行自动化。现在我正在测试一个虚拟机,默认情况下SSH是禁用的,第一次登录时必须更改密码:

您需要立即更改密码(root强制)

如果我尝试使用 pyVmomi 的

StartProgramInGuest
连接,我会得到
vim.fault.InvalidGuestLogin
异常:

无法使用提供的凭据通过来宾操作系统进行身份验证

我正在寻找一种以编程方式更改默认密码的方法,(最好)使用 pyVmomi

python vmware pyvmomi
2个回答
0
投票

首先,您在调用“StartProgramInGuest”函数时似乎未能传递正确的凭据,您可以使用 名称-密码身份验证 指定凭据并将其传递给此函数,如下所示。

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

对此进行测试并确保您成功通过了来宾虚拟机的身份验证。成功进行身份验证后,您可以使用进程管理器创建 Linux 进程或 Windows 进程来更改密码。例如,下面是在 Windows 10 虚拟机上测试的 PowerShell 进程,通过 StartProgramInGuest 执行。

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

如果您需要任何说明,请告诉我!


0
投票

我也有同样的问题。凭据是正确的,但问题是机器不会为您(或 pyvmomi,如果通过自动化完成)提供成功登录后的提示访问权限。相反,它会强制您更改密码,我认为 pyvmomi 除了提示之外不会期望其他内容。如果登录后没有“看到”提示,则“认为”登录不正确。 有没有办法强制 pyvmomi 在发送登录数据后发送其他内容(字符串列表)而不等待提示?

© www.soinside.com 2019 - 2024. All rights reserved.