$days = 5 # Number of days back
$tasknumber = 999 # Windowsize for task collector
$eventnumber = 100 # Windowsize for event collector
$report = @()
$taskMgr = Get-View TaskManager
$eventMgr = Get-View eventManager
$filter = New-Object VMware.Vim.TaskFilterSpec
$filter.Time = New-Object VMware.Vim.TaskFilterSpecByTime
$filter.Time.beginTime = (Get-Date).AddDays(-$days)
$filter.Time.timeType = "startedTime"
$tcollection = Get-View ($taskMgr.CreateCollectorForTasks($filter))
$dummy = $tcollection.RewindCollector
$tasks = $tcollection.ReadNextTasks($tasknumber)
$tasks | Where-Object {$_.DescriptionId -like "Drm*"} | Sort-Object StartTime | % {
$row = "" | Select vmName, StartTime, State, From, To
$row.StartTime = $_.StartTime
$row.vmName = $_.EntityName
$row.State = $_.State
$efilter = New-Object VMware.Vim.EventFilterSpec
$efilter.eventChainId = $_.EventChainId
$ecollection = Get-View ($eventMgr.CreateCollectorForEvents($efilter))
$events = $ecollection.ReadNextEvents($eventnumber)
foreach($event in $events){
switch($event.GetType()){
"VMware.Vim.DrsVmMigratedEvent" {
$row.From = $event.SourceHost.Name
}
"VMware.Vim.VmBeingHotMigratedEvent"{
$row.To = $event.DestHost.Name
}
}
}
$report += $row
# By default 32 event collectors are allowed. Destroy this event collector.
$ecollection.DestroyCollector()
}
$report | Export-Csv "C:\DRS-vmotion.csv" -NoTypeInformation -UseCulture
# By default 32 task collectors are allowed. Destroy this task collector.
$tcollection.DestroyCollector()
Online access to the latest VMworld Sessions & Labs and online services.
Learn morePurchase credits to redeem training and consulting services online.
Buy Now