powerCLI vm 管理
1、安装.NET 4.5依赖组件
2、安装VMware-PowerCLI-6.5.0
【常用操作】
1,连接vcenter:
Connect-VIServer -Server 192.168.1.20(vcenter的ip) -Username "Administrator@vsphere.local" -Password "XXXXXXXXXX"
2,批量创建:
foreach ($i in 1..7){ New-vm -vmhost 192.168.1.21(esxi主机的ip) -Name win7vm_$i -Template XXXXXXXXXX(模板名称) -Datastore p6300 }
3,批量启动:
foreach ($i in 1..3){Start-vm -vm tai5_$i }
4,批量关闭:
foreach ($i in 1..200){Stop-vm -vm a_$i -confirm:$false}
5,批量删除:
foreach ($i in 1..200){Remove-vm -vm tai_$i -confirm:$false -deletepermanently}
其中--deletepermanently永久删除
6,批量迁移:
foreach ($i in 1..200){move-vm -vm tai_$i -confirm:$false -datastore p6000}
【脚本操作】
-------------------------
$vcenterIP ="192.168.0.20"
#esxi的IP
$vmhost="192.168.0.21"
$dataStore="SAN_VOLUME_LAN1"
#使用的模版
$vmTemplate="win7-temp"
#计算机名的前缀,
$vmName_prefix="win7"
#计算机IP的前缀
$vmIP_prefix ="172.16.0"
$vmIP_mask ="255.255.255.0"
$vmIP_gateway ="172.16.0.254"
#虚拟机创建循环的步长
$vmIPstep =1
#虚拟机起始IP
$IPstart=10
#虚拟机结束IP
$IPEnd=12
#连接Vcenter的IP,帐号密码
Connect-VIServer -Server $vcenterIP -User xxxx -Password xxxx
#查找自定义规范管理器里的模版
$custSysprep = Get-OSCustomizationSpec | where {$_.name -like "win7profile"}
#虚拟机的存储路径
$Location = "XXXXXXXXX"
#设置当前虚拟机的网卡vlan
$NetworkName = "vlan120"
#开始IP
$i=$IPstart
while (($i -ge $IPstart) -and ($i -le $IPEnd))
{
#拼接计算机IP
$vmIP="$vmIP_prefix.$i"
#拼接计算机名称
$vmName="$vmName_prefix-$i"
#修改自定义规范管理器里的模版内容,使用静态IP方式,IP地址,IP子网掩码,和网关
$custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress $vmIP -SubnetMask $vmIP_mask -DefaultGateway $vmIP_gateway
#创建虚拟机,哪台ESXI,计算机名,模版,数据存储,自定义模版,以及创建到哪个文件夹下。
New-VM -vmhost $vmhost -Name $vmName -Template $vmTemplate -Datastore $dataStore -OSCustomizationspec $custSysprep -Location $Location
#设置当前虚拟机的网卡属于哪个vlan
Get-VM -Name $vmName | Get-NetworkAdapter | Set-NetworkAdapter -NetworkName $NetworkName -Confirm:$false
#启动当前虚拟机
Get-VM -Name $vmName | Start-VM
#继续循环
$i=$i+$vmIPstep
}
#恢复自定义规范管理器里的模版到默认。
$custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode PromptUser -SubnetMask $vmIP_mask -DefaultGateway $vmIP_gateway
-------------------------
【csv文件部署】
准备:创建*.csv类型的模板文件
参考:http://ju.outofmemory.cn/entry/225231
#连接VC
Connect-VIServer 10.129.63.42 -User 'administrator@vsphere.local' -Password 'VMware VCenter Login_Password'
#导入*.csv模板中虚机信息
$vms = Import-CSV C:\Scripts\NewVMs.csv
#创建虚拟机
foreach ($vm in $vms){
#获取模板信息
$Template = Get-Template $vm.template
#获取虚机存放主机位置
$VMHost = Get-VMHost $vm.host
#获取数据存放存储位置
$Datastore = Get-Datastore $vm.datastore
#获取虚机存放文件夹位置
$Folder = Get-Folder $vm.folder
#新建虚机
New-VM -Name $vm.name -Template $Template -VMHost $VMHost -Datastore $Datastore -Location $Folder -RunAsync
#开启新建虚机
Start-VM $vm.name
}
------山的那一边

浙公网安备 33010602011771号