1、统计虚拟机MAC地址
1.1统计所有虚拟机的MAC地址等信息
#连接VC
connect-viserver -server 1.1.1.1 -user administrator -password Vmware1!
#获取所有VM信息
$VMs = Get-VM *
#循环遍历所有虚拟机MAC地址信息
$vmmac = foreach ($VM in $VMs){
Get-vm $vm | get-view |
Select @{N="虚拟机名称";E={(get-vm $vm).name}},
@{N="IP地址";E={(get-vm $vm).Guest.IPAddress[0]}},
@{N='MacAddress';E={($_.Config.Hardware.Device | where{$_ -is [VMware.Vim.VirtualEthernetCard]}).MacAddress -join '|'}}
}
#导出统计信息,包括虚拟机名称、IP地址、MacAddress
$vmmac | Export-Csv C:\vmep-mac.csv -NoTypeInformation -UseCulture -Encoding UTF8
=====================================================================
1.2、统计指定虚拟机vm001到vm004虚拟机mac地址,以csv文件方式输入虚拟机信息
maccwb.csv文件中仅有1列,列名字name,具体如下:
name
vm001
vm002
vm003
vm004
#导入CSV文件
$mac =Import-Csv C:\yili\maccwb.csv
#从csv文件中获取虚拟机名称
$VMs = get-vm -name $mac.name
#循环遍历制定虚拟机的MAC地址信息
$vmmac = foreach ($VM in $VMs){
Get-vm $vm | get-view |
Select @{N="虚拟机名称";E={(get-vm $vm).name}},
@{N="IP地址";E={(get-vm $vm).Guest.IPAddress[0]}},
@{N='MacAddress';E={($_.Config.Hardware.Device | where{$_ -is [VMware.Vim.VirtualEthernetCard]}).MacAddress -join '|'}}
}
#导出统计信息,包括虚拟机名称、IP地址、MacAddress
$vmmac | Export-Csv C:\yili\ccccwwwwbbbbmac.csv -NoTypeInformation -UseCulture -Encoding UTF8
2、更新Mac地址
<#ldmac.csv文件内容包括2列,vmname列和vmmac列,具体如下:
vmname,vmmac
vm001,11:22:33:44:55:01
vm002,11:22:33:44:55:02
vm003,11:22:33:44:55:03
vm004,11:22:33:44:55:04#>
#导入csv文件ldmac.csv
$ldmacs = import-csv C:\yili\macaddress\ldmac.csv
#遍历$ldmacs执行mac地址更改
foreach($ldmac in $ldmacs) {
Get-VM -name $ldmac.vmname | Get-NetworkAdapter | Set-NetworkAdapter -MacAddress $ldmac.vmmac -WakeOnLan:$true -RunAsync -Confirm:$false
}