Замена руководителя у пользователей Active Directory с одного на другого с помощью Powershell
Имеем:
Уволился начальник подразделения, он был руководителем(в active directory) у 50 пользователей.
Задача:
Сменить руководителя на другого с помощью Powershell.
Решение:
##### Замена руководителя у пользователей с одного на другого ##### Import-module Activedirectory ##### Бывший руководитель ##### $OldManager= read-host "Enter Old Manager SamAccountName" ##### Новый руководитель ##### $NewManager= read-host "Enter New Manager SamAccountName" get-aduser -Filter {manager -eq $OldManager} -Properties Manager | select -ExpandProperty samaccountname | foreach { set-aduser -Identity $_ -manager $NewManager } ##### Удаляем руководителя у нового руководителя(самого себя) ##### set-aduser -Identity $NewManager -manager $null
Не всегда надо удалять руководителя у нового руководителя. Это надо делать лишь в том случае, если там указан старый руководитель, поэтому предлагаю добавить эту проверку в скрипт:
##### Замена руководителя у пользователей с одного на другого #####
Import-module Activedirectory
##### Бывший руководитель #####
$OldManager= read-host «Enter Old Manager login (SamAccountName)»
##### Новый руководитель #####
$NewManager= read-host «Enter New Manager login (SamAccountName)»
get-aduser -Filter {manager -eq $OldManager} -Properties Manager | select -ExpandProperty samaccountname | foreach { set-aduser -Identity $_ -manager $NewManager }
##### Удаляем руководителя у нового руководителя (самого себя) #####
$Manager = get-aduser $NewManager -Properties Manager | select -ExpandProperty Manager | Get-ADUser | select -ExpandProperty SamAccountName
if ($Manager -eq $OldManager)
{
set-aduser -Identity $NewManager -manager $null
Write-Warning «Удален старый руководитель у нового руководителя»
$NewTopManager = read-host «Enter New Top Manager login (SamAccountName)»
set-aduser -Identity $NewManager -manager $NewTopManager
}