PutEx (Perl)

This code can be found in Chapter 21 of Active Directory, 3rd Edition

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.

# From the book "Active Directory, Third Edition" 
# ISBN: 0-596-10173-2

use Win32::OLE qw(in);
use constant vbNull => 1;

use constant ADS_PROPERTY_CLEAR => 1;
use constant ADS_PROPERTY_UPDATE => 2;
use constant ADS_PROPERTY_APPEND => 3;
use constant ADS_PROPERTY_DELETE => 4;

my $objUser;
# An ADSI User object
my $strPager;
# A text string holding a phone number

$objUser = Win32::OLE->GetObject('LDAP://cn=Administrator,cn=Users,dc=mycorp,dc=com');

# **********************************************************************
# Set three pager numbers for the Administrator account
# **********************************************************************
$objUser->PutEx(ADS_PROPERTY_UPDATE, 'pager', ['123-1234', '234-2345', '345-3456']);
$objUser->SetInfo();
$objUser->GetInfo();
foreach my $strPager (in $objUser->telephonePager) {
    print "$strPager\n";
}

# **********************************************************************
# Delete the first and last number
# **********************************************************************
$objUser->PutEx(ADS_PROPERTY_DELETE, 'pager', ['123-1234', '345-3456']);
$objUser->SetInfo();
$objUser->GetInfo();
foreach my $strPager (in $objUser->telephonePager) {
    print "$strPager\n";
}

# **********************************************************************
# Add a new pager number without deleting the remaining number
# **********************************************************************
$objUser->PutEx(ADS_PROPERTY_APPEND, 'pager', ['456-4567']);
$objUser->SetInfo();
$objUser->GetInfo();
foreach my $strPager (in $objUser->telephonePager) {
    print "$strPager\n";
}

# **********************************************************************
# Delete all values
# **********************************************************************
$objUser->PutEx(ADS_PROPERTY_CLEAR, 'pager', vbNull);
$objUser->SetInfo();
$objUser->GetInfo();
foreach my $strPager (in $objUser->telephonePager) {
    print "$strPager\n";
}

This code has been viewed 1164 times.

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