Friday, October 31, 2008
Sunday, October 26, 2008
user account automation
Accessing E-mail Addresses
Removing duplicate and unwanted proxy addresses in Exchange
vbscript example
export - inport email addresses
example2
example3
add a new Proxy Address to all the users in active directory
===============================================
======================
Today I needed to know if all of my proxyaddresses (that is, the entries on the “E-Mail Addresses” tab in Active Directory Users and Computers) were unique.
ADU&C prevents you from entering a duplicate manually, but it's possible for a script or for the RUS to generate a duplicate under certain situations.
So, I wrote a script. There are several ways to attack this problem, including using adfind and adcsv (which Joe Richards has done) but I wanted a vbscript solution.
My solution is below. It can easily be modified to dump all of your addresses as well.
Option Explicit
Dim strDomainDN, strBase, strFilter, strAttrs, strScope
Dim objDIC
Dim objCmd, objConn, objRS
Dim proxyaddresses, proxyaddress
Dim iCount
strDomainDN = "dc=brnets,dc=int"
strBase = ";"
strFilter = "(proxyAddresses=*);"
strAttrs = "name,adspath,proxyaddresses;"
strScope = "subtree"
Set objDIC = CreateObject ("Scripting.Dictionary")
Set objConn = CreateObject ("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"
Set objCmd = CreateObject ("ADODB.Command")
objCmd.ActiveConnection = objConn
objCmd.CommandText = strBase & strFilter & strAttrs & strScope
objCmd.Properties ("Page Size") = 1000
Set objRS = objCmd.Execute
objRS.MoveFirst
while Not objRS.EOF
'Wscript.Echo "name = " & objRS.Fields(0).Value
'wscript.echo "adspath = " & objRS.Fields(1).Value
proxyaddresses = objRS.Fields(2)
for each proxyaddress in proxyaddresses
proxyaddress = LCase (proxyaddress)
If objDic.Exists (proxyaddress) Then
objDic.Item (proxyAddress) = objDic.Item (proxyAddress) & "|" & objRS.Fields(1).Value
wscript.echo "Dup: " & objDic.Item (proxyAddress)
iCount = iCount + 1
Else
objDic.Add proxyAddress, objRS.Fields(1).value
End If
next
'wscript.echo
objRS.MoveNext
wend
wscript.echo "Total unique addresses found: " & objDic.Count
If iCount = 0 Then
Wscript.Echo "No dups found."
Else
Dim objArr, objIt, strVals
wscript.echo iCount & " dups found."
objArr = objDic.Keys
For Each objIt in objArr
strVals = objDic.Item (objIt)
If Instr (strVals, "|") > 0 Then
Dim arrNames, strName
arrNames = Split (strVals, "|")
wscript.echo objIt
For each strName in arrNames
wscript.echo vbTab & strName
Next
End If
Next
End If
wscript.quit 0
Removing duplicate and unwanted proxy addresses in Exchange
vbscript example
export - inport email addresses
example2
example3
add a new Proxy Address to all the users in active directory
===============================================
dim oRootOU
dim oUser
dim oProxy
Set oRootOU = GetObject("LDAP://dc=com/dc=georgfischer/dc=ad/dc=piping/ou=test")
for each oUser in oRootOU
if oUser.class = "user" then
for each oProxy in oUser.ProxyAddresses
if instr(oProxy,"Gwise:gf.rlssh") then oUser.msExchHideFromAddressLists = TRUE
next
end if
next
set oRootOU = nothing
dim oUser
dim oProxy
Set oRootOU = GetObject("LDAP://dc=com/dc=georgfischer/dc=ad/dc=piping/ou=test")
for each oUser in oRootOU
if oUser.class = "user" then
for each oProxy in oUser.ProxyAddresses
if instr(oProxy,"Gwise:gf.rlssh") then oUser.msExchHideFromAddressLists = TRUE
next
end if
next
set oRootOU = nothing
======================
Checking ProxyAddresses for Duplicates
Originally published December 30, 2004Today I needed to know if all of my proxyaddresses (that is, the entries on the “E-Mail Addresses” tab in Active Directory Users and Computers) were unique.
ADU&C prevents you from entering a duplicate manually, but it's possible for a script or for the RUS to generate a duplicate under certain situations.
So, I wrote a script. There are several ways to attack this problem, including using adfind and adcsv (which Joe Richards has done) but I wanted a vbscript solution.
My solution is below. It can easily be modified to dump all of your addresses as well.
Option Explicit
Dim strDomainDN, strBase, strFilter, strAttrs, strScope
Dim objDIC
Dim objCmd, objConn, objRS
Dim proxyaddresses, proxyaddress
Dim iCount
strDomainDN = "dc=brnets,dc=int"
strBase = "
strFilter = "(proxyAddresses=*);"
strAttrs = "name,adspath,proxyaddresses;"
strScope = "subtree"
Set objDIC = CreateObject ("Scripting.Dictionary")
Set objConn = CreateObject ("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"
Set objCmd = CreateObject ("ADODB.Command")
objCmd.ActiveConnection = objConn
objCmd.CommandText = strBase & strFilter & strAttrs & strScope
objCmd.Properties ("Page Size") = 1000
Set objRS = objCmd.Execute
objRS.MoveFirst
while Not objRS.EOF
'Wscript.Echo "name = " & objRS.Fields(0).Value
'wscript.echo "adspath = " & objRS.Fields(1).Value
proxyaddresses = objRS.Fields(2)
for each proxyaddress in proxyaddresses
proxyaddress = LCase (proxyaddress)
If objDic.Exists (proxyaddress) Then
objDic.Item (proxyAddress) = objDic.Item (proxyAddress) & "|" & objRS.Fields(1).Value
wscript.echo "Dup: " & objDic.Item (proxyAddress)
iCount = iCount + 1
Else
objDic.Add proxyAddress, objRS.Fields(1).value
End If
next
'wscript.echo
objRS.MoveNext
wend
wscript.echo "Total unique addresses found: " & objDic.Count
If iCount = 0 Then
Wscript.Echo "No dups found."
Else
Dim objArr, objIt, strVals
wscript.echo iCount & " dups found."
objArr = objDic.Keys
For Each objIt in objArr
strVals = objDic.Item (objIt)
If Instr (strVals, "|") > 0 Then
Dim arrNames, strName
arrNames = Split (strVals, "|")
wscript.echo objIt
For each strName in arrNames
wscript.echo vbTab & strName
Next
End If
Next
End If
wscript.quit 0
Saturday, October 18, 2008
Monday, October 13, 2008
usefull ad scripts
from the scripting guys AD scripts
technet maf topics
technetmag scripting guystechnet mag columns
technetmag authors
How Can Retrieve a List of All My Computer Accounts, Grouped By OU?
How Can I Read Computer Names From a Text File and Then Verify Whether or Not Those Computers Still Exist?
How Can I Determine the Topmost OU For an Active Directory Object?
How Can I Get the “Grandparent” of an Object in Active Directory?
How Can I Find and Move an Active Directory Computer Account?
How Can I Set an Active Directory Attribute Value to NULL?
technet maf topics
technetmag scripting guystechnet mag columns
technetmag authors
How Can Retrieve a List of All My Computer Accounts, Grouped By OU?
How Can I Read Computer Names From a Text File and Then Verify Whether or Not Those Computers Still Exist?
How Can I Determine the Topmost OU For an Active Directory Object?
How Can I Get the “Grandparent” of an Object in Active Directory?
How Can I Find and Move an Active Directory Computer Account?
How Can I Set an Active Directory Attribute Value to NULL?
Wednesday, October 8, 2008
Subscribe to:
Posts (Atom)