首页 > 其他分享 >PowerCli批量管理多个vCenter

PowerCli批量管理多个vCenter

时间:2022-11-24 16:36:03浏览次数:44  
标签:ps1 VIServer vc 批量 指定 PowerCli vCenter csv login

实测软件平台版本
VMware vSphere: 7.0u3/6.7u3混合
VMware ESXi: 7.0u3/6.7u3混合
Powershell:5.1.17763.2090
VMware Powercli:12.7.0-20091289

使用场景:多版本共存环境;管理混乱的环境;没有云管平台的环境;其他各种甲方坑爹的环境

批量连接到vCenter

创建密码表

使用excel创建csv文件,保存为vc_login.csv,格式如下图,注意首行标题,需要与登录脚本中调用的属性保持一致,注意保障密码文件安全性

创建登录脚本

创建登录脚本文件login_to_all_vc.ps1,内容如下:

# 读取密码表
$vc_login_infos = Import-Csv .\vc_login.csv
# 循环密码表依次登录到每一个vc
foreach($vc_login_info in $vc_login_infos)
{
Connect-VIServer -server $vc_login_info.serverip -Protocol https -force -user $vc_login_info.username  -password $vc_login_info.password
}

日常使用可以直接执行./login_to_all_vc.ps1之后,手动使用get-vm等基本查询命令了。使用完成后最好登出用户。

创建登出脚本

创建登出脚本文件logout_from_all_vc.ps1,内容如下:

# 登出所有已连接的vCenter
Disconnect-VIServer -Server * -Force

批量导出所有虚拟机信息

#调用登录脚本
./login_to_all_vc.ps1
#获取所有vm信息并导出到csv
$all_vm_infos = get-vm
$all_vm_infos | select name, VMHost, PersistentId, uid, numcpu, memoryGB, UsedSpaceGB, powerstate, @{N="IPAddress0";E={@($_.guest.IPAddress[0])}}, @{N="IPAddress1";E={@($_.guest.IPAddress[1])}}, @{N="IPAddress2";E={@($_.guest.IPAddress[2])}}, @{N="MainIp";E={@($_.CustomFields.Values[2])}}, Notes| Export-Csv -Encoding utf8 -path vminfo.csv
# 调用登出脚本
./logout_from_all_vc.ps1

导出csv成功之后,就可以方便的用excel处理结果了,直达宇宙的尽头

命令介绍

Connect-VIServer

选项 参数形式 说明
Server 字符串或列表 指定要连接的服务器,IP地址或列表
Force 忽略证书
User 指定用户名
Password 指定密码
Port 整数 指定访问端口,80 或 443等
Protocol 字符串 指定连接协议,http 或 https
Session 字符串 指定已存在的连接ID,重新连接

Disconnect-VIServer

选项 参数形式 说明
Server 字符串或列表 指定要断开连接的服务器,IP地址或列表,可以是通配符*
Force SwitchParameter 关闭到服务器的所有连接,如果值为$false则只关闭最后一个连接

Get-Vm

选项 参数形式 说明
Name String[] 指定要查询的虚拟机名称
Datastore StorageResource[] 指定要查询的Datastore范围,支持管道
Server VIServer[] 关指定要查询的VIServer范围
Tag Tag[] 指定要查询的虚拟机标签

Export-Csv

选项 参数形式 说明
Append SwitchParameter 使用此参数可将 CSV 输出添加到指定文件的末尾。 如果没有此参数,请将文件内容替换为警告
Delimiter char 指定分隔符以分隔属性值。默认值为逗号,若要指定分号,请将它括在引号中
Encoding char 为导出的 CSV 文件指定编码。 默认值为 utf8NoBOM
Force SwitchParameter 此参数允许覆盖只读文件
Path String 必需参数,指定保存 CSV 输出文件的位置

标签:ps1,VIServer,vc,批量,指定,PowerCli,vCenter,csv,login
From: https://www.cnblogs.com/a-dog/p/16922217.html

相关文章