Powershell - отключение и перемещение пользователей в новое подразделение - PullRequest
0 голосов
/ 11 сентября 2018

новый участник здесь ..

Я пытаюсь создать сценарий powershell, который может создать новое подразделение с текущей датой (dd-MM-гггг), отключить пользователей из текстового файла и затем переместить их во вновь созданное подразделение.

Пока что я получил все, кроме перехода на работу. Я читал, что это может быть потому, что текстовый файл содержит пользователей sAMAccountName, который не работает с Move-ADObject?

Просто для записи, я довольно новичок в написании сценариев в целом, и я знаю, что последняя строка полностью отключена. Все было составлено из материалов, которые я нашел в Интернете.

Код:

$OU = "$((get-date).toString('dd-MM-yyyy'))"
$PathOU = "OU=DEPARTURES,OU=IT,OU=USERS,OU=DK,DC=xxx"

New-ADOrganizationalUnit $OU -ProtectedFromAccidentalDeletion $false -Path $PathOU

$CN = get-content "\\Server\User Administration\User Deletion\UsersToBeDisabled.txt"
$CN |Foreach {
Get-ADUser $_ | Disable-ADAccount
Move-ADObject -Identity $_ -TargetPath $OU
}

Ошибка:

Move-ADObject: Невозможно найти объект с идентификатором: «firstname.lastname» в разделе: «DC = xxx». ActiveDirectoryCmdlet: Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException, Microsoft.ActiveDirectory.Management.Commands.MoveADObject **

Надеюсь, у вас есть идеи, как заставить это работать, спасибо!

BR. Mik

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

пара ошибок здесь;

1 - вы пытаетесь использовать весь объект AD для флага -identity: вместо $ _ попробуйте использовать $ _. Samaccountname.

2 - вы пытаетесь переместить объект в $ ou, который является просто строкой. Я предполагаю, что ваша команда new-adOrganizationalUnit работает; поэтому добавьте строку после этого, чтобы сказать «$ newOU = Get-ADorganizationalunit» -path [что угодно]

Извините, у меня нет времени печатать и тестировать: (

0 голосов
/ 11 сентября 2018

Вы можете использовать переключатель -PassThru с Disable-ADAccount, чтобы передать ваш пользовательский объект по трубопроводу на Move-ADObject

Get-ADUser $_ | Disable-ADAccount -PassThru | Move-ADObject -TargetPath "OU=$OU,$PathOU"

Альтернатива, это также должно работать:

$user = Get-ADUser $_ 
$user | Disable-ADAccount 
$user | Move-ADObject -TargetPath "OU=$OU,$PathOU"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...