met powershell alle VMWare windows guest c-disks overlopen en mail sturen bij minder dan 10 giga vrije ruimte

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

   

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

  • Zoek de Ict tips

    Generic selectors
    Exact matches only
    Search in title
    Search in content
    Search in posts
    Search in pages
    Filter by Categories
    advies desktop
    advies notebook
    advies smart tv
    cloning and backup
    cmd
    dklus music
    esxi
    exchange 2007/2010/2013
    freeware
    koopadvies
    office 2003
    office 2007
    office 2010
    office 2013
    office 2016
    Powershell
    Thin os (wyse)
    tips voorblad
    Uncategorized
    Visual Basic For Applications (VBA)
    vmware
    win 8 apps zeer goed
    Windows 10
    windows 7
    Windows 8
    windows 8.1
    Windows 8.x RT
    windows server 2003
    windows server 2008
    windows server 2012
    windows server 2012 R2
    windows server 2016
    wordpress