Скрипт для включения аккаунтов Active Directory с заданными параметрами

Представим, что выключенные (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
}

Популярность: 1%

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники

Обсуждение закрыто.