You are on page 1of 3

'coolsanthosh82@hotmail.

com
'opens all mailbox store of the given exchange server and change the permissions
default=reviewer for all the mailboxes in it
'dependencies
'register acl.dll, cdo 1.01 or higher
on error resume next

exchsrvr = inputbox("enter the server name")

set theserver = createobject("cdoexm.exchangeserver")


set thesg = createobject("cdoexm.storagegroup")
set themb = createobject("cdoexm.mailboxstoredb")
theserver.datasource.open exchsrvr
' examine the sgs; for each sg, list its associated stores and paths
for each sg in theserver.storagegroups
stgname = trimstr(sg)
answer = msgbox("would you like to open this storage group : " &
stgname, 4, "question?")
if answer = 6 then
wscript.echo "opening the store : " & stgname'wscript.echo
stgname
thesg.datasource.open sg
i = 0
for each maildb in thesg.mailboxstoredbs
mbname = trimstr(maildb)
answer = msgbox("would you like to open this mailboxstore : " &
mbname, 4, "question?")
if answer = 6 then
wscript.echo "opening the store : " & mbname
themb.datasource.open maildb
objmailstorename = maildb
strquery="select * from exchange_mailbox where servername = '"&
exchsrvr & "' and storagegroupname = '" & stgname & "' and storename = '" & mbname
& "'"
set swbemlocator = createobject("wbemscripting.swbemlocator")
set objwmiservice =
swbemlocator.connectserver(exchsrvr,"\root\microsoftexchangev2")
set colitems = objwmiservice.execquery(strquery,,48)

for each objitem in colitems

'if objitem.mailboxdisplayname = "" then


job = updatecal(exchsrvr,objitem.mailboxdisplayname)
wscript.echo job
'else
'wscript.echo "skipping mailbox"
'end if
next
else
wscript.echo "checking the next"
' wscript.echo mbname
end if
next

else
wscript.echo "checking the next"
end if
next

private function trimstr(storename)

startpoint = instr(storename,"=")
endpoint = instr(storename,",")

'out = mid(storage, 3,7)


trimstr = mid(storename, (startpoint+1), (endpoint-4))
'wscript.echo "storage group name: " &sgname

end function

function updatecal(exsrv,user)

const cdodefaultfoldercalendar = 0

const rights_edit_own = &h8


const rights_edit_all = &h20
const rights_delete_own = &h10
const rights_delete_all = &h40
const rights_read_items = &h1
const rights_create_items = &h2
const rights_create_subfolders = &h80
const rights_folder_owner = &h100
const rights_folder_contact = &h200
const rights_folder_visible = &h400
const rights_none = 0
const role_owner = &h5e3
const role_publish_editor = &h4e3
const role_editor = &h463
const role_publish_author = &h49b
const role_author = &h41b
const role_nonediting_author = &h413
const role_reviewer = &h401
const role_contributor = &h402
const role_none = &h400

newaccess = role_reviewer
'exsrv = exserver
'username = user

set osession = createobject("mapi.session")

strprofile = exsrv & vblf & user

'logon using current credentials to profile verses specifying stuff


'osession.logon , , false, true, , true, strprofile
'logon using exisiting profile
'osession.logon "", "", false, false, 0
osession.logon "", "", false, true, 0, true, strprofile
'osession.logon

set ocalendar = osession.getdefaultfolder(cdodefaultfoldercalendar)


set oaclobject = createobject("msexchange.aclobject")
oaclobject.cdoitem = ocalendar
set oaces = oaclobject.aces
for each oace in oaces

'wscript.echo oace.rights
if (oace.id = "id_acl_default") then
if oace.rights = newaccess then
updatecal = "access already exsists for " & user
else
oace.rights = newaccess
oaclobject.update
updatecal = "updated the permissions for " & user
end if
else
end if
next

osession.logoff
set osession = nothing

end function

You might also like