Toggle circular logging (Perl)

This code can be found in Chapter 6 of Exchange Server Cookbook

Purchase XP Cookbook or Networking Recipes for only $25 plus shipping! While supplies last.

Find out how to download all of the Perl code from this site.

# This script was originally published in the Exchange Cookbook,
# (http://www.exchangebookcook.com). Written by Paul Robichaux, 
# Missy Koslosky, and Devin Ganger. Redistributed with permission 
# of the publisher, O'Reilly & Associates.

# This script toggles circular logging on the selected database.

# ------ SCRIPT CONFIGURATION ------

use Win32::OLE;

$strServerName = '<serverName>';
# e.g. "BATMAN"	
# ------ END CONFIGURATION ---------

$theServer = Win32::OLE->new('CDOEXM.ExchangeServer');
$theSG = Win32::OLE->new('CDOEXM.StorageGroup');

$theServer->DataSource->Open($strServerName);

# Get the array list of StorageGroups, then coerce it to get the first
# SG name
$theSGArr = $theServer->StorageGroups;
$theFirstSG = theSGArr(0);

$strURL = 'LDAP://' . $theServer->DirectoryServer . '/' . $theFirstSG;
$theSG->DataSource->Open($strURL);
if ((1 == $theSG->CircularLogging)) {
    print "Circular logging is enabled; disabling it\n";
    $theSG->{CircularLogging} = 0;
}
else {
    print "Circular logging is disabled; enabling it\n";
    $theSG->{CircularLogging} = 1;
}
$theSG->DataSource->Save();
print 'Circular logging set to ' . $theSG->CircularLogging . ' for ' . $theFirstSG, "\n";

This code has been viewed 559 times.

New from the creators of TechTasks.com: StatSheet.com