Script to list the MAC addresses of virtual machines
#Author: Phil Lindsey
#Website: http://www.ctxfarmer.com
#Last Modified: 11/4/2010
param(
[Parameter(Mandatory=$true)]
[string]$Xenservers
)
$creds = Get-Credential
Add-PSSnapin XenServer* -ErrorAction SilentlyContinue
foreach($XenServer in $Xenservers.Split(",")){
Connect-XenServer -Url http://$XenServer -NoWarnCertificates -Creds $creds
$VMs = Get-XenServer:VM | Where-Object {$_.is_a_snapshot -eq $false -and $_.is_a_template -eq $false -and $_.is_control_domain -eq $false}
foreach($VM in $VMs){
$VMName = $VM.name_label
$VIFs = Get-XenServer:VM.VIFs -VM $VM
if($VIFs.Count -eq "" -or $VIFs.Count -gt 1){
foreach($VIF in $VIFs){
$MAC = $VIF.MAC
$VMName+","+$MAC
}
}else{
$MAC = $VIFs.MAC
$VMName+","+$MAC
}
}
Disconnect-Xenserver
}