Active Directory 2008 - Allow Inheritable permissions from this objects parent object.

JamesonJendreas
JamesonJendreas used Ask the Experts™
on
Hello,
I'm rolling out exchange 2010 currently into my server 2008 AD environment (we're in coexistence with 2003 currently).  So far everything is going well, and I am working on getting activesync to work properly.

So, after I moved my mailbox to the new server, I was unable to get emails and calendar sync to my phone (Droid X) using the native app.  Touchdown (3rd party paid app) works.  So after doing a bit of digging, I found that if I open the ADSI snap-in, open the properties to my AD account, go to security and advanced, the "Allow Inheritable permissions from this objects parent object" box is unchecked.  Once I checked this, Viola!  mail and calendar begin to sync on my phone.

So, the actual question, is there any type of script that could be done to do this across the organization?  I have over 450 users, a good 100 of which will need access to active sync.  I'd rather not have to go about doing this manually (although running a script on my entire AD does seem a bit scary)....

Any thoughts?
JJ
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Hi,

You can use ADModify.Net tool. This tools allows you to check/uncheck flag of common attributes across all the users/AD objects.

This can be done using Powershell script as well. But that needs to be customized as per your environment. I wrote a code sometime ago but i would suggest test it using 1 test user.
 
## sets the "Allow inheritable permissions from parent to propagate to this object" check box

# Mention samAccountName of 1 test user in user.txt file

$users = Get-Content C:\user.txt
ForEach($user in $users)
{
$ou = [ADSI]("LDAP://" + $user)
#$ou = [ADSI]"LDAP://cn=testAdm,ou=scom2007,dc=mylab,dc=local"
$sec = $ou.psbase.objectSecurity

if ($sec.get_AreAccessRulesProtected())
   {
    $isProtected = $false ## allows inheritance
    $preserveInheritance = $true ## preserver inhreited rules

    $sec.SetAccessRuleProtection($isProtected, $preserveInheritance)
    $ou.psbase.commitchanges()
   Write-Host -foregroundcolor Yellow "$user is now inherting permissions"
   }
else
   {
    Write-Host -foregrouncolor Red "$User is already Inheriting Permissions"
   }
   }

Open in new window

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial