Представим, что выключенные (disabled) аккаунты у вас хранятся в отдельном OU, в них прописаны определеныне аттрибуты, чтобы не ходила почта, а отбойник отправлялся получателям.
Вот пример такого скрипта, который включает аккаунт, перемещает в правильный OU, включает почту через 13 Exchange attribute, делает unhide почтового ящика в Global Address Book (GAL).
Все это можно выполнять массово для группы пользователей, перечисленной в txt файле.
Import-Module ActiveDirectory
$users = get-content -Path (Read-Host -Prompt "Path to TXT file with users" -ErrorAction Stop)
$inc = Read-Host -Prompt "Enter INC number" -ErrorAction Stop
foreach($uname in $users)
{
$username = (Get-ADUser -Filter 'Name -like $uname'| select samaccountname).samaccountname
#enable account
Set-ADUser $username -Enabled $true
Write-Host "`nNT Account $username enabled:" (Get-ADuser $username).Enabled -ForegroundColor green
#move from Disabled OU
$dn = (Get-ADUser $username).DistinguishedName
if ($dn -like '*disabled*') {
if ($username -like "cst*") {
$oudn = $dn -split ',',4 | select -last 1
$oudn = "OU=External,"+$oudn
}
else {
$oudn = $dn -split ',',4 | select -last 1
}
Get-ADUser $username | Move-ADObject -TargetPath "$oudn"
Write-Host "NT Account moved to OU: $oudn" -ForegroundColor green
}
else {
Write-Host "NT Account is in OU: $dn"
}
#reset Exchange attribute 13 and unhide from GAL
$attr13 = (get-mailbox $username).CustomAttribute13
if (!$attr13) {
$mbxstate = "Enabled"
}
else {
$mbxstate = (get-mailbox $username).CustomAttribute13
}
Write-Host "Mailbox delivery state:" $mbxstate". Hidden from GAL:" (get-mailbox $username).HiddenFromAddressListsEnabled
if ($attr13) {
Set-Mailbox $username -CustomAttribute13 ''
Write-Host "Email delivery for $username enabled" -ForegroundColor green
}
if ((get-mailbox $username).HiddenFromAddressListsEnabled -eq $True) {
Set-Mailbox $username -HiddenFromAddressListsEnabled $False
Write-Host "User $username unhidden from GAL" -ForegroundColor green
}
#add INC description
$descr = (Get-ADUser $username -Properties description).description
$descr = "Enabled by " + $inc + " | " + $descr
Set-ADUser $username -description $descr
Write-Host "Updated user's account description:" $descr
}