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

Я пытаюсь переместить моих отключенных пользователей в нужное подразделение в AD. Я пытался поработать с этим кодом некоторое время, и логика кажется мне здоровой. Пожалуйста, дайте мне знать, что вы думаете:

$disalbled= Search-ADAccount -AccountDisabled -UsersOnly | Select SamAccountName | export-csv -Path 'C:\Users\andrew.schilling\Desktop\test\Test.csv' -NoTypeInformation

$disbaledlist = import-csv 'C:\Users\andrew.schilling\Desktop\test\Test.csv' 

foreach ($aduser in $disabledlist) { 
 Move-ADObject -Identity $aduser -TargetPath $OUTransfer 
 }

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Во-первых, вам нужно иметь DN каждого пользователя, чтобы переместить их.

Get-Help Move-ADObject -Examples

СИНТАКСИС Перемещает объект Active Directory или контейнер объектов в другой контейнер или домен.

-------------------------- EXAMPLE 1 --------------------------

C:\PS>Move-ADObject -Identity "OU=ManagedGroups,DC=Fabrikam,DC=Com"TarrgetPath "OU=Managed,DC=Fabrikam,DC=Com"

Изменить это:

$disalbled= Search-ADAccount -AccountDisabled -UsersOnly | Select SamAccountName | export-csv -Path 'C:\Users\andrew.schilling\Desktop\test\Test.csv' -NoTypeInformation

К этому:

$disalbled= Search-ADAccount -AccountDisabled -UsersOnly | Select DistinguishedName | export-csv -Path 'C:\Users\andrew.schilling\Desktop\test\Test.csv' -NoTypeInformation

Во-вторых, вам нужно указать, какой столбец вы выбираете в своем CSV (во время твой цикл foreach)

Вы можете сделать это так:

foreach ($aduser in $disabledlist) { 
 Move-ADObject -Identity $aduser.DistinguishedName -TargetPath $OUTransfer 
 }

Полное решение:

$OUTransfer = "CN=Disabled Users Accounts,DC=Company, DC=local"
$disalbled= Search-ADAccount -AccountDisabled -UsersOnly | Select DistinguishedName | export-csv -Path 'C:\Users\andrew.schilling\Desktop\test\Test.csv' -NoTypeInformation
$disabledlist = import-csv 'C:\Users\andrew.schilling\Desktop\test\Test.csv'

foreach ($aduser in $disabledlist) { 
    Move-ADObject -Identity $aduser.DistinguishedName -TargetPath $OUTransfer  
 }
0 голосов
/ 26 апреля 2018

Самый простой способ продублировать то, что, по-видимому, пытается сделать ваш код, это:

$OUTransfer = "CN=Disabled Users Accounts,DC=Company,DC=local"

$DisabledUsers = Search-ADAccount -AccountDisabled -UsersOnly
$DisabledUsers |
    Select-Object -ExpandProperty SamAccountName |
    Export-Csv -Path 'C:\Users\andrew.schilling\Desktop\test\Test.csv'

$DisabledUsers | Move-ADObject -TargetPath $OUTransfer

Однако вы включаете всех пользователей, которые уже входят в $OUTransfer OU. Это пустая трата усилий. Я бы заменил последнюю строку примерно так:

$DisabledUsers |
    Where-Object DistinguishedName -notlike "*$OUTransfer" |
    Move-ADObject -TargetPath $OUTransfer

Если вам совсем не нужен CSV, и вы просто использовали его в качестве временного хранилища, вы можете еще больше упростить его:

$OUTransfer = "CN=Disabled Users Accounts,DC=Company,DC=local"

Search-ADAccount -AccountDisabled -UsersOnly |
    Where-Object DistinguishedName -notlike "*$OUTransfer" |
    Move-ADObject -TargetPath $OUTransfer
0 голосов
/ 26 апреля 2018

И целевой OU является $ OUTransfer = "CN = Disabled Users Счета, DC = Company, DC = локальный "

Есть две возможные проблемы с этим:

  1. Если это OU, оно должно начинаться с OU=. Возможно, это «Контейнер», а не «OU». Если это так, тогда все в порядке.
  2. У вас есть пробел после =. Там не должно быть места.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...