Location: List Archives

List Archives

This forum is an archive of all posts to our mailing list over the past few years.  The forum is set read only therefore to contribute you will need to join our list community.  See more info about this here.

List Archives

Subject: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
Prev Next
You are not authorized to post a reply.

AuthorMessages
dloderUser is Offline

Posts:40

07/21/2008 1:36 PM  
We just forest prepped for E2K7 this past weekend.

One of the last cleanup steps we wanted to perform was moving the six Universal Groups out of the default Microsoft Exchange Security Groups OU in the root domain and into one of our child account domains before we allow them to be used for anything.  So their membership is exactly as the forest prep steps define them to be. (So preemptive answer - no issues with the groups being members of domain local groups in the root)

Quick google and whip up a short vbscript for the MoveHere operation targeting the destination RID master.  Tests fine in dev, QA and in an air-gapped production replica we spin up for schema changes.  However, doing it in prod under EA credentials results in error -2147016651.  The server is unwilling to process the request.

We try transferring the RID owner, but the new owner still throws the same error.

Packet trace doesn't show anything useful that's different from when it succeeds in Dev.  In Dev you see the Modify RDN request, as referral response from the destination RID master, RPC traffic of the domain move, LDAP bind for the new object, success response and unbind.  In prod, after the same RID master referral response, it goes straight to an unbind.

Any help??
michael1User is Offline

Posts:178

07/21/2008 7:17 PM  
So...is this what you did? If not, let us see some code, sanitized as
necessary.



$sourceDC = "dc1.region1.example.com"

$targetDC = "dcX.region2.example.com"



$sourceDomain = "dc=region1,dc=example,dc=com"

$targetDomain = "dc=region2,dc=example,dc=com"



$sourceOU = "ou=Microsoft Exchange Security Groups," + $sourceDomain

$targetOU = "ou=Microsoft Exchange Security Groups," + $targetDomain



function moveExchangeGroup ([string]$whichGroup)

{

$targetString = "LDAP://" + $targetDC + "/" + $targetOU

$sourceString = "LDAP://" + $sourceDC + "/" + "cn=" + $whichGroup +
"," + $sourceOU

##$targetstring

##$sourcestring

##$targetObject = [adsi]$targetString

$sourceObject = [adsi]$sourceString

$sourceObject.psbase.MoveTo($targetString)

}



moveExchangeGroup "Exchange Organization Administrators"

moveExchangeGroup "Exchange Public Folder Administrators"

moveExchangeGroup "Exchange Recipient Administrators"

moveExchangeGroup "Exchange Servers"

moveExchangeGroup "Exchange View-Only Administrators"

moveExchangeGroup "ExchangeLegacyInterop"







Regards,



Michael B. Smith

MCITP:SA,EMA/MCSE/Exchange MVP

http://TheEssentialExchange.com



From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Monday, July 21, 2008 1:35 PM
To: ActiveDir@mail.activedir.org
Subject: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain




We just forest prepped for E2K7 this past weekend.



One of the last cleanup steps we wanted to perform was moving the six
Universal Groups out of the default Microsoft Exchange Security Groups OU in
the root domain and into one of our child account domains before we allow
them to be used for anything. So their membership is exactly as the forest
prep steps define them to be. (So preemptive answer - no issues with the
groups being members of domain local groups in the root)



Quick google and whip up a short vbscript for the MoveHere operation
targeting the destination RID master. Tests fine in dev, QA and in an
air-gapped production replica we spin up for schema changes. However, doing
it in prod under EA credentials results in error -2147016651. The server is
unwilling to process the request.



We try transferring the RID owner, but the new owner still throws the same
error.



Packet trace doesn't show anything useful that's different from when it
succeeds in Dev. In Dev you see the Modify RDN request, as referral
response from the destination RID master, RPC traffic of the domain move,
LDAP bind for the new object, success response and unbind. In prod, after
the same RID master referral response, it goes straight to an unbind.



Any help??




dloderUser is Offline

Posts:40

07/22/2008 10:56 AM  
strTargetRID = WScript.Arguments.Unnamed.Item(0)
strTargetOU  = WScript.Arguments.Unnamed.Item(1)
strSourceDN  = WScript.Arguments.Unnamed.Item(2)
set objObject = GetObject("LDAP://" & strTargetRID & "/" & strTargetOU)
objObject.MoveHere "LDAP://" & strSourceDN, vbNullString

Then called as

cscript Move.vbs RID_Target_in_child_domain "OU=Groups,OU=Exchange,OU=Apps,dc=child" "CN=Exchange Organization Administrators,OU=Microsoft Exchange Security Groups,DC=parent"

for each group.

--- On Mon, 7/21/08, Michael B. Smith <michael@TheEssentialExchange.com> wrote:

From: Michael B. Smith <michael@TheEssentialExchange.com>
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
To: ActiveDir@mail.activedir.org
Date: Monday, July 21, 2008, 7:13 PM








So…..is this what you did? If not, let us see some code, sanitized as necessary.

$sourceDC = “dc1.region1.example.com”
$targetDC = “dcX.region2.example.com”

$sourceDomain = “dc=region1,dc=example,dc=com”
$targetDomain = “dc=region2,dc=example,dc=com”

$sourceOU = “ou=Microsoft Exchange Security Groups,” + $sourceDomain
$targetOU = “ou=Microsoft Exchange Security Groups,” + $targetDomain

function moveExchangeGroup ([string]$whichGroup)
{
      $targetString = “LDAP://” + $targetDC + “/” + $targetOU
      $sourceString = “LDAP://” + $sourceDC + “/” + “cn=” + $whichGroup + “,” + $sourceOU
##$targetstring
##$sourcestring
      ##$targetObject = [adsi]$targetString
      $sourceObject = [adsi]$sourceString
      $sourceObject.psbase.MoveTo($targetString)
}

moveExchangeGroup “Exchange Organization Administrators”
moveExchangeGroup “Exchange Public Folder Administrators”
moveExchangeGroup “Exchange Recipient Administrators”
moveExchangeGroup “Exchange Servers”
moveExchangeGroup “Exchange View-Only Administrators”
moveExchangeGroup “ExchangeLegacyInterop”



Regards,

Michael B. Smith
MCITP:SA,EMA/MCSE/Exchange MVP
http://TheEssentialExchange.com


From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Monday, July 21, 2008 1:35 PM
To: ActiveDir@mail.activedir.org
Subject: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain





We just forest prepped for E2K7 this past weekend.

One of the last cleanup steps we wanted to perform was moving the six Universal Groups out of the default Microsoft Exchange Security Groups OU in the root domain and into one of our child account domains before we allow them to be used for anything.  So their membership is exactly as the forest prep steps define them to be. (So preemptive answer - no issues with the groups being members of domain local groups in the root)

Quick google and whip up a short vbscript for the MoveHere operation targeting the destination RID master.  Tests fine in dev, QA and in an air-gapped production replica we spin up for schema changes.  However, doing it in prod under EA credentials results in error -2147016651.  The server is unwilling to process the request.

We try transferring the RID owner, but the new owner still throws the same error.

Packet trace doesn't show anything useful that's different from when it succeeds in Dev.  In Dev you see the Modify RDN request, as referral response from the destination RID master, RPC traffic of the domain move, LDAP bind for the new object, success response and unbind.  In prod, after the same RID master referral response, it goes straight to an unbind.

Any help??

michael1User is Offline

Posts:178

07/22/2008 4:07 PM  
That looks right. Try the PowerShell. J



I got no other suggestions, sorry. What you are trying to do is supported.



Regards,



Michael B. Smith

MCITP:SA,EMA/MCSE/Exchange MVP

http://TheEssentialExchange.com



From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Tuesday, July 22, 2008 10:55 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain




strTargetRID = WScript.Arguments.Unnamed.Item(0)
strTargetOU = WScript.Arguments.Unnamed.Item(1)
strSourceDN = WScript.Arguments.Unnamed.Item(2)

set objObject = GetObject("LDAP://" & strTargetRID & "/" & strTargetOU)
objObject.MoveHere "LDAP://" & strSourceDN, vbNullString

Then called as



cscript Move.vbs RID_Target_in_child_domain
"OU=Groups,OU=Exchange,OU=Apps,dc=child" "CN=Exchange Organization
Administrators,OU=Microsoft Exchange Security Groups,DC=parent"

for each group.

--- On Mon, 7/21/08, Michael B. Smith <michael@TheEssentialExchange.com>
wrote:

From: Michael B. Smith <michael@TheEssentialExchange.com>
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
To: ActiveDir@mail.activedir.org
Date: Monday, July 21, 2008, 7:13 PM

So...is this what you did? If not, let us see some code, sanitized as
necessary.



$sourceDC = "dc1.region1.example.com"

$targetDC = "dcX.region2.example.com"



$sourceDomain = "dc=region1,dc=example,dc=com"

$targetDomain = "dc=region2,dc=example,dc=com"



$sourceOU = "ou=Microsoft Exchange Security Groups," + $sourceDomain

$targetOU = "ou=Microsoft Exchange Security Groups," + $targetDomain



function moveExchangeGroup ([string]$whichGroup)

{

$targetString = "LDAP://" + $targetDC + "/" + $targetOU

$sourceString = "LDAP://" + $sourceDC + "/" + "cn=" + $whichGroup +
"," + $sourceOU

##$targetstring

##$sourcestring

##$targetObject = [adsi]$targetString

$sourceObject = [adsi]$sourceString

$sourceObject.psbase.MoveTo($targetString)

}



moveExchangeGroup "Exchange Organization Administrators"

moveExchangeGroup "Exchange Public Folder Administrators"

moveExchangeGroup "Exchange Recipient Administrators"

moveExchangeGroup "Exchange Servers"

moveExchangeGroup "Exchange View-Only Administrators"

moveExchangeGroup "ExchangeLegacyInterop"







Regards,



Michael B. Smith

MCITP:SA,EMA/MCSE/Exchange MVP

http://TheEssentialExchange.com



From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Monday, July 21, 2008 1:35 PM
To: ActiveDir@mail.activedir.org
Subject: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain




We just forest prepped for E2K7 this past weekend.



One of the last cleanup steps we wanted to perform was moving the six
Universal Groups out of the default Microsoft Exchange Security Groups OU in
the root domain and into one of our child account domains before we allow
them to be used for anything. So their membership is exactly as the forest
prep steps define them to be. (So preemptive answer - no issues with the
groups being members of domain local groups in the root)



Quick google and whip up a short vbscript for the MoveHere operation
targeting the destination RID master. Tests fine in dev, QA and in an
air-gapped production replica we spin up for schema changes. However, doing
it in prod under EA credentials results in error -2147016651. The server is
unwilling to process the request.



We try transferring the RID owner, but the new owner still throws the same
error.



Packet trace doesn't show anything useful that's different from when it
succeeds in Dev. In Dev you see the Modify RDN request, as referral
response from the destination RID master, RPC traffic of the domain move,
LDAP bind for the new object, success response and unbind. In prod, after
the same RID master referral response, it goes straight to an unbind.



Any help??






dloderUser is Offline

Posts:40

07/23/2008 10:25 AM  
We were able to figure it out.

The move has to originate from the source RID master.  The target doesn't matter.

https://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/distrib/dsbl_fsm_uvhg.mspx?mfr=true

We were not sourcing from the RID master in the parent domain.




From: michael@TheEssentialExchange.com
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
Date: Tue, 22 Jul 2008 16:05:45 -0400




.ExternalClass p.EC_MsoNormal, .ExternalClass li.EC_MsoNormal, .ExternalClass div.EC_MsoNormal
{margin-bottom:.0001pt;font-size:12.0pt;font-family:'Times New Roman','serif';}
.ExternalClass p
{margin-right:0in;margin-left:0in;font-size:12.0pt;font-family:'Times New Roman','serif';}
.ExternalClass span.EC_emailstyle18
{;}
.ExternalClass span.EC_emailstyle181
{font-family:'Calibri','sans-serif';color:#1F497D;}
.ExternalClass span.EC_EmailStyle20
{font-family:'Calibri','sans-serif';color:#1F497D;}
.ExternalClass .EC_MsoChpDefault
{;}
@page Section1
{size:8.5in 11.0in;}
.ExternalClass div.EC_Section1
{page:Section1;}




That looks right. Try the PowerShell. J

I got no other suggestions, sorry. What you are trying to do is supported.

Regards,

Michael B. Smith
MCITP:SA,EMA/MCSE/Exchange MVP
http://TheEssentialExchange.com


From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Tuesday, July 22, 2008 10:55 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain





strTargetRID = WScript.Arguments.Unnamed.Item(0)
strTargetOU  = WScript.Arguments.Unnamed.Item(1)
strSourceDN  = WScript.Arguments.Unnamed.Item(2)
set objObject = GetObject("LDAP://" & strTargetRID & "/" & strTargetOU)
objObject.MoveHere "LDAP://" & strSourceDN, vbNullString
Then called as

cscript Move.vbs RID_Target_in_child_domain "OU=Groups,OU=Exchange,OU=Apps,dc=child" "CN=Exchange Organization Administrators,OU=Microsoft Exchange Security Groups,DC=parent"
for each group.

--- On Mon, 7/21/08, Michael B. Smith <michael@TheEssentialExchange.com> wrote:

From: Michael B. Smith <michael@TheEssentialExchange.com>
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
To: ActiveDir@mail.activedir.org
Date: Monday, July 21, 2008, 7:13 PM


So…..is this what you did? If not, let us see some code, sanitized as necessary.

$sourceDC = “dc1.region1.example.com”
$targetDC = “dcX.region2.example.com”

$sourceDomain = “dc=region1,dc=example,dc=com”
$targetDomain = “dc=region2,dc=example,dc=com”

$sourceOU = “ou=Microsoft Exchange Security Groups,” + $sourceDomain
$targetOU = “ou=Microsoft Exchange Security Groups,” + $targetDomain

function moveExchangeGroup ([string]$whichGroup)
{
      $targetString = “LDAP://” + $targetDC + “/” + $targetOU
      $sourceString = “LDAP://” + $sourceDC + “/” + “cn=” + $whichGroup + “,” + $sourceOU
##$targetstring
##$sourcestring
      ##$targetObject = [adsi]$targetString
      $sourceObject = [adsi]$sourceString
      $sourceObject.psbase.MoveTo($targetString)
}

moveExchangeGroup “Exchange Organization Administrators”
moveExchangeGroup “Exchange Public Folder Administrators”
moveExchangeGroup “Exchange Recipient Administrators”
moveExchangeGroup “Exchange Servers”
moveExchangeGroup “Exchange View-Only Administrators”
moveExchangeGroup “ExchangeLegacyInterop”



Regards,

Michael B. Smith
MCITP:SA,EMA/MCSE/Exchange MVP
http://TheEssentialExchange.com


From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Monday, July 21, 2008 1:35 PM
To: ActiveDir@mail.activedir.org
Subject: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain





We just forest prepped for E2K7 this past weekend.

One of the last cleanup steps we wanted to perform was moving the six Universal Groups out of the default Microsoft Exchange Security Groups OU in the root domain and into one of our child account domains before we allow them to be used for anything.  So their membership is exactly as the forest prep steps define them to be. (So preemptive answer - no issues with the groups being members of domain local groups in the root)

Quick google and whip up a short vbscript for the MoveHere operation targeting the destination RID master.  Tests fine in dev, QA and in an air-gapped production replica we spin up for schema changes.  However, doing it in prod under EA credentials results in error -2147016651.  The server is unwilling to process the request.

We try transferring the RID owner, but the new owner still throws the same error.

Packet trace doesn't show anything useful that's different from when it succeeds in Dev.  In Dev you see the Modify RDN request, as referral response from the destination RID master, RPC traffic of the domain move, LDAP bind for the new object, success response and unbind.  In prod, after the same RID master referral response, it goes straight to an unbind.

Any help??


michael1User is Offline

Posts:178

07/23/2008 2:44 PM  
I had no clue of that. Thanks for feeding back.



Regards,



Michael B. Smith

MCITP:SA,EMA/MCSE/Exchange MVP

http://TheEssentialExchange.com



From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Wednesday, July 23, 2008 10:23 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain




We were able to figure it out.

The move has to originate from the source RID master. The target doesn't
matter.


https://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/distrib
/dsbl_fsm_uvhg.mspx?mfr=true

We were not sourcing from the RID master in the parent domain.

_____

From: michael@TheEssentialExchange.com
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
Date: Tue, 22 Jul 2008 16:05:45 -0400

That looks right. Try the PowerShell. J

I got no other suggestions, sorry. What you are trying to do is supported.

Regards,

Michael B. Smith

MCITP:SA,EMA/MCSE/Exchange MVP

http://TheEssentialExchange.com



From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Tuesday, July 22, 2008 10:55 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain




strTargetRID = WScript.Arguments.Unnamed.Item(0)
strTargetOU = WScript.Arguments.Unnamed.Item(1)
strSourceDN = WScript.Arguments.Unnamed.Item(2)

set objObject = GetObject("LDAP://" & strTargetRID & "/" & strTargetOU)
objObject.MoveHere "LDAP://" & strSourceDN, vbNullString

Then called as



cscript Move.vbs RID_Target_in_child_domain
"OU=Groups,OU=Exchange,OU=Apps,dc=child" "CN=Exchange Organization
Administrators,OU=Microsoft Exchange Security Groups,DC=parent"

for each group.

--- On Mon, 7/21/08, Michael B. Smith <michael@TheEssentialExchange.com>
wrote:

From: Michael B. Smith <michael@TheEssentialExchange.com>
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
To: ActiveDir@mail.activedir.org
Date: Monday, July 21, 2008, 7:13 PM






listmailUser is Offline

Posts:428

07/23/2008 2:48 PM  
Dave, you should have looked at AdMod to do this move...

In the usage notes

-xdom x Cross domain move, move to DC x. Use with -move. Must
specify FQDN of destination DC as parameter of -xdom.
The cross domain move has specified requirements which
are the same for all mechanisms used. To see the requirements
please look up IADsContainer::MoveHere in MSDN Library.


Then if you look up IADsContainer::MoveHere you see



Remarks


In Active Directory, you can move an object within the same domain or from
different domains in the same directory forest. For the cross domain move,
the following restrictions apply:


* The destination domain must be in the native mode.

* Objects to be moved must be a leaf object or an empty container.

* NT LAN Manager (NTLM) cannot perform authentication; use Kerberos
authentication or delegation. Be aware that if Kerberos authentication is
not used, the password transmits in plaintext over the network. To avoid
this, use delegation with secure authentication.

* You cannot move security principals (for example, user, group,
computer, and so on) belonging to a global group. When a security principal
is moved, a new SID is created for the object at the destination. However,
its old SID from the source, stored in the sIDHistory attribute, is
preserved, as well as the password of the object.

Note Use the Movetree.exe utility to move a subtree among different
domains. To move objects from a source domain to a destination domain using
the Movetree command-line tool, you must connect to the domain controller
holding the source domain's RID master role. If the RID master is
unavailable then objects cannot be moved to other domains. If you attempt to
move an object from one domain to another using the Movetree tool and you
specify a source domain controller that is not the RID master, a nonspecific
"Movetree failed" error message results.

Note When using the
<http://msdn.microsoft.com/en-us/library/aa772238(VS.85).aspx> ADsOpenObject
function to bind to an ADSI object, you must use the ADS_USE_DELEGATION flag
of the <http://msdn.microsoft.com/en-us/library/aa772247(VS.85).aspx>
ADS_AUTHENTICATION_ENUM in the dwReserved parameter of this function in
order to create cross-domain moves with IADsContainer::MoveHere. The
ADsOpenObject function is equivalent to the
<http://msdn.microsoft.com/en-us/library/aa706065(VS.85).aspx>
IADsOpenDSObject::OpenDsObject method. Likewise, using the OpenDsObject
method to bind to an ADSI object, the InReserved parameter of this method
must contain the ADS_USE_DELEGATION flag of the ADS_AUTHENTICATION_ENUM in
order to make cross-domain moves with IADsContainer::MoveHere.



--
O'Reilly Active Directory Third Edition -
http://www.joeware.net/win/ad3e.htm



_____

From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Wednesday, July 23, 2008 10:23 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain



We were able to figure it out.



The move has to originate from the source RID master. The target doesn't
matter.



https://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/distrib
/dsbl_fsm_uvhg.mspx?mfr=true



We were not sourcing from the RID master in the parent domain.



_____

From: michael@TheEssentialExchange.com
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
Date: Tue, 22 Jul 2008 16:05:45 -0400



That looks right. Try the PowerShell. J



I got no other suggestions, sorry. What you are trying to do is supported.



Regards,



Michael B. Smith

MCITP:SA,EMA/MCSE/Exchange MVP

http://TheEssentialExchange.com



From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Tuesday, July 22, 2008 10:55 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain




strTargetRID = WScript.Arguments.Unnamed.Item(0)
strTargetOU = WScript.Arguments.Unnamed.Item(1)
strSourceDN = WScript.Arguments.Unnamed.Item(2)

set objObject = GetObject("LDAP://" & strTargetRID & "/" & strTargetOU)
objObject.MoveHere "LDAP://" & strSourceDN, vbNullString

Then called as



cscript Move.vbs RID_Target_in_child_domain
"OU=Groups,OU=Exchange,OU=Apps,dc=child" "CN=Exchange Organization
Administrators,OU=Microsoft Exchange Security Groups,DC=parent"

for each group.

--- On Mon, 7/21/08, Michael B. Smith <michael@TheEssentialExchange.com>
wrote:

From: Michael B. Smith <michael@TheEssentialExchange.com>
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
To: ActiveDir@mail.activedir.org
Date: Monday, July 21, 2008, 7:13 PM

So...is this what you did? If not, let us see some code, sanitized as
necessary.



$sourceDC = "dc1.region1.example.com"

$targetDC = "dcX.region2.example.com"



$sourceDomain = "dc=region1,dc=example,dc=com"

$targetDomain = "dc=region2,dc=example,dc=com"



$sourceOU = "ou=Microsoft Exchange Security Groups," + $sourceDomain

$targetOU = "ou=Microsoft Exchange Security Groups," + $targetDomain



function moveExchangeGroup ([string]$whichGroup)

{

$targetString = "LDAP://" + $targetDC + "/" + $targetOU

$sourceString = "LDAP://" + $sourceDC + "/" + "cn=" + $whichGroup +
"," + $sourceOU

##$targetstring

##$sourcestring

##$targetObject = [adsi]$targetString

$sourceObject = [adsi]$sourceString

$sourceObject.psbase.MoveTo($targetString)

}



moveExchangeGroup "Exchange Organization Administrators"

moveExchangeGroup "Exchange Public Folder Administrators"

moveExchangeGroup "Exchange Recipient Administrators"

moveExchangeGroup "Exchange Servers"

moveExchangeGroup "Exchange View-Only Administrators"

moveExchangeGroup "ExchangeLegacyInterop"







Regards,



Michael B. Smith

MCITP:SA,EMA/MCSE/Exchange MVP

http://TheEssentialExchange.com



From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Monday, July 21, 2008 1:35 PM
To: ActiveDir@mail.activedir.org
Subject: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain




We just forest prepped for E2K7 this past weekend.



One of the last cleanup steps we wanted to perform was moving the six
Universal Groups out of the default Microsoft Exchange Security Groups OU in
the root domain and into one of our child account domains before we allow
them to be used for anything. So their membership is exactly as the forest
prep steps define them to be. (So preemptive answer - no issues with the
groups being members of domain local groups in the root)



Quick google and whip up a short vbscript for the MoveHere operation
targeting the destination RID master. Tests fine in dev, QA and in an
air-gapped production replica we spin up for schema changes. However, doing
it in prod under EA credentials results in error -2147016651. The server is
unwilling to process the request.



We try transferring the RID owner, but the new owner still throws the same
error.



Packet trace doesn't show anything useful that's different from when it
succeeds in Dev. In Dev you see the Modify RDN request, as referral
response from the destination RID master, RPC traffic of the domain move,
LDAP bind for the new object, success response and unbind. In prod, after
the same RID master referral response, it goes straight to an unbind.



Any help??







dloderUser is Offline

Posts:40

07/23/2008 4:26 PM  

If only we didn't have that pesky policy about freeware....Ώ]

And your sample's really helpful.  I'm assuming that's only in your super secret version of AdMod since that text is not in your current released version.  I bet it probably takes out the garbage too.

But even in the current AdMod, why does xdom have a requirement for destination DC?  Your help appears to me to perpetuate the same problem - that it's somehow the destination RID master that's important.  I can *now* do a MoveHere to a hostless destination LDAP URL with my script.

Once you know what to look for, it's easy to find.  But too much of the stuff out there that I've seen either doesn't reference the RID requirement at all, or does it backwards.

Ώ]Oh to long for the days when it wasn't even freeware for a few special peopleΐ].
ΐ]Or to be the proper owner of the source code.




From: listmail@joeware.net
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
Date: Wed, 23 Jul 2008 14:47:09 -0400



Dave, you should have looked at AdMod to do this move...

In the usage notes

-xdom x       Cross domain move, move to DC x. Use with -move. Must
              specify FQDN of destination DC as parameter of -xdom.
              The cross domain move has specified requirements which
              are the same for all mechanisms used. To see the requirements
              please look up IADsContainer::MoveHere in MSDN Library.


Then if you look up IADsContainer::MoveHere you see



Remarks
In Active Directory, you can move an object within the same domain or from different domains in the same directory forest. For the cross domain move, the following restrictions apply:


The destination domain must be in the native mode.
Objects to be moved must be a leaf object or an empty container.
NT LAN Manager (NTLM) cannot perform authentication; use Kerberos authentication or delegation. Be aware that if Kerberos authentication is not used, the password transmits in plaintext over the network. To avoid this, use delegation with secure authentication.
You cannot move security principals (for example, user, group, computer, and so on) belonging to a global group. When a security principal is moved, a new SID is created for the object at the destination. However, its old SID from the source, stored in the sIDHistory attribute, is preserved, as well as the password of the object.
Note  Use the Movetree.exe utility to move a subtree among different domains. To move objects from a source domain to a destination domain using the Movetree command-line tool, you must connect to the domain controller holding the source domain's RID master role. If the RID master is unavailable then objects cannot be moved to other domains. If you attempt to move an object from one domain to another using the Movetree tool and you specify a source domain controller that is not the RID master, a nonspecific "Movetree failed" error message results.
Note  When using the ADsOpenObject function to bind to an ADSI object, you must use the ADS_USE_DELEGATION flag of the ADS_AUTHENTICATION_ENUM in the dwReserved parameter of this function in order to create cross-domain moves with IADsContainer::MoveHere. The ADsOpenObject function is equivalent to the IADsOpenDSObject::OpenDsObject method. Likewise, using the OpenDsObject method to bind to an ADSI object, the InReserved parameter of this method must contain the ADS_USE_DELEGATION flag of the ADS_AUTHENTICATION_ENUM in order to make cross-domain moves with IADsContainer::MoveHere.




--
O'Reilly Active Directory Third Edition - http://www.joeware.net/win/ad3e.htm 





From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Wednesday, July 23, 2008 10:23 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain







We were able to figure it out.

The move has to originate from the source RID master.  The target doesn't matter.

https://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/distrib/dsbl_fsm_uvhg.mspx?mfr=true

We were not sourcing from the RID master in the parent domain.




From: michael@TheEssentialExchange.com
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
Date: Tue, 22 Jul 2008 16:05:45 -0400



@page Section1
{size:8.5in 11.0in;}
.ExternalClass P.EC_MsoNormal
{font-size:12pt;margin-bottom:0pt;font-family:'Times New Roman','serif';}
.ExternalClass LI.EC_MsoNormal
{font-size:12pt;margin-bottom:0pt;font-family:'Times New Roman','serif';}
.ExternalClass DIV.EC_MsoNormal
{font-size:12pt;margin-bottom:0pt;font-family:'Times New Roman','serif';}
.ExternalClass P
{font-size:12pt;margin-left:0in;margin-right:0in;font-family:'Times New Roman','serif';}
.ExternalClass SPAN.EC_emailstyle18
{;}
.ExternalClass SPAN.EC_emailstyle181
{color:#1f497d;font-family:'Calibri','sans-serif';}
.ExternalClass SPAN.EC_EmailStyle20
{color:#1f497d;font-family:'Calibri','sans-serif';}
.ExternalClass .EC_MsoChpDefault
{;}
.ExternalClass DIV.EC_Section1
{page:Section1;}



That looks right. Try the PowerShell. J

I got no other suggestions, sorry. What you are trying to do is supported.

Regards,

Michael B. Smith
MCITP:SA,EMA/MCSE/Exchange MVP
http://TheEssentialExchange.com


From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Tuesday, July 22, 2008 10:55 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain





strTargetRID = WScript.Arguments.Unnamed.Item(0)
strTargetOU  = WScript.Arguments.Unnamed.Item(1)
strSourceDN  = WScript.Arguments.Unnamed.Item(2)
set objObject = GetObject("LDAP://" & strTargetRID & "/" & strTargetOU)
objObject.MoveHere "LDAP://" & strSourceDN, vbNullString
Then called as

cscript Move.vbs RID_Target_in_child_domain "OU=Groups,OU=Exchange,OU=Apps,dc=child" "CN=Exchange Organization Administrators,OU=Microsoft Exchange Security Groups,DC=parent"
for each group.

--- On Mon, 7/21/08, Michael B. Smith <michael@TheEssentialExchange.com> wrote:

From: Michael B. Smith <michael@TheEssentialExchange.com>
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
To: ActiveDir@mail.activedir.org
Date: Monday, July 21, 2008, 7:13 PM


So…..is this what you did? If not, let us see some code, sanitized as necessary.

$sourceDC = “dc1.region1.example.com”
$targetDC = “dcX.region2.example.com”

$sourceDomain = “dc=region1,dc=example,dc=com”
$targetDomain = “dc=region2,dc=example,dc=com”

$sourceOU = “ou=Microsoft Exchange Security Groups,” + $sourceDomain
$targetOU = “ou=Microsoft Exchange Security Groups,” + $targetDomain

function moveExchangeGroup ([string]$whichGroup)
{
      $targetString = “LDAP://” + $targetDC + “/” + $targetOU
      $sourceString = “LDAP://” + $sourceDC + “/” + “cn=” + $whichGroup + “,” + $sourceOU
##$targetstring
##$sourcestring
      ##$targetObject = [adsi]$targetString
      $sourceObject = [adsi]$sourceString
      $sourceObject.psbase.MoveTo($targetString)
}

moveExchangeGroup “Exchange Organization Administrators”
moveExchangeGroup “Exchange Public Folder Administrators”
moveExchangeGroup “Exchange Recipient Administrators”
moveExchangeGroup “Exchange Servers”
moveExchangeGroup “Exchange View-Only Administrators”
moveExchangeGroup “ExchangeLegacyInterop”



Regards,

Michael B. Smith
MCITP:SA,EMA/MCSE/Exchange MVP
http://TheEssentialExchange.com


From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Monday, July 21, 2008 1:35 PM
To: ActiveDir@mail.activedir.org
Subject: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain





We just forest prepped for E2K7 this past weekend.

One of the last cleanup steps we wanted to perform was moving the six Universal Groups out of the default Microsoft Exchange Security Groups OU in the root domain and into one of our child account domains before we allow them to be used for anything.  So their membership is exactly as the forest prep steps define them to be. (So preemptive answer - no issues with the groups being members of domain local groups in the root)

Quick google and whip up a short vbscript for the MoveHere operation targeting the destination RID master.  Tests fine in dev, QA and in an air-gapped production replica we spin up for schema changes.  However, doing it in prod under EA credentials results in error -2147016651.  The server is unwilling to process the request.

We try transferring the RID owner, but the new owner still throws the same error.

Packet trace doesn't show anything useful that's different from when it succeeds in Dev.  In Dev you see the Modify RDN request, as referral response from the destination RID master, RPC traffic of the domain move, LDAP bind for the new object, success response and unbind.  In prod, after the same RID master referral response, it goes straight to an unbind.

Any help??



listmailUser is Offline

Posts:428

07/24/2008 12:37 AM  
LOL, busted. You are right, V01.10.00 has the short help for that switch...
My bad, sorry, it is in the still buggy unreleased V01.11.00 - trust me you
don't want this version yet.

-xdom x Cross domain move, move to DC x. Use with -move. Must
specify FQDN of destination DC as parameter of -xdom.

I added the rest of that info as a DCR in a way that could reflect the
current requirements anytime you looked. :)


As for why you have to specify the destination host... I believe (I wrote
that code over 2 years ago) the CROSSDOM Server control requires a DC in
FQDN format to be specified in the control. I could probably crutch it by
doing some extra work and picking a DC through the locator process if not
specified but honestly, something like this should be pretty well defined in
what you are doing and I wanted people to understand what they are doing.
Also, if I wanted someone to specify a RID master I would have specified it
in the usage, at least I expect I would. <eg>

Without being able to use joeware there anymore... you guys must be
rewriting a ton of processes and tools. There was a lot that was dependent
on various joeware utilities. You guys should just pay me to come back, it
would probably be cheaper. :)

joe



--
O'Reilly Active Directory Third Edition -
http://www.joeware.net/win/ad3e.htm



_____

From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Wednesday, July 23, 2008 4:24 PM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain




If only we didn't have that pesky policy about freeware....Ώ]



And your sample's really helpful. I'm assuming that's only in your super
secret version of AdMod since that text is not in your current released
version. I bet it probably takes out the garbage too.



But even in the current AdMod, why does xdom have a requirement for
destination DC? Your help appears to me to perpetuate the same problem -
that it's somehow the destination RID master that's important. I can *now*
do a MoveHere to a hostless destination LDAP URL with my script.



Once you know what to look for, it's easy to find. But too much of the
stuff out there that I've seen either doesn't reference the RID requirement
at all, or does it backwards.


Ώ]Oh to long for the days when it wasn't even freeware for a few special
peopleΐ].

ΐ]Or to be the proper owner of the source code.



_____

From: listmail@joeware.net
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
Date: Wed, 23 Jul 2008 14:47:09 -0400



Dave, you should have looked at AdMod to do this move...

In the usage notes

-xdom x Cross domain move, move to DC x. Use with -move. Must
specify FQDN of destination DC as parameter of -xdom.
The cross domain move has specified requirements which
are the same for all mechanisms used. To see the requirements
please look up IADsContainer::MoveHere in MSDN Library.


Then if you look up IADsContainer::MoveHere you see



Remarks


In Active Directory, you can move an object within the same domain or from
different domains in the same directory forest. For the cross domain move,
the following restrictions apply:


* The destination domain must be in the native mode.

* Objects to be moved must be a leaf object or an empty container.

* NT LAN Manager (NTLM) cannot perform authentication; use Kerberos
authentication or delegation. Be aware that if Kerberos authentication is
not used, the password transmits in plaintext over the network. To avoid
this, use delegation with secure authentication.

* You cannot move security principals (for example, user, group,
computer, and so on) belonging to a global group. When a security principal
is moved, a new SID is created for the object at the destination. However,
its old SID from the source, stored in the sIDHistory attribute, is
preserved, as well as the password of the object.

Note Use the Movetree.exe utility to move a subtree among different
domains. To move objects from a source domain to a destination domain using
the Movetree command-line tool, you must connect to the domain controller
holding the source domain's RID master role. If the RID master is
unavailable then objects cannot be moved to other domains. If you attempt to
move an object from one domain to another using the Movetree tool and you
specify a source domain controller that is not the RID master, a nonspecific
"Movetree failed" error message results.

Note When using the
<http://msdn.microsoft.com/en-us/library/aa772238(VS.85).aspx> ADsOpenObject
function to bind to an ADSI object, you must use the ADS_USE_DELEGATION flag
of the <http://msdn.microsoft.com/en-us/library/aa772247(VS.85).aspx>
ADS_AUTHENTICATION_ENUM in the dwReserved parameter of this function in
order to create cross-domain moves with IADsContainer::MoveHere. The
ADsOpenObject function is equivalent to the
<http://msdn.microsoft.com/en-us/library/aa706065(VS.85).aspx>
IADsOpenDSObject::OpenDsObject method. Likewise, using the OpenDsObject
method to bind to an ADSI object, the InReserved parameter of this method
must contain the ADS_USE_DELEGATION flag of the ADS_AUTHENTICATION_ENUM in
order to make cross-domain moves with IADsContainer::MoveHere.



--
O'Reilly Active Directory Third Edition -
<http://www.joeware.net/win/ad3e.htm> http://www.joeware.net/win/ad3e.htm



_____

From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Wednesday, July 23, 2008 10:23 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain



We were able to figure it out.



The move has to originate from the source RID master. The target doesn't
matter.




<https://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/distri
b/dsbl_fsm_uvhg.mspx?mfr=true>
https://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/distrib
/dsbl_fsm_uvhg.mspx?mfr=true



We were not sourcing from the RID master in the parent domain.



_____

From: michael@TheEssentialExchange.com
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
Date: Tue, 22 Jul 2008 16:05:45 -0400



That looks right. Try the PowerShell. J



I got no other suggestions, sorry. What you are trying to do is supported.



Regards,



Michael B. Smith

MCITP:SA,EMA/MCSE/Exchange MVP

http://TheEssentialExchange.com



From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Tuesday, July 22, 2008 10:55 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain




strTargetRID = WScript.Arguments.Unnamed.Item(0)
strTargetOU = WScript.Arguments.Unnamed.Item(1)
strSourceDN = WScript.Arguments.Unnamed.Item(2)

set objObject = GetObject("LDAP://" & strTargetRID & "/" & strTargetOU)
objObject.MoveHere "LDAP://" & strSourceDN, vbNullString

Then called as



cscript Move.vbs RID_Target_in_child_domain
"OU=Groups,OU=Exchange,OU=Apps,dc=child" "CN=Exchange Organization
Administrators,OU=Microsoft Exchange Security Groups,DC=parent"

for each group.

--- On Mon, 7/21/08, Michael B. Smith <michael@TheEssentialExchange.com>
wrote:

From: Michael B. Smith <michael@TheEssentialExchange.com>
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
To: ActiveDir@mail.activedir.org
Date: Monday, July 21, 2008, 7:13 PM

So...is this what you did? If not, let us see some code, sanitized as
necessary.



$sourceDC = "dc1.region1.example.com"

$targetDC = "dcX.region2.example.com"



$sourceDomain = "dc=region1,dc=example,dc=com"

$targetDomain = "dc=region2,dc=example,dc=com"



$sourceOU = "ou=Microsoft Exchange Security Groups," + $sourceDomain

$targetOU = "ou=Microsoft Exchange Security Groups," + $targetDomain



function moveExchangeGroup ([string]$whichGroup)

{

$targetString = "LDAP://" + $targetDC + "/" + $targetOU

$sourceString = "LDAP://" + $sourceDC + "/" + "cn=" + $whichGroup +
"," + $sourceOU

##$targetstring

##$sourcestring

##$targetObject = [adsi]$targetString

$sourceObject = [adsi]$sourceString

$sourceObject.psbase.MoveTo($targetString)

}



moveExchangeGroup "Exchange Organization Administrators"

moveExchangeGroup "Exchange Public Folder Administrators"

moveExchangeGroup "Exchange Recipient Administrators"

moveExchangeGroup "Exchange Servers"

moveExchangeGroup "Exchange View-Only Administrators"

moveExchangeGroup "ExchangeLegacyInterop"







Regards,



Michael B. Smith

MCITP:SA,EMA/MCSE/Exchange MVP

http://TheEssentialExchange.com



From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Monday, July 21, 2008 1:35 PM
To: ActiveDir@mail.activedir.org
Subject: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain




We just forest prepped for E2K7 this past weekend.



One of the last cleanup steps we wanted to perform was moving the six
Universal Groups out of the default Microsoft Exchange Security Groups OU in
the root domain and into one of our child account domains before we allow
them to be used for anything. So their membership is exactly as the forest
prep steps define them to be. (So preemptive answer - no issues with the
groups being members of domain local groups in the root)



Quick google and whip up a short vbscript for the MoveHere operation
targeting the destination RID master. Tests fine in dev, QA and in an
air-gapped production replica we spin up for schema changes. However, doing
it in prod under EA credentials results in error -2147016651. The server is
unwilling to process the request.



We try transferring the RID owner, but the new owner still throws the same
error.



Packet trace doesn't show anything useful that's different from when it
succeeds in Dev. In Dev you see the Modify RDN request, as referral
response from the destination RID master, RPC traffic of the domain move,
LDAP bind for the new object, success response and unbind. In prod, after
the same RID master referral response, it goes straight to an unbind.



Any help??








rkaramchandUser is Offline

Posts:12

07/24/2008 6:34 AM  
David



You could have simply used movetree from resource kit running from root
RID









From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Wednesday, July 23, 2008 4:24 PM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups
Cross-Domain




If only we didn't have that pesky policy about freeware....Ώ]



And your sample's really helpful. I'm assuming that's only in your
super secret version of AdMod since that text is not in your current
released version. I bet it probably takes out the garbage too.



But even in the current AdMod, why does xdom have a requirement for
destination DC? Your help appears to me to perpetuate the same problem
- that it's somehow the destination RID master that's important. I can
*now* do a MoveHere to a hostless destination LDAP URL with my script.



Once you know what to look for, it's easy to find. But too much of the
stuff out there that I've seen either doesn't reference the RID
requirement at all, or does it backwards.

Ώ]Oh to long for the days when it wasn't even freeware for a few
special peopleΐ].

ΐ]Or to be the proper owner of the source code.

________________________________

From: listmail@joeware.net
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups
Cross-Domain
Date: Wed, 23 Jul 2008 14:47:09 -0400

Dave, you should have looked at AdMod to do this move...



In the usage notes



-xdom x Cross domain move, move to DC x. Use with -move. Must
specify FQDN of destination DC as parameter of -xdom.
The cross domain move has specified requirements which
are the same for all mechanisms used. To see the
requirements
please look up IADsContainer::MoveHere in MSDN Library.





Then if you look up IADsContainer::MoveHere you see






Remarks


In Active Directory, you can move an object within the same domain or
from different domains in the same directory forest. For the cross
domain move, the following restrictions apply:

* The destination domain must be in the native mode.
* Objects to be moved must be a leaf object or an empty container.

* NT LAN Manager (NTLM) cannot perform authentication; use
Kerberos authentication or delegation. Be aware that if Kerberos
authentication is not used, the password transmits in plaintext over the
network. To avoid this, use delegation with secure authentication.
* You cannot move security principals (for example, user, group,
computer, and so on) belonging to a global group. When a security
principal is moved, a new SID is created for the object at the
destination. However, its old SID from the source, stored in the
sIDHistory attribute, is preserved, as well as the password of the
object.

Note Use the Movetree.exe utility to move a subtree among different
domains. To move objects from a source domain to a destination domain
using the Movetree command-line tool, you must connect to the domain
controller holding the source domain's RID master role. If the RID
master is unavailable then objects cannot be moved to other domains. If
you attempt to move an object from one domain to another using the
Movetree tool and you specify a source domain controller that is not the
RID master, a nonspecific "Movetree failed" error message results.

Note When using the ADsOpenObject
<http://msdn.microsoft.com/en-us/library/aa772238(VS.85).aspx> function
to bind to an ADSI object, you must use the ADS_USE_DELEGATION flag of
the ADS_AUTHENTICATION_ENUM
<http://msdn.microsoft.com/en-us/library/aa772247(VS.85).aspx> in the
dwReserved parameter of this function in order to create cross-domain
moves with IADsContainer::MoveHere. The ADsOpenObject function is
equivalent to the IADsOpenDSObject::OpenDsObject
<http://msdn.microsoft.com/en-us/library/aa706065(VS.85).aspx> method.
Likewise, using the OpenDsObject method to bind to an ADSI object, the
InReserved parameter of this method must contain the ADS_USE_DELEGATION
flag of the ADS_AUTHENTICATION_ENUM in order to make cross-domain moves
with IADsContainer::MoveHere.





--

O'Reilly Active Directory Third Edition -
http://www.joeware.net/win/ad3e.htm
<http://www.joeware.net/win/ad3e.htm>







________________________________

From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Wednesday, July 23, 2008 10:23 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups
Cross-Domain

We were able to figure it out.



The move has to originate from the source RID master. The target
doesn't matter.



https://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/dis
trib/dsbl_fsm_uvhg.mspx?mfr=true
<https://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/di
strib/dsbl_fsm_uvhg.mspx?mfr=true>



We were not sourcing from the RID master in the parent domain.

________________________________

From: michael@TheEssentialExchange.com
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups
Cross-Domain
Date: Tue, 22 Jul 2008 16:05:45 -0400

That looks right. Try the PowerShell. J



I got no other suggestions, sorry. What you are trying to do is
supported.



Regards,



Michael B. Smith

MCITP:SA,EMA/MCSE/Exchange MVP

http://TheEssentialExchange.com



From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Tuesday, July 22, 2008 10:55 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups
Cross-Domain



strTargetRID = WScript.Arguments.Unnamed.Item(0)
strTargetOU = WScript.Arguments.Unnamed.Item(1)
strSourceDN = WScript.Arguments.Unnamed.Item(2)

set objObject = GetObject("LDAP://" & strTargetRID & "/" & strTargetOU)
objObject.MoveHere "LDAP://" & strSourceDN, vbNullString

Then called as



cscript Move.vbs RID_Target_in_child_domain
"OU=Groups,OU=Exchange,OU=Apps,dc=child" "CN=Exchange Organization
Administrators,OU=Microsoft Exchange Security Groups,DC=parent"

for each group.

--- On Mon, 7/21/08, Michael B. Smith <michael@TheEssentialExchange.com>
wrote:

From: Michael B. Smith <michael@TheEssentialExchange.com>
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups
Cross-Domain
To: ActiveDir@mail.activedir.org
Date: Monday, July 21, 2008, 7:13 PM

So.....is this what you did? If not, let us see some code,
sanitized as necessary.



$sourceDC = "dc1.region1.example.com"

$targetDC = "dcX.region2.example.com"



$sourceDomain = "dc=region1,dc=example,dc=com"

$targetDomain = "dc=region2,dc=example,dc=com"



$sourceOU = "ou=Microsoft Exchange Security Groups," +
$sourceDomain

$targetOU = "ou=Microsoft Exchange Security Groups," +
$targetDomain



function moveExchangeGroup ([string]$whichGroup)

{

$targetString = "LDAP://" + $targetDC + "/" + $targetOU

$sourceString = "LDAP://" + $sourceDC + "/" + "cn=" +
$whichGroup + "," + $sourceOU

##$targetstring

##$sourcestring

##$targetObject = [adsi]$targetString

$sourceObject = [adsi]$sourceString

$sourceObject.psbase.MoveTo($targetString)

}



moveExchangeGroup "Exchange Organization Administrators"

moveExchangeGroup "Exchange Public Folder Administrators"

moveExchangeGroup "Exchange Recipient Administrators"

moveExchangeGroup "Exchange Servers"

moveExchangeGroup "Exchange View-Only Administrators"

moveExchangeGroup "ExchangeLegacyInterop"







Regards,



Michael B. Smith

MCITP:SA,EMA/MCSE/Exchange MVP

http://TheEssentialExchange.com



From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Monday, July 21, 2008 1:35 PM
To: ActiveDir@mail.activedir.org
Subject: [ActiveDir] Unable to move E2K7 Universal Groups
Cross-Domain



We just forest prepped for E2K7 this past weekend.



One of the last cleanup steps we wanted to perform was moving the six
Universal Groups out of the default Microsoft Exchange Security Groups
OU in the root domain and into one of our child account domains before
we allow them to be used for anything. So their membership is exactly
as the forest prep steps define them to be. (So preemptive answer - no
issues with the groups being members of domain local groups in the root)



Quick google and whip up a short vbscript for the MoveHere operation
targeting the destination RID master. Tests fine in dev, QA and in an
air-gapped production replica we spin up for schema changes. However,
doing it in prod under EA credentials results in error -2147016651. The
server is unwilling to process the request.



We try transferring the RID owner, but the new owner still throws the
same error.



Packet trace doesn't show anything useful that's different from when it
succeeds in Dev. In Dev you see the Modify RDN request, as referral
response from the destination RID master, RPC traffic of the domain
move, LDAP bind for the new object, success response and unbind. In
prod, after the same RID master referral response, it goes straight to
an unbind.



Any help??








dloderUser is Offline

Posts:40

07/25/2008 2:01 AM  

Except I didn't want to move a whole OU, so we never looked at MoveTree.

MoveTree also suffers from the same documentation problem.  The help for MoveTree has no reference to the source needing to be the RID master.  It doesn't even mention RID masters at all.  The only thing that's nice about MoveTree is that it actually returns the useful error message.

ReturnCode: 0x2012 The requested operation could not be performed because the directory service is not the master for that type of operation.

ADSI only returns unwilling to perform.  We had to bump up Directory Access diags to get that useful error logged in the event viewer, which led us to our solution.

Why even offer source server as a required input parameter when there's only one possible value that can result in anything other than failure?





Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
Date: Thu, 24 Jul 2008 06:31:09 -0400
From: Rajeev.Chauhan@hud.gov
To: ActiveDir@mail.activedir.org




.ExternalClass .EC_shape
{;}



.ExternalClass p.EC_MsoNormal, .ExternalClass li.EC_MsoNormal, .ExternalClass div.EC_MsoNormal
{margin-bottom:.0001pt;font-size:12.0pt;font-family:'Times New Roman','serif';}
.ExternalClass h4
{margin-right:0in;margin-left:0in;font-size:12.0pt;font-family:'Times New Roman','serif';font-weight:bold;}
.ExternalClass a:link, .ExternalClass span.EC_MsoHyperlink
{color:blue;text-decoration:underline;}
.ExternalClass a:visited, .ExternalClass span.EC_MsoHyperlinkFollowed
{color:purple;text-decoration:underline;}
.ExternalClass p
{margin-right:0in;margin-left:0in;font-size:12.0pt;font-family:'Times New Roman','serif';}
.ExternalClass span.EC_ec376554418-23072008
{;}
.ExternalClass span.EC_Heading4Char
{font-family:'Cambria','serif';color:#4F81BD;font-weight:bold;font-style:italic;}
.ExternalClass p.EC_ecnote, .ExternalClass li.EC_ecnote, .ExternalClass div.EC_ecnote
{margin-right:0in;margin-left:0in;font-size:12.0pt;font-family:'Times New Roman','serif';}
.ExternalClass span.EC_ec625444604-27012006
{;}
.ExternalClass p.EC_ecmsonormal, .ExternalClass li.EC_ecmsonormal, .ExternalClass div.EC_ecmsonormal
{margin-right:0in;margin-left:0in;font-size:12.0pt;font-family:'Times New Roman','serif';}
.ExternalClass span.EC_ecemailstyle181
{;}
.ExternalClass span.EC_ecemailstyle20
{;}
.ExternalClass p.EC_ecmsonormal1, .ExternalClass li.EC_ecmsonormal1, .ExternalClass div.EC_ecmsonormal1
{margin-right:0in;margin-bottom:0in;margin-left:0in;margin-bottom:.0001pt;font-size:12.0pt;font-family:'Times New Roman','serif';}
.ExternalClass span.EC_ecemailstyle1811
{font-family:'Calibri','sans-serif';color:#1F497D;}
.ExternalClass span.EC_ecemailstyle201
{font-family:'Calibri','sans-serif';color:#1F497D;}
.ExternalClass p.EC_ececmsonormal, .ExternalClass li.EC_ececmsonormal, .ExternalClass div.EC_ececmsonormal
{margin-right:0in;margin-left:0in;font-size:12.0pt;font-family:'Times New Roman','serif';}
.ExternalClass span.EC_EmailStyle30
{font-family:'Calibri','sans-serif';color:#1F497D;}
.ExternalClass .EC_MsoChpDefault
{;}
@page Section1
{size:8.5in 11.0in;}
.ExternalClass div.EC_Section1
{page:Section1;}
.ExternalClass ol
{margin-bottom:0in;}
.ExternalClass ul
{margin-bottom:0in;}




David

You could have simply used movetree from resource kit running from root RID





From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Wednesday, July 23, 2008 4:24 PM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain






If only we didn't have that pesky policy about freeware....Ώ]

And your sample's really helpful.  I'm assuming that's only in your super secret version of AdMod since that text is not in your current released version.  I bet it probably takes out the garbage too.

But even in the current AdMod, why does xdom have a requirement for destination DC?  Your help appears to me to perpetuate the same problem - that it's somehow the destination RID master that's important.  I can *now* do a MoveHere to a hostless destination LDAP URL with my script.

Once you know what to look for, it's easy to find.  But too much of the stuff out there that I've seen either doesn't reference the RID requirement at all, or does it backwards.
Ώ]Oh to long for the days when it wasn't even freeware for a few special peopleΐ].
ΐ]Or to be the proper owner of the source code.



From: listmail@joeware.net
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
Date: Wed, 23 Jul 2008 14:47:09 -0400
Dave, you should have looked at AdMod to do this move...

In the usage notes

-xdom x       Cross domain move, move to DC x. Use with -move. Must
              specify FQDN of destination DC as parameter of -xdom.
              The cross domain move has specified requirements which
              are the same for all mechanisms used. To see the requirements
              please look up IADsContainer::MoveHere in MSDN Library.


Then if you look up IADsContainer::MoveHere you see


Remarks
In Active Directory, you can move an object within the same domain or from different domains in the same directory forest. For the cross domain move, the following restrictions apply:

The destination domain must be in the native mode.
Objects to be moved must be a leaf object or an empty container.
NT LAN Manager (NTLM) cannot perform authentication; use Kerberos authentication or delegation. Be aware that if Kerberos authentication is not used, the password transmits in plaintext over the network. To avoid this, use delegation with secure authentication.
You cannot move security principals (for example, user, group, computer, and so on) belonging to a global group. When a security principal is moved, a new SID is created for the object at the destination. However, its old SID from the source, stored in the sIDHistory attribute, is preserved, as well as the password of the object.
Note  Use the Movetree.exe utility to move a subtree among different domains. To move objects from a source domain to a destination domain using the Movetree command-line tool, you must connect to the domain controller holding the source domain's RID master role. If the RID master is unavailable then objects cannot be moved to other domains. If you attempt to move an object from one domain to another using the Movetree tool and you specify a source domain controller that is not the RID master, a nonspecific "Movetree failed" error message results.
Note  When using the ADsOpenObject function to bind to an ADSI object, you must use the ADS_USE_DELEGATION flag of the ADS_AUTHENTICATION_ENUM in the dwReserved parameter of this function in order to create cross-domain moves with IADsContainer::MoveHere. The ADsOpenObject function is equivalent to the IADsOpenDSObject::OpenDsObject method. Likewise, using the OpenDsObject method to bind to an ADSI object, the InReserved parameter of this method must contain the ADS_USE_DELEGATION flag of the ADS_AUTHENTICATION_ENUM in order to make cross-domain moves with IADsContainer::MoveHere.




--
O'Reilly Active Directory Third Edition - http://www.joeware.net/win/ad3e.htm 







From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Wednesday, July 23, 2008 10:23 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain




We were able to figure it out.

The move has to originate from the source RID master.  The target doesn't matter.

https://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/distrib/dsbl_fsm_uvhg.mspx?mfr=true

We were not sourcing from the RID master in the parent domain.



From: michael@TheEssentialExchange.com
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
Date: Tue, 22 Jul 2008 16:05:45 -0400

That looks right. Try the PowerShell. J

I got no other suggestions, sorry. What you are trying to do is supported.

Regards,

Michael B. Smith
MCITP:SA,EMA/MCSE/Exchange MVP
http://TheEssentialExchange.com


From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Tuesday, July 22, 2008 10:55 AM
To: ActiveDir@mail.activedir.org
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain





strTargetRID = WScript.Arguments.Unnamed.Item(0)
strTargetOU  = WScript.Arguments.Unnamed.Item(1)
strSourceDN  = WScript.Arguments.Unnamed.Item(2)
set objObject = GetObject("LDAP://" & strTargetRID & "/" & strTargetOU)
objObject.MoveHere "LDAP://" & strSourceDN, vbNullString
Then called as

cscript Move.vbs RID_Target_in_child_domain "OU=Groups,OU=Exchange,OU=Apps,dc=child" "CN=Exchange Organization Administrators,OU=Microsoft Exchange Security Groups,DC=parent"
for each group.

--- On Mon, 7/21/08, Michael B. Smith <michael@TheEssentialExchange.com> wrote:

From: Michael B. Smith <michael@TheEssentialExchange.com>
Subject: RE: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain
To: ActiveDir@mail.activedir.org
Date: Monday, July 21, 2008, 7:13 PM


So…..is this what you did? If not, let us see some code, sanitized as necessary.

$sourceDC = “dc1.region1.example.com”
$targetDC = “dcX.region2.example.com”

$sourceDomain = “dc=region1,dc=example,dc=com”
$targetDomain = “dc=region2,dc=example,dc=com”

$sourceOU = “ou=Microsoft Exchange Security Groups,” + $sourceDomain
$targetOU = “ou=Microsoft Exchange Security Groups,” + $targetDomain

function moveExchangeGroup ([string]$whichGroup)
{
      $targetString = “LDAP://” + $targetDC + “/” + $targetOU
      $sourceString = “LDAP://” + $sourceDC + “/” + “cn=” + $whichGroup + “,” + $sourceOU
##$targetstring
##$sourcestring
      ##$targetObject = [adsi]$targetString
      $sourceObject = [adsi]$sourceString
      $sourceObject.psbase.MoveTo($targetString)
}

moveExchangeGroup “Exchange Organization Administrators”
moveExchangeGroup “Exchange Public Folder Administrators”
moveExchangeGroup “Exchange Recipient Administrators”
moveExchangeGroup “Exchange Servers”
moveExchangeGroup “Exchange View-Only Administrators”
moveExchangeGroup “ExchangeLegacyInterop”



Regards,

Michael B. Smith
MCITP:SA,EMA/MCSE/Exchange MVP
http://TheEssentialExchange.com


From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of David Loder
Sent: Monday, July 21, 2008 1:35 PM
To: ActiveDir@mail.activedir.org
Subject: [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain





We just forest prepped for E2K7 this past weekend.

One of the last cleanup steps we wanted to perform was moving the six Universal Groups out of the default Microsoft Exchange Security Groups OU in the root domain and into one of our child account domains before we allow them to be used for anything.  So their membership is exactly as the forest prep steps define them to be. (So preemptive answer - no issues with the groups being members of domain local groups in the root)

Quick google and whip up a short vbscript for the MoveHere operation targeting the destination RID master.  Tests fine in dev, QA and in an air-gapped production replica we spin up for schema changes.  However, doing it in prod under EA credentials results in error -2147016651.  The server is unwilling to process the request.

We try transferring the RID owner, but the new owner still throws the same error.

Packet trace doesn't show anything useful that's different from when it succeeds in Dev.  In Dev you see the Modify RDN request, as referral response from the destination RID master, RPC traffic of the domain move, LDAP bind for the new object, success response and unbind.  In prod, after the same RID master referral response, it goes straight to an unbind.

Any help??



You are not authorized to post a reply.
Forums >ActiveDir Mail List Archive >List Archives > [ActiveDir] Unable to move E2K7 Universal Groups Cross-Domain



ActiveForums 3.7
AdventNet Banner
Friends

Friends

Namescape
Members

Members

MembershipMembership:
Latest New UserLatest:cmilte
New TodayNew Today:2
New YesterdayNew Yesterday:1
User CountOverall:4264

People OnlinePeople Online:
VisitorsVisitors:58
MembersMembers:0
TotalTotal:58

Online NowOnline Now:

Ads

Copyright 2008 ActiveDir.org
Terms Of Use