Skip to content
  • Главная
  • О сайте
  • Услуги
  • Обратная связь
Санкт-Петербург IT сервис

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, автоматизация, скрипты

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

Сисадмину

Изменение размера LVM дисков в Linux

21 февраля 202421 февраля 2024 Александр Д.
Сисадмину

Как обновить рутовый сертификат CA на PKI сервере

3 декабря 2023 Александр Д.

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

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

Рубрики

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

Рекомендуем


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

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

Спрашивают

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

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

  • Обратный прокси на nginx с перезаписью пути
  • Тюнинг производительности Elasticsearch
  • Изменение размера LVM дисков в Linux
  • Как обновить рутовый сертификат CA на PKI сервере
  • Как быстро запустить веб сервер?
  • Скрипт установки Tinyproxy
  • WordPress спрашивает FTP аутентификацию при обновлении
  • Как работает Ingress controller
  • Использование сигналов Linux
  • Что такое Node Disk Pressure в Kubernetes
Яндекс.Метрика

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

5 (1)

Изменение размера LVM дисков в Linux

5 (6)

Как предотвратить отключение сети и VPN в MacOS при блокировке экрана

5 (5)

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

5 (2)

Что такое Node Disk Pressure в Kubernetes

5 (2)

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

5 (4)

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

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