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
}

  

posted @ 2019-01-11 12:17  山的那一边  阅读(286)  评论(0编辑  收藏  举报