PowerCLI批量操作虚拟机

1.Windows以管理员身份打开PowerShell

2.在线安装PowerCLI

Install-Module -Name VMware.PowerCLI -Scope CurrentUser

3.忽略证书验证

Set-PowerCLIConfiguration -InvalidCertificateAction Ignore

4.设置可执行远程脚本

Set-ExecutionPolicy RemoteSigned

5.连接至Vcenter

Connect-VIServer -Protocol https -User 'username@domain.com' -Password 'password' -Server x.x.x.x

6.准备excel变量清单,格式如下

7.在放置脚本和excel文件目录下开启PowerShell,执行如下脚本

$vms = Import-CSV .\VMlist.csv
 
foreach ($vm in $vms){
 
      $Template = Get-Template $vm.template
 
      $VMHost = Get-VMHost $vm.host
 
      $Datastore = Get-Datastore $vm.datastore

      New-VM -Name $vm.name -Template $Template -VMHost $VMHost -Datastore $Datastore -RunAsync

}

附:

① 如克隆linux模板后,有开机执行脚本进行批量修改需求,可执行类似如下脚本,excel中同样需添加新增获取的变量。在虚拟机执行脚本需要vmtools支持

$vms = Import-CSV .\VMlist.csv
 
foreach ($vm in $vms){
 
      $Template = Get-Template $vm.template
 
      $VMHost = Get-VMHost $vm.host
 
      $Datastore = Get-Datastore $vm.datastore

      New-VM -Name $vm.name -Template $Template -VMHost $VMHost -Datastore $Datastore -RunAsync

      Start-Sleep -s 15

      Get-VM $vm.Name | Start-VM

      Start-Sleep -s 45

      $cfgnet='sed  -i "21s/dhcp/static/g" /etc/config/network && sed -i "21a\ \toption ipaddr '+$vm.ip+'" /etc/config/network && sed -i "23s/0.0.0.0/255.255.192.0/g" /etc/config/network && sed -i "23a\ \toption gateway '+$vm.gateway+'" /etc/config/network && /etc/init.d/network restart'

      Get-VM $vm.Name | Invoke-VMScript -ScriptText $cfgnet

}

② 如需进行批量从Datastore删除,可执行类似如下脚本

$vms = Import-CSV .\VMList.csv
 
foreach ($vm in $vms){

      Remove-VM $vm.name -DeletePermanently -RunAsync

}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值