//
you're reading...

Powershell

Using XenServer SDK for Powershell to list virtual machine MAC addresses

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
}