如何带参数执行VMware vSphere获取虚拟机名称的Python脚本?
正确执行pyvmomi虚拟机名称获取脚本的方法
你遇到的错误是因为没提供脚本要求的必填参数,从报错信息里就能看出来,-u/--user是必须填写的,另外脚本还要求-s/--host(你之前用的--host其实对应脚本里的-s参数,看usage提示就能明白)。
我给你整理下完整的执行步骤和命令:
1. 明确必填参数
脚本运行时必须提供两个核心参数:
-s:你的vSphere(ESXi或vCenter)的IP地址或域名-u:vSphere的登录用户名(比如administrator@vsphere.local这类格式)
密码参数-p虽标记为可选,但如果不填,脚本通常会交互式提示你输入,当然也可以直接在命令行指定。
2. 完整命令示例
替换成你的实际信息就能直接用:
python3 test2.py -s 你的vSphere主机IP -u 你的登录用户名 -p 你的登录密码
举个实际场景的例子:
python3 test2.py -s 192.168.1.100 -u administrator@vsphere.local -p MySecurePass123!
3. 可选参数说明
如果有特殊需求,还可以加上这些可选参数:
-o PORT:如果vSphere用了非默认端口(默认是443),比如-o 8443-S:启用SSL证书验证(脚本默认用SmartConnectNoSSL跳过验证,适合测试环境;生产环境建议开启这个参数保证安全)
4. 无明文密码的执行方式
不想在命令行暴露密码的话,去掉-p参数即可,脚本会自动提示你输入密码:
python3 test2.py -s 192.168.1.100 -u administrator@vsphere.local
运行后会看到类似Enter password:的提示,输入密码回车就好。
这样执行后,脚本就能通过SmartConnectNoSSL成功连接到vSphere,遍历并输出所有虚拟机的名称啦。
内容的提问来源于stack exchange,提问作者Erica
相关产品推荐
相关产品推荐

