Manipulating Objects
Modifying
objects with
System.DirectoryServices
can be done a couple of
different ways. To modify an attribute that currently has a value,
you can set it using the Properties
property. For
example, the following code would modify the
givenName
attribute:
objADObject.Properties("givenName")(0) = "Robert"
If you want to set an attribute that was previously unset, you must
use the Properties.Add
method. The following code
would set the previously unset sn
attribute:
objADObject.Properties("sn").Add("Robert")
To determine whether an attribute has been set, you can use
Properties(
"attributename
").Count
,
which will return the number of values that have been set for the
attribute. Just like with ADSI, all modifications are made initially
to the local property cache and must committed to the server. With
ADSI you would use the IADs::SetInfo( )
method,
and with System.DirectoryServices
it is called
CommitChanges( )
, which is available from the
DirectoryEntry class.
objADObject.CommitChanges( )
Now that we covered how to set an attribute, we can modify the
earlier code that printed all the values of an attribute to instead
set an attribute. The code in Example 28-2 expects
three command line parameters: the first is the
ADsPath
of the object to modify, the second is the
attribute name, and the third is the value to set the attribute to.
Example 28-2. Setting an attribute
Dim strADsPath As String Dim strAttrName As String Dim strAttrValue As String Try Dim intArgs As Integer = ...
Get Active Directory, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.