#!/usr/bin/perl -w my $color; my $summary; my $statusmsg; use Data::Dumper; use strict; use warnings; use DateTime; use Win32::OLE; my $dt = DateTime->now; # Stores current date and time as datetime object my $date = $dt->dmy; # Retrieves date as a string in 'dd-mm-yyyy' format my $time = $dt->hms; # Retrieves time as a string in 'hh:mm:ss' format my $datetime = "$date $time"; # creates 'yyyy-mm-dd hh:mm:ss' string my $computer = "localhost"; my $WMI = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\CIMV2") or die; my $diskQ = $WMI->ExecQuery("SELECT CurrentDiskQueueLength FROM Win32_PerfFormattedData_PerfDisk_LogicalDisk where Name = C:"); if ($diskQ > 10) { $color = "red"; $summary = "$datetime Current Disk Queue length for drive C: $diskQ"; $statusmsg = "&red Current Disk Queue length for Drive C: is > 10\n\n"; } else { $color = "green"; $summary = "$datetime Current Disk Queue length for drive C: $diskQ"; $statusmsg = "&red Current Disk Queue length for Drive C: is < 10\n\n"; } open (MYFILE, 'C:\Program Files\BBWin\tmp\diskQ.txt'); print MYFILE $color; print MYFILE $summary; print MYFILE $statusmsg; close (MYFILE);