VMware Cloud Community
LPLAdmin
Enthusiast
Enthusiast
Jump to solution

Vmotion Report How to modify to exempt a particular cluster

Hey guys,

 

How can I modify this script below to exempt a particular cluster from the report?

 

Import-Module VMware.VimAutomation.Core


if ($Global:DefaultVIServers){
$Global:DefaultVIServers | %{
Disconnect-VIServer $_.Name -WarningAction:SilentlyContinue -ErrorAction:SilentlyContinue -Confirm:$false | Out-Null
}

}

$domainUser = 'hidden'
$File = 'C:\temp\hidden.txt'
$domainUserCreds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $domainUser, (Get-Content $File | ConvertTo-SecureString)


#Connect-VIServer hidden -WarningAction:SilentlyContinue | Out-Null


$inv = @()
$date = Get-Date -Format "MM-dd-yyyy"
$reportFile = "C:\temp\vMotion_Report-$date.csv"
#$events = Get-VIEvent -maxsamples 1000000000 -Start (get-Date).AddHours(-25) -Finish (Get-Date) | Where-Object {($_.GetType()).Name -like "*VmMigratedEvent*"}
$events = Get-VIEvent -maxsamples 1000000000 -Start (get-Date).AddDays(-3) -Finish (Get-Date) | Where-Object {($_.GetType()).Name -like "*VmMigratedEvent*"}


foreach ($event in $events){

$eventType = ($event.GetType()).Name

if($eventType -like "*drs*"){
if($event.SourceDatastore.Name -ne $event.Ds.Name){
if($event.SourceHost.Name -ne $event.Host.Name){
$eventType = "DRS - Host & Datastore change event"
}
else{
$eventType = "DRS - Datastore change event"
}
}
else{
if($event.SourceHost.Name -ne $event.Host.Name){
$eventType = "DRS - Host change event"
}
else{
$eventType = "DRS - Nothing changed!"
}
}
}
else{
if($event.SourceDatastore.Name -ne $event.Ds.Name){
if($event.SourceHost.Name -ne $event.Host.Name){
$eventType = "Manual - Host & Datastore change event"
}
else{
$eventType = "Manual - Datastore change event"
}
}
else{
if($event.SourceHost.Name -ne $event.Host.Name){
$eventType = "Manual - Host change event"
}
else{
$eventType = "Manual - Nothing changed!"
}
}
}

$obj = "" | select Cluster, VM, "Time-EST", UserName, EventType, SourceHost, SourceDatastore, DestinationHost, DestinationDatastore

$obj.Cluster = $event.ComputeResource.Name
$obj.VM = $event.VM.Name
$obj."Time-EST" = $event.CreatedTime
$obj.UserName = $event.UserName
$obj.EventType = $eventType
$obj.SourceHost = $event.SourceHost.Name
$obj.SourceDatastore = $event.SourceDatastore.Name
$obj.DestinationHost = $event.Host.Name
$obj.DestinationDatastore = $event.Ds.Name

$inv += $obj

}

$inv | Export-Csv -NoTypeInformation $reportFile


$smtpServer = "hidden"
$smtpFrom = "hidden"
#$smtpTo = @("hidden")
$smtpTo = @("hidden")


$messageSubject = "Daily vMotion Report"
$messageBody = "Team,`n`nPlease find attached vMotion Report.`n`n`nRegards,`nVMware Team"
$Attachments = $reportFile

Send-MailMessage -From $smtpFrom -To $smtpTo -Subject $messageSubject -Body $messageBody -SmtpServer $smtpServer -Attachments $Attachments

 

Reply
0 Kudos
1 Solution

Accepted Solutions
LucD
Leadership
Leadership
Jump to solution

You could adapt the Where-clause after the Get-VIEvent.

$events = Get-VIEvent -maxsamples 1000000000 -Start (get-Date).AddDays(-3) -Finish (Get-Date) | 
    Where-Object {$_ -is [VMware.Vim.VmMigratedEvent] -and $_.ComputeResource.Name -ne "ClusterExcempt"}

But I'm wondering if that script even produces anything useful.
You collect the events of type VmMigratedEvent, but then later on in the script you test on events that start with "DRS", followed by a bunch of nested If-Else constructions. 


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

View solution in original post

3 Replies
LucD
Leadership
Leadership
Jump to solution

You could adapt the Where-clause after the Get-VIEvent.

$events = Get-VIEvent -maxsamples 1000000000 -Start (get-Date).AddDays(-3) -Finish (Get-Date) | 
    Where-Object {$_ -is [VMware.Vim.VmMigratedEvent] -and $_.ComputeResource.Name -ne "ClusterExcempt"}

But I'm wondering if that script even produces anything useful.
You collect the events of type VmMigratedEvent, but then later on in the script you test on events that start with "DRS", followed by a bunch of nested If-Else constructions. 


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

LucD
Leadership
Leadership
Jump to solution

On a side note, this will be the last thread of yours that I reply to.
Since you don't seem to bother giving feedback or indicate that your question was answered, I guess you won't care about receiving a reply or not either.


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

Reply
0 Kudos
LPLAdmin
Enthusiast
Enthusiast
Jump to solution

I apologize Luc.  On that last question I put in back in Dec.  Not giving feedback.

Reply
0 Kudos