Powershell: Move-ADObject: не удалось выполнить операцию, так как родительский объект объекта не создан или удален - PullRequest
0 голосов
/ 23 января 2020

У меня проблема со скриптом в Powershell ...

Я хочу перенести пользователей из OU (родительский OU: "IT" для примера) в "child OU" => "Users ». ("IT"> "Пользователи").

Проблема :

$name = "CN=Michael Allen,OU=IT,DC=Adatum,DC=com" 
Move-ADObject "CN=Michael Allen,OU=IT,DC=Adatum,DC=com" -TargetPath "OU=IT,OU=Users,DC=Adatum,DC=com"
Move-ADObject : The operation could not be performed because the object's parent is either 
uninstantiated or deleted
At line:5 char:1
+ Move-ADObject "CN=Michael Allen,OU=IT,DC=Adatum,DC=com" -TargetPath "OU=IT,OU=Us ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (CN=Michael Allen,OU=IT,DC=Adatum,DC=com:ADObject) [Move-AD 
   Object], ADException
    + FullyQualifiedErrorId : ActiveDirectoryServer:8329,Microsoft.ActiveDirectory.Management.Commands. 
   MoveADObject

Мой код :

$root = [ADSI]"LDAP://RootDSE"
$DOMAIN = $root.Get("rootDomainNamingContext")

#Informations serveur & domaine (Ex. : SERVER='LON-DC' / DOMAIN='DC=Adatum,DC=com')"
$SERVER = (Get-WmiObject Win32_ComputerSystem).Name
$root = [ADSI]"LDAP://RootDSE"
$DOMAIN = $root.Get("rootDomainNamingContext")

#Sous OU des OU parentes
$CHILD_OU1 = "Users"
$CHILD_OU2 = "Computers"
$CHILD_OU3 = "Groups"

#Pour chaque sous-OUs "Users", on récupère les utilisateurs des OU parent du fichier texte défini et on les transferts
foreach ($PARENT_OU in $OU_FILE) {
    #Récupération de la liste des utilisateurs de l'OU parente
    $users = Get-ADUser -Filter * -SearchBase "OU=$PARENT_OU,$DOMAIN"
    #Write-Host "Liste d'utilisateurs pour : $PARENT_OU : [$users]"

    #Pour chaque utilisateurs de la liste dans l'OU parente, on le transfert dans l'OU enfante "Users"
    foreach ($user in $users) {
    Write-Host "Utilisateur pour le transfert : $user"
    Write-Host "OU parente : $PARENT_OU"
    Write-Host "OU enfante : $CHILD_OU1"
    Move-ADObject -Identity "$user" -Server $SERVER -TargetPath "OU=$PARENT_OU,OU=$CHILD_OU1,$DOMAIN"
    }

}

Я француз, и я стараюсь много времени делать этот сценарий, но я не могу понять ... Может ли кто-нибудь помочь мне, пожалуйста?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 23 января 2020

Спасибо всем за ответы! Но я обнаружил проблему, которая была настолько «действительно глупой из меня» ...

My Move-AdObject was :
Move-ADObject -Identity "$user" -Server $SERVER -TargetPath "OU=$PARENT_OU,OU=$CHILD_OU1,$DOMAIN"

И это было:

Мой Move-AdObject был: Move-ADObject -Identity "$ user "-Server $ SERVER -TargetPath" OU = $ CHILD_OU1, OU = $ PARENT_OU , $ DOMAIN ".

Спасибо за ваши ответы, я замечаю все детали, и это поможет мне.

Хорошее продолжение:)

0 голосов
/ 23 января 2020

Обычно эта ошибка появляется, когда путь к целевому подразделению не может быть проверен, существует ли уже подразделение «Пользователи» в подразделении «ИТ»? Другой метод отладки - создать временного пользователя в подразделении назначения и сравнить его местоположение с назначением, чтобы убедиться, что они точно совпадают.

...