Je wil een mail ontvangen als de vrije ruimte op de c-schijf van een virtuele windows server lager is dan een bepaalde grootte ?
Hieronder vind je de powershell instructie (gebruikt de powershell cli van VMWare)
Met dank aan Lorenzo voor zijn bijdrage.
add-PSSnapin vmware.vimautomation.core
# vCenter username password
$vCenterServer = “…”
$vcenteruser = “…\…”
$vcenterpasswd = “….”
[string]$bodyd = “overzicht virtuele machines , minder dan 10 giga vrije ruimte : ” + “`r”
$teller=0
#connect vCenter Server
Connect-VIServer -Server $vCenterServer -User $vcenteruser -Password $vcenterpasswd
$FinalResult = @()
$Allvms = Get-View -ViewType “VirtualMachine” -filter @{”Guest.GuestState”=”running”; “Guest.GuestFullName”=”Windows”}
foreach ($vm in $Allvms) {
#Only C disk
$DriveC = $vm.Guest.Disk | Where-Object {$_.Diskpath -eq “C:\”}
#Calculations
$Freespace = [math]::Round($DriveC.FreeSpace / 1MB)
$Capacity = [math]::Round($DriveC.Capacity / 1MB)
$SpaceOverview = “$Freespace” + “/” + “$capacity”
$PercentFree = $freespace
#Report for all vms
$report = New-Object psobject
$report | Add-Member -MemberType NoteProperty -Name “VMName” -Value $VM.Name
$report | Add-Member -MemberType NoteProperty -Name “Free(MB)/Total(MB)” -Value $SpaceOverview
$report | Add-Member -MemberType NoteProperty -Name “%Free” -Value $PercentFree
#VMs with less space on C Drive
if ($report.”%free” -lt 10000) {
if ($report.”%free” -gt 0) {
$teller = $teller +1
#$finalResult =+ $report
$bodyd = $bodyd + “`r” + $teller + “) ” + $vm.Name + “`r”+ ” Overzicht vrije disk ruimte c-drive : ” + $Freespace + “`r” + ” Totale capaciteit c-schijf : ” + $Capacity + “`r” + ” Ipadres : ” + $vm.guest.IpAddress + “`r” + “****************” + “`r”
}
}
}
#Send Email
$messageParameters = @{
Subject = “Opgelet, onderstaande virtuele servers hebben minder dan 10 giga vrije ruimte op hun systeemschijf. Mvg, Dklus”
Body = $bodyd
From = “SpacedklusAlert@……”
To = “…”
SmtpServer = “….”
}
Send-MailMessage @MessageParameters