# ---------------------------------------------------------------
# Adapted from VBScript code contained in the book:
# "Active Directory Cookbook" by Robbie Allen
# Publisher: O'Reilly and Associates
# ISBN: 0-596-00466-4
# Book web site: http://rallenhome.com/books/adcookbook/code.html
# ---------------------------------------------------------------
use Win32::OLE;
$Win32::OLE::Warn = 3;
my $strObjectDN = "cn=jsmith,cn=users,dc=rallencorp,dc=com";
my $ADS_PROPERTY_CLEAR = 1;
my $ADS_PROPERTY_UPDATE = 2;
my $ADS_PROPERTY_APPEND = 3;
my $ADS_PROPERTY_DELETE = 4;
my $objUser = Win32::OLE->GetObject("LDAP://" . $strObjectDN);
# Add/Append two values
$objUser->PutEx($ADS_PROPERTY_APPEND, "otherTelephone", ["555-1212", "555-1213"] );
$objUser->SetInfo;
# Now otherTelephoneNumber = 555-1212, 555-1213
# Delete one of the values
$objUser->PutEx($ADS_PROPERTY_DELETE, "otherTelephone", ["555-1213"]);
$objUser->SetInfo;
# Now otherTelephoneNumber = 555-1212
# Change values
$objUser->PutEx($ADS_PROPERTY_UPDATE, "otherTelephone", ["555-1214"]);
$objUser->SetInfo;
# Now otherTelephoneNumber = 555-1214
# Clear all values
$objUser->PutEx($ADS_PROPERTY_CLEAR, "otherTelephone", []);
$objUser->SetInfo;
# Now otherTelephoneNumber = <empty>
|