Brian Raven <> wrote:
> Conor Lillis <> wrote:
>> Hi all,
>> I am hoping for some assistance in trying to enumerate Exchange 2003
>> public folder replication partners using Perl and WMI. I can
>> enumerate all information I am trying to retrieve except the
>> ReplicaList property, and can see that the query returns data, but
>> when I try to enumerate it I get no usable output.
>> I have included my snippet below, and the output below that.
>> 
>> foreach my $host(sort @hosts)
>> {
>>      chomp($host);
>>      print "\n".gmtime()."\tRetrieving Public folder sizes on
$host\n";
>> my $OLECon = 
>> 
>
Win32::OLE->GetObject("winmgmts:\\\\$host\\root\\MicrosoftExchangeV2")||
>> die "Cannot access WMI on remote machine:
>>      $host",Win32::OLE-LastError; my $PublicFolders =
>> $OLECon->ExecQuery("Select * From Exchange_PublicFolder") or die
>>      "WMI Query Failed!\n"; foreach my $PublicFolder(in
$PublicFolders)
>>      {
>>              $PF1=$PublicFolder->AddressBookName;
>>              $PF2=$PublicFolder->TotalMessageSize/1024;
>>              $PF3=$PublicFolder->MessageCount;
>>              $PF4=$PublicFolder->Path;
>>              my $ReplicaList = $PublicFolder->ReplicaList;
>>              my $ReplicaList = $PublicFolder->ReplicaList;
>>              print "Replica Array = $ReplicaList\n"; #       Treat as
>> text
>>              foreach my $replica(@ReplicaList ) {print "Replica
>> $replica\n";}        #       Treat as array
>>              foreach my $key(sort keys %ReplicaList) {print "Key is
>> $key\tValue is $ReplicaList{$key}\n";}       #       Treat as hash
}
>> }
>> exit;
>> 
>> 
>> Thu Jul 22 12:53:01 2010        Retrieving Public folder sizes on
>> [Exchange server] Thu Jul 22 12:59:07 2010        Working on pub
>> folder [public folder] Replica Array = ARRAY(0x9ead7d4)
> 
> That is telling you that you have a reference to an array, so you
> need to dereference it. Try the following: 
> 
> foreach my $replica(@$ReplicaList ) {
> #                    ^
>     print "Replica $replica\n";
> }
> 
> See 'perldoc -f perlreftut' and 'perldoc perlref'.

Lose the -f. Sorry, must pay attention.

> 
> Also, your code suggests that you may not have 'use strict;' at the
> start of your script, at least the code you supply would not compile
> if it was there. It's a good idea to always to have that, and 'use
> warnings;' at the start of every script.   
> 
> HTH 
 
Please consider the environment before printing this e-mail.

This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient or have received this e-mail in error, please advise 
the sender immediately by reply e-mail and delete this message and any 
attachments without retaining a copy.

Any unauthorised copying, disclosure or distribution of the material in this 
e-mail is strictly forbidden.
_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to