script to check free space on drives has a fixed value

%3CLINGO-SUB%20id%3D%22lingo-sub-1279521%22%20slang%3D%22en-US%22%3Escript%20to%20check%20free%20space%20on%20drives%20has%20a%20fixed%20value%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1279521%22%20slang%3D%22en-US%22%3E%3CP%3EHi%20there%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20have%20a%20script%20that%20checks%20on%20my%20environment%20if%20any%20of%20the%20drives%20on%20any%20server%20is%20below%2010GB%20of%20free%20space%2C%20and%20then%20fires%20and%20email%20accordingly.%3C%2FP%3E%3CP%3Ethe%20problem%20i%20am%20facing%20is%20that%20some%20servers%20have%20partitions%20that%20are%20actually%20just%2010GB%20big%20so%2C%20basically%20every%20time%20they%20get%20checked%20an%20email%20is%20fired%20up.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20don%60t%20know%20if%20the%20trigger%20criteria%20would%20be%20better%20to%20be%20a%20percentage%20instead%20of%20a%20fixed%20value%2C%20but%20i%20am%20not%20sure%20how%20to%20do%20it%2C%20or%20maybe%20set%20a%20different%20script%20for%20those%20servers%20holding%20those%2010Gb%20size%20partitions.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20have%20attached%20a%20copy%20of%20the%20script%2C%20maybe%20somebody%20can%20help%20me%20out.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3Ethank%20you%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1279521%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EPowerShell%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1280394%22%20slang%3D%22en-US%22%3ERe%3A%20script%20to%20check%20free%20space%20on%20drives%20has%20a%20fixed%20value%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1280394%22%20slang%3D%22en-US%22%3E%3CP%3EHello%20%2C%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F258779%22%20target%3D%22_blank%22%3E%40Fgarpol%3C%2FA%3E%26nbsp%3B.%3CBR%20%2F%3E%3CBR%20%2F%3EMy%20first%20option%20would%20be%20to%20ignore%20those%20drives%20with%20less%20than%20the%20Min%20Size.%20In%20the%20same%20way%2C%20you%20can%20add%20other%20filters%20and%20options%20depending%20on%20what%20you%20want%20to%20do%20with%20them.%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-csharp%22%3E%3CCODE%3Eparam(%0A%5BParameter(Mandatory%3D%24false%2CValueFromPipelineByPropertyName%3D%24false)%5D%0A%5Bstring%5D%20%24minSize%20%3D%2010GB%2C%0A%5BParameter(Mandatory%3D%24false%2CValueFromPipelineByPropertyName%3D%24false)%5D%0A%20%20%5Bstring%5D%20%24hosts%20%3D%20%24null%2C%0A%5BParameter(Mandatory%3D%24false%2CValueFromPipelineByPropertyName%3D%24false)%5D%0A%20%24volumes%20%3D%20%24null%2C%0A%23%20-%20email_to%20%3A%20if%20specified%2C%20will%20send%20a%20low-disk-space%20warning%20email%20to%20the%20given%20colon-separated%20addresses.%0A%23%20%20%20%20%20%20%20%20%20%20%20%20%20%20Example%3A%20%24email_to%20%3D%20%22my%40email.com%3Ayour%40email.com%22%3B%0A%23%20%20%20%20%20%20%20%20%20%20%20%20%20%20Default%20is%20%24null%20(no%20e-mail%20will%20be%20sent).%20Replace%20it%20with%20your%40email.com%20if%20you%20don't%20want%20to%20set%20it%20from%20the%20CLI.%0A%5BParameter(Mandatory%3D%24false%2CValueFromPipelineByPropertyName%3D%24false)%5D%0A%5Bstring%5D%20%24email_to%20%3D%20%22support%40mycompany.com%22%2C%0A%20%0A%5BParameter(Mandatory%3D%24false%2CValueFromPipelineByPropertyName%3D%24false)%5D%0A%24email_username%20%3D%20%22administrador%40mycompany.com%22%2C%0A%5BParameter(Mandatory%3D%24false%2CValueFromPipelineByPropertyName%3D%24false)%5D%0A%24email_password%20%3D%20%22%23%23%23%23%23%23%23%23%23%22%2C%0A%5BParameter(Mandatory%3D%24false%2CValueFromPipelineByPropertyName%3D%24false)%5D%0A%24email_smtp_host%20%3D%20%22smtp.office365.com%22%2C%0A%5BParameter(Mandatory%3D%24false%2CValueFromPipelineByPropertyName%3D%24false)%5D%0A%24email_smtp_port%20%3D%20587%2C%0A%5BParameter(Mandatory%3D%24false%2CValueFromPipelineByPropertyName%3D%24false)%5D%0A%24email_smtp_SSL%20%3D%201%2C%0A%5BParameter(Mandatory%3D%24false%2CValueFromPipelineByPropertyName%3D%24false)%5D%0A%24email_from%20%3D%20%22Monitor%20Admin%20%3CADMINISTRADOR%3E%22%0A)%0A%0A%24sep%20%3D%20%22%3A%22%3B%0A%24hosts%20%3D%20Get-Content%20-Path%20c%3A%5Cscripts%5Ccomputers.txt%0A%0A%23%20if%20there%20are%20no%20%24cur_hosts%20set%2C%20set%20the%20local%20computer%20as%20host.%20%0Aif%20(!%24hosts)%20%7B%20%24hosts%20%3D%20%24env%3Acomputername%3B%20%7D%0A%0Aforeach%20(%24cur_host%20in%20%24hosts.split(%24sep))%0A%7B%0A%20%20%20%20%23%20converts%20IP%20to%20hostNames%0A%20%20%20%20if%20((%24cur_host%20-As%20%5BIPAddress%5D)%20-As%20%5BBool%5D)%20%7B%0A%20%20%20%20%20%20%20%20%24cur_host%20%3D%20%5BSystem.Net.Dns%5D%3A%3AGetHostEntry(%24cur_host).HostName%0A%20%20%20%20%7D%0A%0A%20Write-Host%20(%22%22)%3B%0A%20Write-Host%20(%22%22)%3B%0A%20Write-Host%20(%22----------------------------------------------%22)%3B%0A%20Write-Host%20(%24cur_host)%3B%0A%20Write-Host%20(%22----------------------------------------------%22)%3B%0A%20%20%20%20%24drives_to_check%20%3D%20%40()%3B%0A%0A%20%20%20%20if%20(%24null%20-eq%20%24volumes)%20%7B%0A%20%20%20%20%20%20%20%20%24volArr%20%3D%20%0A%20%20%20%20%20%20%20%20%20%20If%20(%24cur_host%20-eq%20%24env%3Acomputername)%20%7B%20Get-WMIObject%20win32_volume%20%7D%0A%20%20%20%20%20%20%20%20%20%20Else%20%7B%20Invoke-Command%20-ComputerName%20%24cur_host%20-ScriptBlock%20%7B%20Get-WMIObject%20win32_volume%20%7D%20%7D%0A%0A%20%20%20%20%20%24drives_to_check%20%3D%20%40()%3B%0A%20%20%20%20%20%20%20%20foreach%20(%24vol%20in%20%24volArr%20%7C%20Sort-Object%20-Property%20DriveLetter)%20%7B%0A%20%20%20%20%20%20%20%20%20if%20(%24vol.DriveType%20-eq%203%20-And%20%24null%20-ne%20%24vol.DriveLetter%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24drives_to_check%20%2B%3D%20%24vol.DriveLetter%5B0%5D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20Else%20%7B%20%24drives_to_check%20%3D%20%24volumes.split(%24sep)%20%7D%0A%0A%20%20foreach%20(%24d%20in%20%24drives_to_check)%20%7B%0A%20%23%20Write-Host%20(%22%22)%3B%0A%20%23%20Write-Host%20(%22%20%20Checking%20drive%20%22%20%2B%20%24d%20%2B%20%22%20...%22)%3B%0A%20%24disk%20%3D%20If%20(%24cur_host%20-eq%20%24env%3Acomputername)%20%7B%20Get-PSDrive%20%24d%20%7D%0A%20%20%20%20Else%20%7B%20Invoke-Command%20-ComputerName%20%24cur_host%20-ScriptBlock%20%7B%20Get-PSDrive%20%24using%3Ad%20%7D%20%7D%0A%0A%20if%20(%24disk.Free%20-lt%20%24minSize%20-and%20%24(%24disk.Free%20%2B%20%24Disk.Used)%20-gt%20%24minSize)%20%7B%0A%20%20Write-Host%20%22%20%20-%20%5B%22%20-noNewLine%0A%20%20%20%20%20%20%20%20Write-Host%20%22KO%22%20-noNewLine%20-ForegroundColor%20Red%0A%20%20%20%20%20%20%20%20Write-Host%20%22%5D%20%22%20-noNewLine%0A%20%20%20%20%20%20%20%20Write-Host%20(%22Drive%20%22%20%2B%20%24d%20%2B%20%22%20has%20less%20than%20%22%20%2B%20(%24minSize%2F1GB).ToString(%22.00%22)%20%60%0A%20%20%20%2B%20%22%20GB%20free%20(%22%20%2B%20(%24disk.Free%2F1GB).ToString(%22.00%22)%20%2B%20%22%20GB)%22)%20-noNewLine%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20if%20(%24email_to)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Write-Host(%22%3A%20sending%20e-mail...%22)%3B%20%0A%20%0A%20%20%20%20%20%20%24message%20%3D%20new-object%20Net.Mail.MailMessage%3B%0A%20%20%20%20%20%20%24message.From%20%3D%20%24email_from%3B%0A%20%20%20%20%20%20foreach%20(%24to%20in%20%24email_to.split(%24sep))%20%7B%0A%20%20%20%20%20%20%20%24message.To.Add(%24to)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%24message.Subject%20%3D%20%20(%22Alert%3A%20%22%20%2B%20%24cur_host%20%2B%20%22%20drive%20%22%20%2B%20%24d)%3B%0A%20%20%20%20%20%20%24message.Subject%20%2B%3D%20(%22%20has%20less%20than%20%22%20%2B%20(%24minSize%2F1GB).ToString(%22.00%22)%20%2B%20%22%20GB%20free%20%22)%3B%0A%20%20%20%20%20%20%24message.Subject%20%2B%3D%20(%22%20(%22%20%2B%20(%24disk.Free%2F1GB).ToString(%22.00%22)%20%2B%22%20GB)%22)%3B%0A%20%20%20%20%20%20%24message.Body%20%3D%20%20%22Hello%2C%20%60r%60n%60r%60n%22%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20%22this%20is%20an%20automatic%20e-mail%20message%20%22%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20%22sent%20by%20the%20Monitor%20Admin%20%22%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20(%22to%20inform%20you%20that%20%22%20%2B%20%24env%3Acomputername%20%2B%20%22%20drive%20%22%20%2B%20%24d%20%2B%20%22%20%22)%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20%22is%20running%20low%20on%20free%20space.%20%60r%60n%60r%60n%22%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20%22--------------------------------------------------------------%22%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%22%60r%60n%22%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20(%22Machine%20HostName%3A%20%22%20%2B%20%24env%3Acomputername%20%2B%20%22%20%60r%60n%22)%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20%22Machine%20IP%20Address(es)%3A%20%22%3B%0A%20%20%20%20%20%20%24ipAddresses%20%3D%20Get-NetIPAddress%20-AddressFamily%20IPv4%3B%0A%20%20%20%20%20%20foreach%20(%24ip%20in%20%24ipAddresses)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(%24ip.IPAddress%20-like%20%22127.0.0.1%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%24message.Body%20%2B%3D%20(%24ip.IPAddress%20%2B%20%22%20%22)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20%22%60r%60n%22%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20(%22Used%20space%20on%20drive%20%22%20%2B%20%24d%20%2B%20%22%3A%20%22%20%2B%20(%24disk.Used%2F1GB).ToString(%22.00%22)%20%2B%22%20GB.%20%60r%60n%22)%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20(%22Free%20space%20on%20drive%20%22%20%2B%20%24d%20%2B%20%22%3A%20%22%20%2B%20(%24disk.Free%2F1GB).ToString(%22.00%22)%20%2B%22%20GB.%20%60r%60n%22)%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20%22--------------------------------------------------------------%22%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%22%60r%60n%60r%60n%22%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20%22This%20warning%20will%20fire%20when%20the%20free%20space%20is%20lower%20%22%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20(%22than%20%22%20%2B%20(%24minSize%2F1GB).ToString(%22.00%22)%20%2B%20%22%20GB%20%60r%60n%60r%60n%22)%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20%22Sincerely%2C%20%60r%60n%60r%60n%22%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20%22--%20%60r%60n%22%3B%0A%20%20%20%20%20%20%24message.Body%20%2B%3D%20%20%22Monitor%20Admin%60r%60n%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%24smtp%20%3D%20new-object%20Net.Mail.SmtpClient(%24email_smtp_host%2C%20%24email_smtp_port)%3B%0A%20%20%20%20%20%20%24smtp.EnableSSL%20%3D%20%24email_smtp_SSL%3B%0A%20%20%20%20%20%20%24smtp.Credentials%20%3D%20New-Object%20System.Net.NetworkCredential(%24email_username%2C%20%24email_password)%3B%0A%20%20%20%20%20%20%24smtp.send(%24message)%3B%0A%20%20%20%20%20%20%24message.Dispose()%3B%0A%20%20%20%20%20%20Write-Host%20%22%20E-Mail%20sent!%22%20%3B%20%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20Else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Write-Host(%22.%22)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%7D%0A%20%20%20ElseIf(%24(%24disk.Free%20%2B%20%24Disk.Used)%20-lt%20%24minSize)%0A%20%20%20%20%7B%0A%20%20%20%20%20Write-Host%20%22%20%20-%20%5B%22%20-noNewLine%0A%20%20%20%20%20Write-Host%20%22Warning%22%20-noNewLine%20-ForegroundColor%20Yellow%0A%20%20%20%20%20Write-Host%20%22%5D%20%22%20-noNewLine%0A%20%20Write-Host%20(%22Drive%20%22%20%2B%20%24d%20%2B%20%22%20has%20less%20than%20%22%20%2B%20(%24minSize%2F1GB).ToString(%22.00%22)%20%2B%20%22%20bytes%20Total%20Space%3A%20nothing%20to%20do.%22)%0A%20%20%20%20%7D%0A%20Else%20%7B%0A%20%20Write-Host%20%22%20%20-%20%5B%22%20-noNewLine%0A%20%20%20%20%20%20%20%20Write-Host%20%22OK%22%20-noNewLine%20-ForegroundColor%20Green%0A%20%20%20%20%20%20%20%20Write-Host%20%22%5D%20%22%20-noNewLine%0A%20%20Write-Host%20(%22Drive%20%22%20%2B%20%24d%20%2B%20%22%20has%20more%20than%20%22%20%2B%20(%24minSize%2F1GB).ToString(%22.00%22)%20%2B%20%22%20bytes%20free%3A%20nothing%20to%20do.%22)%0A%20%7D%0A%20%20%7D%0A%7D%3C%2FADMINISTRADOR%3E%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E
Highlighted
New Contributor

Hi there,

 

I have a script that checks on my environment if any of the drives on any server is below 10GB of free space, and then fires and email accordingly.

the problem i am facing is that some servers have partitions that are actually just 10GB big so, basically every time they get checked an email is fired up.

 

I don`t know if the trigger criteria would be better to be a percentage instead of a fixed value, but i am not sure how to do it, or maybe set a different script for those servers holding those 10Gb size partitions.

 

I have attached a copy of the script, maybe somebody can help me out.

 

thank you

1 Reply
Highlighted

Hello , @Fgarpol .

My first option would be to ignore those drives with less than the Min Size. In the same way, you can add other filters and options depending on what you want to do with them. 

 

 

param(
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$false)]
[string] $minSize = 10GB,
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$false)]
  [string] $hosts = $null,
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$false)]
 $volumes = $null,
# - email_to : if specified, will send a low-disk-space warning email to the given colon-separated addresses.
#              Example: $email_to = "my@email.com:your@email.com";
#              Default is $null (no e-mail will be sent). Replace it with your@email.com if you don't want to set it from the CLI.
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$false)]
[string] $email_to = "support@mycompany.com",
 
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$false)]
$email_username = "administrador@mycompany.com",
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$false)]
$email_password = "#########",
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$false)]
$email_smtp_host = "smtp.office365.com",
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$false)]
$email_smtp_port = 587,
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$false)]
$email_smtp_SSL = 1,
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$false)]
$email_from = "Monitor Admin <administrador@mycompany.com>"
)

$sep = ":";
$hosts = Get-Content -Path c:\scripts\computers.txt

# if there are no $cur_hosts set, set the local computer as host. 
if (!$hosts) { $hosts = $env:computername; }

foreach ($cur_host in $hosts.split($sep))
{
    # converts IP to hostNames
    if (($cur_host -As [IPAddress]) -As [Bool]) {
        $cur_host = [System.Net.Dns]::GetHostEntry($cur_host).HostName
    }

	Write-Host ("");
	Write-Host ("");
	Write-Host ("----------------------------------------------");
	Write-Host ($cur_host);
	Write-Host ("----------------------------------------------");
    $drives_to_check = @();

    if ($null -eq $volumes) {
   	    $volArr = 
          If ($cur_host -eq $env:computername) { Get-WMIObject win32_volume }
          Else { Invoke-Command -ComputerName $cur_host -ScriptBlock { Get-WMIObject win32_volume } }

	    $drives_to_check = @();
        foreach ($vol in $volArr | Sort-Object -Property DriveLetter) {
	        if ($vol.DriveType -eq 3 -And $null -ne $vol.DriveLetter  ) {
  		        $drives_to_check += $vol.DriveLetter[0];
		    }
	    }
    }
    Else { $drives_to_check = $volumes.split($sep) }

  foreach ($d in $drives_to_check) {
	# Write-Host ("");
	# Write-Host ("  Checking drive " + $d + " ...");
	$disk = If ($cur_host -eq $env:computername) { Get-PSDrive $d }
    Else { Invoke-Command -ComputerName $cur_host -ScriptBlock { Get-PSDrive $using:d } }

	if ($disk.Free -lt $minSize -and $($disk.Free + $Disk.Used) -gt $minSize) {
		Write-Host "  - [" -noNewLine
        Write-Host "KO" -noNewLine -ForegroundColor Red
        Write-Host "] " -noNewLine
        Write-Host ("Drive " + $d + " has less than " + ($minSize/1GB).ToString(".00") `
			+ " GB free (" + ($disk.Free/1GB).ToString(".00") + " GB)") -noNewLine
         
        if ($email_to) {
            Write-Host(": sending e-mail..."); 
	
		    $message = new-object Net.Mail.MailMessage;
		    $message.From = $email_from;
		    foreach ($to in $email_to.split($sep)) {
			    $message.To.Add($to);
		    }
		    $message.Subject = 	("Alert: " + $cur_host + " drive " + $d);
		    $message.Subject +=	(" has less than " + ($minSize/1GB).ToString(".00") + " GB free ");
		    $message.Subject +=	(" (" + ($disk.Free/1GB).ToString(".00") +" GB)");
		    $message.Body =		"Hello, `r`n`r`n";
		    $message.Body += 	"this is an automatic e-mail message ";
		    $message.Body += 	"sent by the Monitor Admin ";
		    $message.Body += 	("to inform you that " + $env:computername + " drive " + $d + " ");
		    $message.Body += 	"is running low on free space. `r`n`r`n";
		    $message.Body += 	"--------------------------------------------------------------";
		    $message.Body +=	"`r`n";
		    $message.Body += 	("Machine HostName: " + $env:computername + " `r`n");
		    $message.Body += 	"Machine IP Address(es): ";
		    $ipAddresses = Get-NetIPAddress -AddressFamily IPv4;
		    foreach ($ip in $ipAddresses) {
		        if ($ip.IPAddress -like "127.0.0.1") {
			        continue;
			    }
		        $message.Body += ($ip.IPAddress + " ");
		    }
		    $message.Body += 	"`r`n";
		    $message.Body += 	("Used space on drive " + $d + ": " + ($disk.Used/1GB).ToString(".00") +" GB. `r`n");
		    $message.Body += 	("Free space on drive " + $d + ": " + ($disk.Free/1GB).ToString(".00") +" GB. `r`n");
		    $message.Body += 	"--------------------------------------------------------------";
		    $message.Body +=	"`r`n`r`n";
		    $message.Body += 	"This warning will fire when the free space is lower ";
		    $message.Body +=	("than " + ($minSize/1GB).ToString(".00") + " GB `r`n`r`n");
		    $message.Body += 	"Sincerely, `r`n`r`n";
		    $message.Body += 	"-- `r`n";
		    $message.Body += 	"Monitor Admin`r`n";
                  

		    $smtp = new-object Net.Mail.SmtpClient($email_smtp_host, $email_smtp_port);
		    $smtp.EnableSSL = $email_smtp_SSL;
		    $smtp.Credentials = New-Object System.Net.NetworkCredential($email_username, $email_password);
		    $smtp.send($message);
		    $message.Dispose();
		    Write-Host " E-Mail sent!" ; 
        }
        Else {
            Write-Host(".");
        }
	}
   ElseIf($($disk.Free + $Disk.Used) -lt $minSize)
    {
     Write-Host "  - [" -noNewLine
     Write-Host "Warning" -noNewLine -ForegroundColor Yellow
     Write-Host "] " -noNewLine
	 Write-Host ("Drive " + $d + " has less than " + ($minSize/1GB).ToString(".00") + " bytes Total Space: nothing to do.")
    }
	Else {
		Write-Host "  - [" -noNewLine
        Write-Host "OK" -noNewLine -ForegroundColor Green
        Write-Host "] " -noNewLine
		Write-Host ("Drive " + $d + " has more than " + ($minSize/1GB).ToString(".00") + " bytes free: nothing to do.")
	}
  }
}