Active Directory в Windows Server 2016


Значительным изменениям в Windows Server 2016 подверглась служба времени. Хитрый Майкрософт это изменение коварно скрывал, рассказывая всем про контейнеры, докеры и прочее виртуальное строительсво. Видеоблоггеры не подвели, и тоже замалчивали эту тему, как могли, отвлекая народ нано серверами и всякими S2D.

Но нас не проведёшь, недавно была таки опубликована официальная документация по этому вопросу. Рекомендую всем к ней обратиться, написано хорошо.

На Игнайте коротко по теме рассказывали тут:

Windows Server 2016

Изменения в обработке GPO, или Patch Tuesday


broken

Все течёт, все меняется. И знания тоже нужно всё время актуализировать.

Интереснейшее обновление, вышедшее во вторник, https://support.microsoft.com/en-us/kb/3163622

изменяет обработку политик. Если раньше она обрабатывалась в контексте пользователя, то теперь (с примененным обновлением) она будет обрабатываться в контексте компьютера. Иными словами, если вы использовали Security filtering для применения пользовательских политик, работать такой фильтр больше не будет.

Именно поэтому я всегда рекомендовал очень крепко подумать, прежде чем использовать такую фильтрацию без крайней необходимости.

Итак, что же мы получим в итоге обновления?

Скорее всего, все взорвется- ярлыки, диски, прочие GPО радости, терминальные серверы и все-все-все. Предвижу ежедневные взрывы на форумах технет, но следить сейчас времени совсем нет.

Что делать?

Читать далее

Server Core и Active Directory


clip_image002

Как многие знают, с момента выхода 2008 Windows Server в далеком 2007 году мы получили возможность устанавливать «безголовый» сервер. и даже тогда очень многим сообразительным парням это пришлось по вкусу. Еще до выхода R2  и sconfig они настраивали свои серверы при помощи аналогичных vbs скриптов (многие понят, я думаю) а самые упорные это делали руками, молотком и всякими netsh. Sconfig сделал администраторов равными, и около часа на настройку сервера уже не требовалось, и появился powershell внутри сервера core….

В 2012 счастье стало еще ближе с возможностью установки и настройки сервера, а потом его лишения (или в случае чего экстренного добавления обратно) GUI. В практике, опять же, таких инсталляций не видел- если человек чего решил, то он просто ставит core версию сразу и дружит с ней потом, и все у них обычно хорошо.

Плюсы инсталляции перечислять здесь не будем, все они давно известны и многие, разумеется, не преминут ими воспользоваться.

Но сегодня хотелось бы порассказать о неприятностях, которые могут случиться с серверами core.

Неприятность номер один описана в статье 2734222 (http://support.microsoft.com/kb/2734222 и ссылается на сценарий in-place upgrade и проблему для контроллеров домена Windows Server 2008R2. Тем не менее, я (и не только) эту проблему встретил в Windows Server 2012 RTM.

Номер два: инсталляции Server Core на базе 2008 не смогут запустить AD Web Services, поскольку для этого понадобится полная версия 2008.

Номер три: сейчас есть определенные проблемы как раз с добавлением/ удалением GUI  на Windows Server 2012ТР3. Те, кто поставил и не трогает, могут этого и не увидеть никогда :). Возможно, в каких-то определенных случаях они и раньше существовали…

Номер четыре: В Windows Server 2012ТР3 и 2 есть неприятный баг, связанный с установкой нового леса на Server Core, выполнив Install-ADDsForest мы получим ошибку установщика.

Вот такие вот сегодня истории относительно Server Core и Active Directory.

Повышаете уровень домена? Сперва прочтите это!


85052b9df8349222ee46f54568c7a4ea

Срок Windows Server 2003 end of life закончился еще вчера (14 июля 2015), и хотя многие предприятия обновили свои контроллеры доменов с 2003, некоторые еще могут находиться в процессе обновления.

Первое, что важно решить при переходе- куда мы будем двигаться и на какую ОС. Сейчас выбор стоит так: 2008, 2008R2, 2012, или 2012R2. Однако, независимо от того, на какую новую ОС вы будете переходить с 2003, аккаунт krbtgt сбросит (reset) свой пароль при обновлении функционального  уровня домена (DFL). И это может повлиять на доступность Exchange.

Примечание: Если Ваш текущий уровень домена уже установлен 2008 или выше, вам не нужно проделывать шаги статьи. 🙂

Хорошей отправной точкой будет понимание того, что во время процесса повышения функционального уровня домена системный аккаунт krbtgt сменит пароль. Репликация измененного пароля отдельный процесс и происходит уже после того, как уровень домена был повышен. Это изменение не повлияет на любые приложения, зависимые от Active Directory, но иногда это может повлиять на остановку аутентификации приложений, одним из которых является Exchange.

Хотя повышение функционального уровня необратимая ситуация (во многих случаях, но не всегда), оно должно быть тщательно спланировано и  произведено только после проверки того, что приложения, полагающиеся на Directory Services в своей работе, продолжат корректную работу после обновления. В основном это могут быть продукты третьих фирм (или программы собственных разработок). В этом случае лабораторная среда для проверки будет лучшим решением, а в следствии этого- и рекомендацией лучших практик Microsoft.

После того, как Вы подняли уровень домена с 2003, находим ошибки в журналах событий Система на контроллерах домена за номерами Event ID 14 или Event ID 10.

Если Вы наблюдаете эти ошибки после повышения  функционального уровня домена, то есть пара вариантов исправления ситуации для решения ошибки аутентификации.

Вариант 1: Перезапустите службу Kerberos Key Distribution Center на всех контроллерах домена (короткое прерывание сервиса, перезапуск)

  • Воспользовавшись командной строкой:
    • SC \\ComputerName Stop kdc
    • SC \\ComputerName Start kdc
  • Вариант с использованием модуля Active Directory PowerShell:
    • $DC=Get-ADDomainController
    • Get-Service KDC –ComputerName $DC | Restart-Service
  • Через графический интерфейс GUI:
    • Откройте оснастку Services (services.msc) на контроллерах
    • Выберите службу Kerberos Key Distribution и щелкните «Перезапустить»

image_61366C5A

Вариант 2: Перезагрузка всех контроллеров в лесу (большее прерывание сервиса, перезагрузка серверов может занять длительное время)

  • Вручную выполняем вход на каждый контроллер и перезагружаем, ИЛИ
  • Все тем же Active Directory PowerShell module:
    • $DC=Get-ADDomainController
    • Restart-Computer $DC

Почему это важно?

Хотя влияние перехода должно быть нулевым для приложений, факт того, что пароль учетной записи krbtgt меняется и это может привести к остановке Exchange (или других приложений), которые могут ожидать успешной репликации измененного пароля в течение нормального цикла репликации AD.Рекомендуется выполнить шаги  решения выше.

Почему это случается только при переходе с 2003 DFL?

Под капотом ситуации добавление новых хэшей AES, представленных в NT 6.0. Изменения только добавляют хэши AES во время изменения функционального режима домена на более высокий (’08, ‘08R2, ’12, ‘12R2). В будущем поддержка старых алгоритмов шифрования будет убираться, и Вы вновь можете наступить на эти же грабли.

Знание половина дела. Вероятность того, что Вы столкнетесь с описанной проблемой мала, но сейчас Вы знаете, как ее решить и будете готовыми к возможным неожиданностям. Планируйте переход, повышайте уровень контроллеров и домена; используйте все новые возможности, доступные сегодня, и не давайте Exchange ломаться!

Удачи.

да-да. Поддержка 2003 — все.


Еще вчера, во вторник, на Windows 7 пришло более сорока апдейтов безопасности и прочих обновлений. А вот на старую добрую 2003 ни одного. Потому, что поддержка кончилась! (14 июля). Всё. Всёёёёё.

Продолжаем делать дважды в день то, что на скриншоте 🙂readmsg

Сайты и DynamicSiteName


Иногда возникает потребность определить, в каком сайте машина себя ощущает.

Посмотрим через увеличительное стекло на ветку реестра, где хранятся нужные нам настройки:

ls HKLM:\SYSTEM\CurrentControlSet\services\Netlogon

Screenshot_2

Для более точного получения результата можно явно спросить то, что нам нужно у локальной или удаленной машины:

(Get-ItemProperty «HKLM:\System\CurrentControlSet\Services\Netlogon\parameters»).»DynamicSiteName»

или

[Microsoft.Win32.Registry]::LocalMachine.OpenSubKey(«System\CurrentControlSet\Services\NetLogon\Parameters»).GetValue(«DynamicSiteName»)

Видим, что машина находится в сайте 002.

Не буду утомлять читателя процедурами DsGetSiteName API — интересующиеся процедурами входа компьютера в систему и определения машиной «своего» домашнего сайта  их можно найти в библиотеке:

https://technet.microsoft.com/en-us/library/cc978011.aspx

https://support.microsoft.com/en-us/kb/247811/

Сегодня хотелось бы рассказать о поиске проблем с определением сайта, и как его можно переопределить.

Переопределить его можно очень просто: вместо изменения расположения машины в Active Directory, создать и изменить параметр SiteName  (и перезагрузить машину)

Hive: HKEY_LOCAL_MACHINE
Key: Syetem\CurrentControlSet\Services\Netlogon\Parameters
Name: SiteName
Type: REG_SZ
Value: Имя нужного сайта.

После добавления этого параметра, DynamicSiteName  будет игнорироваться. Для поиска проблем можете удалить временно этот параметр, чтобы визуальный вывод был более чистым для глаз. Но это совершенно не обязательно. Служба DC Locator  будет всегда использовать значение SiteName вместо последнего и опрашивать контроллеры в определенном сайте. Для тех, кто до смерти боится Powershell,  есть старый добрый запрос в CMD: SET L

Screenshot_3

Лично мне нужно было быстро протестировать работу нужной машины в  определенном сайте, (подключение к сервисам из другого сайта), пришлось вспомнить военную хитрость. Понятно, что если Вам по определенным причинам необходимо «засунуть»  машину в другой сайт- четко задокументируйте такую настройку.

Автоматически добавляем почтовый ящик и sip адрес для пользователей


emie

Вот такой вот простой скрипт, запускающийся по расписанию раз, скажем в полчаса,  поможет на пути к автоматизации процесса создания учетных записей на предприятии. 🙂

Скрипт смотрит в определенную «Prestaged» OU, из которой забирает пользователей, и добавляет их в пул на Lync сервере, не забывая добавить им почтовый ящик на Exchange. Модифицируйте, как нравится- определенный пул, определенная база и т.д. Пользователи в целевом организационном подразделении могут создаваться совершенно разными путями, переносом, созданием, миграцией и т.п., после выполнения действий скрипт отсылает уведомление:

 

#Ipmo EXCHANGE
$SessionOWA = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exchangeserver/PowerShell/ -Authentication Kerberos
Import-PSSession $SessionOWA
#Ipmo Lync
$lyncOptions = New-PSSessionOption -SkipRevocationCheck -SkipCACheck -SkipCNCheck
$lync = New-PSSession -ConnectionUri https://lync01/ocspowershell `
-SessionOption $lyncOptions `
-Authentication NegotiateWithImplicitCredential
Import-PSSession $lync
# определяем Lync pool сервер.
$LyncPool = «lync01»
# Контейнер с пользователями, откуда мы будем забирать объекты
$Ous = «OU=Prestaged,OU=Users and Contacts,DC=mydomen,DC=ru»
# SMTP server.
$smtpServer=»smtp.mydomen.ru»
$OUUsers = $null
$enabledUsers = $null

ipmo ac*
#Включаем ящики пользователям.

$users =  Get-ADUser -LDAPFilter «(!(mail=*))» -resultSetSize $null  -searchBase $Ous
foreach($user in $users)
{
Enable-Mailbox -Identity $user.SamAccountName -Database MDB02   -ErrorAction SilentlyContinue
}
# Подождем репликации атрибутов
Start-Sleep 30
# Получим список всех пользователей с электронным адресом, не заблокированных в Аctive directory и не имеющих sip адреса
$OUUsers = $OUs | Foreach {Get-CsAdUser -Filter {Enabled -ne $True} -OU $_ | Where-Object {$_.UserAccountControl -notlike «*AccountDisabled*»} | Where-Object {$_.WindowsEmailAddress -ne «»} | Where-Object {$_.SIPAddress -eq «»} };
if ($OUUsers -ne $null) {
$OUUsers | Foreach-Object {
Enable-CsUser -Identity $_.UserPrincipalName -RegistrarPool $LyncPool -SipAddressType EmailAddress
$EnabledUsers += $_.Name
$EnabledUsers += «, »
}

# send an email to notify HD
#Конвертируем кодировку в utf8
$enc = New-Object System.Text.utf8encoding
$subject= «Users enabled for Lync,EXCHANGE»
$body= @»
<p>Dear HelpDesk,</p>
The following user(s) have been enabled for Lync and Exchange</p>
</p>
<b>$EnabledUsers</b></p>
</p>

If you have any questions, you can contact the UC Team.</p>
(Tel: 2117 / Mail: helpdesk@domen.ru)</p>
</p>
Kind regards,</p>
UC team</p>
«@
Send-Mailmessage -smtpServer $smtpServer -Encoding $enc -from «LyncTeam@domen.ru» -to «helpdesk@domen.ru» -subject $subject -body $body -BodyAsHtml

}