I've been using WMI a lot to get information from servers and I've been getting good results (generic though like processor state, hdd, logged on users, process lists etc )
Now I have a specific task to query some specific data from an Exchange Server 2010 Data like the one you might get from the performance monitor and health check like Active Mailbox Delivery Queue, send queue size, receive queue size, SMTP Current Connections and the list goes on and on.
Now I've been doing some research and i've found some articles and found that this class is supposed to have the data I need : root\MicrosoftExchangeV2 I'm having a hard time coding this and I've found some vb examples that I tried to convert in perl modules but nothing seem to work. Any start up example is appreciated
ps: on the exchange server wmi seems to be not accesable from remote (so i run this locally)
#!/usr/bin/perl
use Win32::OLE('in');
use constant bFlagReturnImmediately => 0x10;
use constant bFlagForwardOnly => 0x20;
#use warnings;
use Win32::OLE::Enum;
my $comp = ".";
my $oWMIService_ = Win32::OLE->GetObject( "winmgmts:impersonationLevel
+=impersonate}!\\\\$comp\\ROOT\\MicrosoftExchangeV2") or die "problem"
+;
my $colItems_ = $oWMIService_->ExecQuery ( "Select * from Exchange_Lin
+k", "WQL", bFlagReturnImmediately | bFlagForwardOnly);
foreach my $objItem_ (in $colItems_){
print $objItem_->{StateRemote};
}