Skip to content
  • Главная
  • О сайте
  • Услуги
  • Обратная связь
IT Professional St.Petersburg Service

IT Professional St.Petersburg Service

Профессиональная IT служба Санкт-Петербурга

  • Новости
  • Платформа
  • Накопители
  • Периферия
    • принтер
    • МФУ
    • копир
  • Серверы и сети
    • Сисадмину
      • powershell
      • скрипты
    • Active Directory
    • Exchange
    • серверы
      • веб сервер
    • Windows
    • SCCM
    • сеть
  • Софт
  • Ремонт
  • Мобильные
  • Услуги
  • Home
  • 2017
  • Июнь
  • Скрипт для включения аккаунтов Active Directory с заданными параметрами
Сисадмину

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

21 июня 201715 мая 2018 Александр Д.

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

Был ли наш пост полезен?

Нажмите на звезду, чтобы оценить мои труды!

Средний рейтинг: 3 / 5. Количество голосов: 2

Пока голосов нет. Проголосуй первым!

Мне жаль, что пост вам не помог 🙁

Позвольте мне исправиться.

Поделитесь, что можно улучшить?

account, Active Directory, enable, powershell, автоматизация, скрипты

Похожие посты

Серверы и сети Сисадмину

Динамическая маршрутизация на разные прокси средствами клиента

17 ноября 202516 ноября 2025 Александр Д.
Сисадмину

Как добавить корневые сертификаты в доверенные в Linux

14 ноября 2025 Александр Д.

Навигация по записям

Предыдущие: Скрипт Powershell: отключение Out-of-Office сообщения в почтовом ящике
Следующие: Скрипт для массовго prestage пакетов на серверах SCCM

Рубрики

  • Накопители
  • Новости
  • Периферия
  • Платформа
  • Ремонт
  • Серверы и сети
    • DevOps
    • Сисадмину
  • Софт
  • Услуги

Рекомендуем



ZTV - надежный, но недорогой хостинг с бесплатными бэкапами. Выбор дата-центров и локаций. Надежность 99,95%

Самое читаемое

Словарь терминов принтеров, МФУ и копиров
9723 Просмотра(ов)
Диагностика и неисправности мультиконтроллера в ноутбуке
5587 Просмотра(ов)
Ошибка AutoCAD, 3DMax, Revit и других продуктов Autodesk «Доступ будет прекращен с завтрашнего дня»
1427 Просмотра(ов)
Ошибка CentOS 8: Failed to download metadata for repo 'AppStream'
1169 Просмотра(ов)
Оптимизация производительности MySQL
1083 Просмотра(ов)

Спрашивают

Active Directory batch Exchange HP kubernetes linux Mac nginx powershell samsung Seagate Windows МФУ Ремонт барабан веб сервер винчестеры вирусы восстановление восстановление данных данные диагностика заправка картриджи компьютер копир лазерный монитор настройка настройка компьютеров обслуживание оптимизация оргтехника ошибка принтер производительность прошивка реестр сброс сервер скрипт скрипты термины термопленка транслятор

Последние статьи

  • Динамическая маршрутизация на разные прокси средствами клиента
  • Как быстро скачать все файлы со веб страницы?
  • Как добавить корневые сертификаты в доверенные в Linux
  • Управление ArgoCD через CLI и скриптами
  • Web UI для управления сервером AmneziaWG
  • Обратный прокси на nginx с перезаписью пути
  • Тюнинг производительности Elasticsearch
  • Изменение размера LVM дисков в Linux
  • Как обновить рутовый сертификат CA на PKI сервере
  • Как быстро запустить веб сервер?
Яндекс.Метрика

Самое интересное

5 (1)

Web UI для управления сервером AmneziaWG

5 (1)

Как быстро запустить веб сервер?

5 (3)

Как работает Ingress controller

5 (7)

Технология ремонта винчестеров Seagate 7200.11

5 (2)

Настройка Linux для большого числа соединений

5 (4)

Deep dive в контейнеризацию

Все права защищены. © Александр Дудкин, 2025