Monday, March 26, 2007

Move Mailboxes Script

Moves all the mailboxes listed in input.txt to a particular store.

Const ADS_NAME_INITTYPE_GC = 3
Const ADS_NAME_TYPE_NT4 = 3
Const ADS_NAME_TYPE_1779 = 1
sInFile = "input.txt"
Set oRootDSE = GetObject("LDAP://RootDSE")
sDNSDomain = oRootDSE.Get("defaultNamingContext")
Set oTrans = CreateObject("NameTranslate")
oTrans.Init ADS_NAME_INITTYPE_GC, sDNSDomain
oTrans.Set ADS_NAME_TYPE_1779, sDNSDomain
sNetBIOSDomain = oTrans.Get(ADS_NAME_TYPE_NT4)
sNetBIOSDomain=Left(sNetBIOSDomain,Len(sNetBIOSDomain)-1)
set oFSO = CreateObject("Scripting.FileSystemObject")
set oInputFile = oFSO.OpenTextFile (sInFile)
Do
sUser = oInputFile.ReadLine
oTrans.Init ADS_NAME_TYPE_1779, sNetBIOSDomain
oTrans.Set ADS_NAME_TYPE_NT4, sNetBIOSDomain & "\" & sUser
sUserDN = oTrans.Get(ADS_NAME_TYPE_1779)
set oUser = GetObject ("LDAP://" & sUserDN)
sExchangeServer = oUser.msExchHomeServerName
i = 1
Do
sRightPiece = Right(sExchangeServer, i)
If Left(sRightPiece, 1) = "=" Then
sExchangeServer = Right(sExchangeServer, i - 1)
Exit Do
End If
i = i + 1
Loop
sTargetMDB = "CN=Mailboxes,CN=Fourth Storage Group,CN=InformationStore,CN=" & sExchangeServer & ",CN=Servers,CN=First Administrative Group,CN=Administrative Groups,CN=RHD,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=company,DC=com"
oUser.MoveMailbox sTargetMDB
oUser.SetInfo
Loop Until oInputFile.AtEndOfLine = true
wscript.Echo "All Done"

No comments: