В системе обнаружен конфликт адреса IP.

Привет! Настраивал я как-то раз Windows Server 2003 x86 Стандарт на ESXi 6.5 и всё это было подключено к Mikrotik, на котором был настроен bridge-интерфейс, на котором был включен proxy-arp. Обычно эту штуку включают, когда не доступны хосты при подключении к ним из VPN-сети, у которой адресация такая же, что и основной сети.
После того, как я добавил на этот сервер сетевую карту обнаружилась странная вещь: появилось сообщение в логах “В системе обнаружен конфликт адреса IP <> с адресом сетевого устройства <>. Локальный интерфейс был отключен.”
Начал проверять с другого сервера на этом же ESXi: пингую любой IP-адрес, который точно не занят, и после этого проверяю arp-таблицу. В ней оказываются записи, с mac-адресом интерфейса mikrotik.
Забавно, что другие сервера в этой же сети, но только Windows Server 2016 и всякие Linux на данную настройку не ругались и отлично работали по сети.
Для решения данной проблемы есть два способа:

  1. Отключаем proxy-arp на Mikrotik
  2. В ветке реестра HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters на сервере Windows создаем параметр типа DWORD и называем его ArpRetryCount. Устанавливаем этот параметр в значение 0 и перезагружаем систему. После данной настройки проверка ARP-кэша работать не будет, да она нам не нужна.

Установка SSH-сервера и клиента на Windows

В Windows 10 наконец-то добавили возможность простой установки SSH-сервера и клиента. Для администраторов это очень приятная новость.  Для установки нужно пройти в “Параметры Windows” – “Приложения” – “Управление дополнительными компонентами” — «Добавить компонент»
Чтобы включить SSH через Powershell необходимо выполнить 2 команды:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
чтобы узнать версию OpenSSH
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

чтобы установить OpenSSH сервер и клиент.

Создание своего образа Windows 10. Установка Windows в автоматическом режиме (ZTI)

  1. Скачиваем и устанавливаем Windows Assessment and Deployment Kit (Windows ADK) последней версии.
    При установке данного средства нужно выбирать обязательно компоненты «средства развертывания» и «среда предустановки Windows PE».
  2. Скачиваем и устанавливаем Microsoft Deployment Toolkit (MDT) со всеми компонентами.
  3. Через интерфейс MDT создаем новый «Deployment Share». Чтобы не было проблем в дальнейшем рекомендуется не менять путь по умолчанию. 
  4. Подготавливаем драйвера для дистрибутива.  В моем примере дистрибутив подготавливается для системного блока Dell Optiplex 3050. По сервис-номеру находим нужный системный блок:
    http://www.dell.com/support/home/ru/ru/rubsdc/product-support/servicetag/h18cdk2/drivers
  5. Скачиваем необходимые драйвера для выбранной операционной системы и сохраняем в заранее подготовленные директории:
  6. Распаковываем каждый файл, скачанный с сайта DELL, запустив инсталлятор и нажав на кнопку “Extract” и выбрав соответствующую папку, созданную на предыдущем шаге.
  7. Создаем каталоги в Workbench для дистрибутива операционной системы и для драйверов. Если не планируется в дальнейшем создавать дистрибутивы для других систем или компьютеров, то каталоги можно не создавать.
  8. Импортируем драйверы в созданную директорию «Optiplex 3050», после импорта удаляем драйвера для 32-ух битных систем, т.к. планируем распространять только 64-битную систему.
  9. В каталог с операционными системами добавляем нужный дистрибутив (образ должен содержать WIM образ, а не ESD)
  10. Добавляем приложения, которые требуется установить в каталог приложений, указав при этом командную строку для тихой установки программ


    Отдельно стоит упомянуть про установку MS Office 2010. Для его тихой установки при запуске setup.exe нужно добавить ключ, в котором указывается путь до файла config.xml, в котором прописаны некоторые настройки:
    <Configuration Product="Standard">
    <Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" />
    <PIDKEY Value="AAAAABBBBBCCCCCDDDDDEEEEE" />
    <USERNAME Value= '%username%' />
    <COMPANYNAME Value="Рога и Копыта" />
    <INSTALLLOCATION Value="%programfiles%\Microsoft Office" />
    <Setting Id="SETUP_REBOOT" Value="NEVER" />
    </Configuration>

    PIDKEY – это ключ активации MS Office
  11. Создаем новый стандартный Task Sequence. Task sequence ID – используется в автоматизации установки, поэтому лучше создавать его числовым.

  12. Указываем wim-файл из дистрибутива, который будет использоваться в этом task sequence. В дальнейшем его можно будет поменять.
  13. Можно сразу указать ключ установки.
  14. Указываем владельца дистрибутива. Строчка с домашней страницей в Internet Explorer не работает для Windows 10
  15. Указываем пароль локального администратора. Для русского дистрибутива учетная запись будет называться «Администратор». Выбирая 2-ой пункт учетная запись не будет иметь пароля.
  16. Открываем свойства только что созданного Task Sequence и во вкладке «Task Sequence» находим слева строку «Format and Partition Disk (BIOS)». Здесь надо указать как будет разбиваться диск на компьютере с BIOS. Я сделал настройки так, как представлены на скриншоте: 40% пространства диска выделяется на системный раздел, из оставшегося пространства берется 99% и забирается под раздел с данными. Оставшаяся часть – раздел восстановления. В начале диска оставляем раздел для загрузки.
  17. Тоже самое проделываем и для компьютеров с UEFI, только разделы в начале диска будут другие – EFI и MSR.
  18. В разделе Inject Drivers нужно указать профиль, в котором выбраны драйверы, которые в свою очередь, требуется внедрить в настраиваемый дистрибутив. Если нужно указать несколько профилей, то через меню Add – General – Inject Drivers добавляем еще одну задачу добавления драйверов.
  19. Профиль заранее создаем в соответствующем разделе.
  20. Ниже в разделе слева находим строку «Install Application». Указываем приложение, которое требуется установить. Если требуется установить несколько приложений, то добавляем такие задачи через меню Add – General – Install Application
  21. Если требуется установить шрифт, то предварительно требуется создать Powershell-скрипт, например, «Add-Font.ps1» со следующим содержимым:
    Set-ExecutionPolicy RemoteSigned -Force
    $fonts = (New-Object -ComObject Shell.Application).Namespace(0x14)
    dir *.ttf | %{ $fonts.CopyHere($_.fullname) }

    Скрипт ищет шрифт с расширением ttf в той же директории, где располагается и сам скрипт. Сам скрипт и шрифт копируем в папку «..\DeploymentShare\Scripts».В Task Sequence через меню Add – General – Run Powershell Script добавляем задачу по запуску PS-скрипта. Указываем в ней название скрипта без параметров. Название задачи вписываем английскими буквами, иначе при инсталляции будут отображаться некорректно символы. Если в PS-скрипте требуется выполнить команду, которая доступна только из командной строки, то тогда вписываем ее в таком виде:  cmd /c «команда», иначе выполнение всего скрипта прервется и установка завершится ошибкой
  22. Для создания ярлыков добавим еще один PS-скрипт, который назовем «Install-Shortcut.ps1». В нем будет записаны команды:
    cp "Портал.url" "C:\Users\Default\Desktop"
    cp "Портал.url" "C:\Users\Администратор\Desktop"
    del "C:\Users\Public\Desktop\Adobe Reader 9.lnk"

    добавляем ярлык в общий профиль и в профиль Администратора и удаляем ярлык Adobe Reader, который устанавливается на рабочем столе каждого пользователя.
    Оригинальный ярлык должен находиться там же, где и сам скрипт. Копируем скрипт и ярлык в директорию «..\DeploymentShare\Scripts».
    Если требуется изменить значение реестра, то тогда создаем файл .reg и делаем его импорт командой:
    reg import Edit_Reestr.reg
    В результате в Task Sequence нужно указать только имя скрипта
  23. Все задачи после запуска скриптов можно отключить, потому что они не требуются, если надо только установить систему (без sysprep и захвата). Для этого берем, например, задачу «Capture Image» и в Options ставим галочку «Disable this step».
  24. Если требуется изменить параметры, которые вводились в момент создания Task Sequence, то для этого нужно найти файл Unattend.xml, который лежим в папке с именем, совпадающим с идентификатором этого Task Sequence, которая в свою очередь лежит в папке «Control». В нем, например, можно поменять пароль администратора, который был ранее задан.
  25. В папке с профилями создаем еще один профиль, назовем ее «Автономный медианоситель Windows 10 для MIUZ». В нем указываем те директории, которые необходимо скомпоновать в один ISO-файл, с которого и будет происходить установка системы: указываем приложения, операционные системы, драйвера, пакеты и Task Sequence.
  26. В разделе «Media» через команду «New Media» создаем новый носитель, в котором указываем путь, где будут храниться файлы, из которых будет создаваться ISO-образ и указываем профиль, который создали на предыдущем шаге. Важно: путь в строке «Media path» не должен содержать русские символы, иначе будут ошибки в дальнейшем.
  27. После создания нового «Media» заходим в его свойства. Указываем, что загрузочный образ будет генерироваться только 64-битный (т.к. система, которую требуется устанавливать, только 64-битная). Указываем имя ISO-файла, которое будет создаваться.
  28. Во вкладке Windows PE для платформы x64 указываем «Scratch space size» указываем значение 128. Во вкладке «Drivers and Patches» можно выбрать какие драйвера добавлять в образ Windows PE.
  29. Во вкладке «Rules» прописываются настройки, которые исполняются в момент запуска Windows PE из создаваемого ISO-файла. Причем настройки в файле Bootstrap.ini исполняются до момента запуска Windows PE. Поэтому в нем может быть прописано, где брать сам загрузчик с Windows PE (в случаях если он распространяется не через ISO-файл, а через PXE). Для нашего случая в нем прописываем только одну строку, которая отключает показ сообщения после запуска Windows PE.
  30. Все настройки, которые прописаны в самой вкладке «Rules», находятся в файле CustomSettings.ini в папке Control. Все они нужны, чтобы установка дистрибутива происходила без  вопросов (режим ZTI):
    [Settings]
    Priority=Default
    Properties=MyCustomProperty
    [Default]
    _SMSTSORGNAME=MIUZ
    DeploymentType=NEWCOMPUTER
    OSDComputerName=Temp001
    TaskSequenceID=001
    SkipTaskSequence=YES
    SkipDomainMembership=YES
    TimeZone=145
    TimeZoneName=Russia TZ 2 Standard Time
    SkipTimeZone=YES
    SkipLocaleSelection=YES
    FinishAction=Reboot
    DoCapture=NO
    OSInstall=Y
    SkipCapture=YES
    SkipAdminPassword=YES
    SkipProductKey=YES
    SkipComputerBackup=YES
    SkipComputerName=YES
    SkipBitLocker=YES
    JoinWorkgroup=MIUZ
    SkipUserData=YES
    SkipFinalSummary=YES
    BdeInstallSuppress=YES
    UserDataLocation =NONE
    USMTOfflineMigration=FALSE
    SkipSummary=YES
    UserLocale=ru-ru
    UILanguage=ru-ru
    KeyboardLocale=ru-ru
    HideShell=YES

    Значение каждого параметра можно подробнее узнать, воспользовавшись поиском на сайте http://systemscenter.ru/mdt2012.en/
  31. После того, как все настройки в «Media» сделаны, необходимо «обновить» контент в нем. Для этого нажимаем правой кнопкой мыши на «MEDIA001» и нажимаем на «Update Media Content». Будет обновлена директория, которая указана в свойствах этого носителя (скопированы все файлы и настройки, указанные в профиле, из папки DeploymentShare). После этого заходим в директорию этого «Media». В ней можно увидеть папку Content и ISO-файл.

    ISO-файл можно записывать на DVD-болванку и идти устанавливать систему. Этот ISO-файл генерируется из папок и файлов, содержащихся в папке «Content». Если требуется записать полученный ISO на флешку, то требуется выполнить следующие действия:
    а) на физическом компьютере под управлением Windows 7 или более поздних версий вставьте нужный USB-накопитель.
    б) скопируйте содержимое папки Offline\Content в корень USB-накопителя.
    в) запустите командную строку от имени администратора и выполните команду diskpart
    г) введите list vol, чтобы перечислить тома
    д) введите sel vol [номер тома, являющимся USB-накопителем]
    е) введите active, а затем введите exit
    После этих манипуляций загрузочная флешка с вашим кастомным образом Windows 10 будет готова. Ко всему прочему Windows будет устанавливаться автоматически без дополнительных вопросов.

Включение счетчика производительности диска диспетчера задач в Windows Server 2012 и выше

По умолчанию, начиная с Windows Server 2012 используется диспетчер задач с отключенными счетчиками  производительности дисков. Сделано это для уменьшения нагрузки на дисковую подсистему.

Чтобы их включить исполните команду
diskperf -y
в командной строке под администратором. Для отключения счетчиков используется команда
diskperf -n

Чтобы изменения вступили в силу, перезапустите диспетчер задач.

Алгоритм определения ближайшего контроллера домена при включении доменного компьютера

После добавления компьютера в домен и его перезагрузки, перед компьютером возникает вопрос к какому контроллеру домена ему подключаться. Информации в реестре еще нет о том в каком сайте он находится, поэтому операционная система следует по алгоритму. Кстати, в реестре информацию о том, в каком сайте находится компьютер, можно найти в параметре Site-Name, находящегося в ветке “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine

  1. Компьютер получает IP-адрес от DHCP-сервера
  2. Происходит опрос папки _tcp в DNS-зоне домена, в которую включена система.
  3. Система определяет какие SRV-записи присутствуют в папке _tcp
  4. Система пытается связаться со всеми контроллерами
  5. Первый контроллер, который отвечает компьютеру, анализирует IP-адрес, с которого поступил запрос, определяет,что этот IP принадлежит определенному сайту (на основе записей в Active Directory) и сообщает системе имя сайта.
  6. Система сохраняет возвращенное имя сайта в реестре и опрашивает все контроллеры домена в своем сайте, путем обращения к папке _tcp сайта.
  7. Система DNS возвращает список всех контроллеров, зарегистрированных в этом сайте.
  8. Клиент пытается связаться со всеми контроллерами в своем сайте и первый ответивший контроллер выполняет проверку подлинности клиента.
  9. Система определяет этот контроллер домена как близлежащий и в последствии будет пытаться проходить проверку подлинности именно на нем.
  10. Если контроллер домена близлежащий недоступен, клиент вновь опрашивает папку _tcp сайта и пытается связаться со всеми контроллерами домена в узле.
  11. Если контроллеры домена в сайте не отвечают клиенту, то система запрашивает папку _tcp своего домена.

Централизованное хранилище административных шаблонов групповых политик

Для того чтобы создать централизованное хранилище, создайте папку PolicyDefinitions в папке \\FQDN\SYSVOL\FQDN\Policies на одном из контроллеров домена. Например, для моего домена onix.me адрес будет выглядеть как \\onix.me\SYSVOL\onix.me\Policies\PolicyDefinitions. Затем скопируйте все файлы из папки %SystemRoot%\PolicyDefinitions на контроллере домена в новую папку PolicyDefinitions в SYSVOL. Нужно скопировать файлы .admx и файлы .adml в языковой подпапке %SystemRoot%\PolicyDefinitions. Например, файлы ADML для русского языка локализованы в папке %SystemRoot%\PolicyDefinitions\ru-RU. Скопируйте их в папку \\FQDN\SYSVOL\FQDN\Policies\ru-RU. Если требуются дополнительные языки, скопируйте папку с файлами ADML в централизованное хранилище. Таким образом, папка PolicyDefinitions на контроллере домена должна содержать файлы ADMX, а также одну или несколько папок с языковыми файлами ADML.

Отключение командной строки (cmd) и Windows Script Host

Создайте файл с расширением .reg и скопируйте в него этот текст

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings]
"Enabled"=dword:00000000
[HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\System]
"DisableCMD"=dword:00000001

После этого файл сохраните и запустите. Теперь все скрипты с расширением cmd, bat, vbs, js перестанут выполняться на данном компьютере. Это очень удобно для превентивной защиты от шифровальщиков (очень часто они скачивают полезную нагрузку через файлы js, упакованный в zip-архив).
Кроме этого необходимо на компьютере отключить права администратора и настроить создание теневых копий на всех дисках системы.
Если кому-то понадобится доступ к командной строке или потребуется все же запустить один из файлов с заблокированными расширением, то тогда необходимо создать еще один файл .reg, но уже с другим содержанием

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings]
"Enabled"=dword:00000001
[HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\System]
"DisableCMD"=dword:00000000

Обновление контроллеров домена до Windows Server 2016

1. Проверяем, что каталоги AD синхронизируются без проблем. Запускаем
repadmin /replsum
Убеждаемся, что в столбце «Fails» нет ошибок, а дельта синхронизации не превышает той, которая настроена между сайтами.

2. Текущий уровень домена и леса должен быть не ниже Windows Server 2008. Если он ниже, то сначала поднимаем уровень домена до 2008 (этого не произойдет, если у вас остались в домене контроллеры, которые работают на Windows Server 2003 или 2003R2). После поднимаем уровень леса до 2008 (также надо предварительно убедиться, что все домены в лесу имеют уровень 2008). Поднятие уровня домена и леса осуществляется через оснастку «Active Directory – домены и доверие».

3. Разворачиваем новый сервер Windows Server 2016. Добавляем его в домен. Задаем статичный IP-адрес и имя хоста.

4. Проверяем, какой тип репликации используется для текущего каталога AD.
Для этого запускаем утилиту ADSI Edit на контроллере домена и подключаемся к «контексту именования по умолчанию». Далее ищем в вашем каталоге текущие контроллеры домена и выбираем один из них. Если вы видите каталог «CN=NTFRS Subscriptions» , значит у вас используется тип репликации «FRS». Если же «CN=DFSR-LocalSettings» – значит используется новый тип репликации DFS-R и тогда 5 шаг мы пропускаем.

5. Получим текущее глобальное состояние миграции DFSR через команду
dfsrmig /getglobalstate
Начинаем процесс миграции. Выполняем команду
dfsrmig /setglobalstate 1
С помощью команды dfsrmig /getmigrationstate проверяем, когда 1 этап миграции завершится на всех контроллерах.
Чтобы ускорить процесс репликации между контроллерами, выполним команды
Repadmin /syncall /AeS
на каждом контроллере
Переходим к следующему этапу:
dfsrmig /setglobalstate 2
И опять ускоряем процесс синхронизации командой
Repadmin /syncall /AeS
Как только команда dfsrmig /getmigrationstate выдаст положительный результат, запускаем заключительный этап
dfsrmig /setglobalstate 3
и повторяем те же действия, чтобы завершить процесс перехода на DFS-R.

6. Делаем новые сервера контроллерами домена: устанавливаем на них роль Active Directory Domain Services и DNS-сервера.

7. Запускаем службу KCC для создания новых связей с новыми контроллерами домена.
repadmin /kcc
и проверяем, что синхронизация проходит без ошибок на каждом из контроллеров
Repadmin /syncall /AeS
repadmin /replsum

8. Перераспределяем роли FSMO:
Move-ADDirectoryServerOperationMasterRole -Identity “dc-01” -OperationMasterRole SchemaMaster, DomainNamingMaster
Move-ADDirectoryServerOperationMasterRole -Identity “dc-02” -OperationMasterRole RIDMaster,PDCEmulator, InfrastructureMaster
где dc-01 и dc-02 новые сервера на WS2016
Еще раз запускаем репликацию на всех контроллерах:
repadmin /syncall /AeS
Командой netdom query fsmo убеждаемся, что все роли переехали на нужные сервера.

9. На новых серверах в настройках сетевых адаптеров указываем в качестве DNS-сервера новые контроллеры домена.

10. Выполняем команду dcpromo на старых контроллерах для понижения уровня сервера. После отключения всех серверов не забываем запустить
repadmin /kcc
repadmin /syncall /AeS
repadmin /replsum

11. Через оснастку «Active Directory – домены и доверие» поднимаем уровень домена и леса до 2016.

Ошибка при подключении к WSUS-серверу

При попытке зайти на WSUS-сервер (который расположен на Windows Server 2012 и использует внутреннюю базу данных) видим следующую ошибку:

В Event Viewer текст ошибки так же непонятен:

Убедимся, что у вас WSUS использует базу данных WID. Для этого проверим ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services) и находим значение поля “SqlServerName”. Если значение поля равно “MICROSOFT##WID”, то WSUS использует внутреннюю базу данных.

  1. Пытаемся перезапустить службу “MSSQL$MICROSOFT##WID”. В русской версии Windows она называется “Внутренняя база данных Windows”.
  2. Если не помогает: подключаемся к этой базе через консоль MS SQL Server Managment Studio, причем в имени сервера прописываем путь “\\.\pipe\MICROSOFT##WID\tsql\query
  3. Если все сделали правильно, то должны увидеть базу данных WSUS под названием “SUSDB”. Если с ней все впорядке, то она должна раскрыться (при нажатии на “+” слева). В моем случае этого не произошло, писалась ошибка “База данных SUSDB недоступна”
  4. Отсоединяем эту базу данных:
  5. Пытаемся ее снова подключить.

    В моем случае этот этап завершался ошибкой “Не удалось проверить схему для базы данных “SUSDB”.
    Это нормально! Нужно после этого открыть командную строку, перейти в директорию “C:\Program Files\Update Services\Tools” и  от имени администратора сервера и выполнить команду

    wsusutil postinstall [content parameter]

    Она должна выполниться успешно и после этого консоль WSUS будет успешно открываться.

Исправление неработающей прокрутки в DVD-файле

Добрый день.

Сегодня возникла проблема с одним  из скопированных DVD-дисков: при его воспроизведении не работал ползунок прокрутки, то есть не было возможности переместиться в любую точку видео. Скорее всего так напортачила программа, которая копирует DVD-диск на компьютер. Бог с ней, главное, нужно как-то это исправить. Что для этого нужно?

  1. Скачиваем программу IfoEdit.
  2. На всякий случай делаем копию файлов VIDEO_TS.IFO и VIDEO_TS.BUP
  3. Запускаем программу и в ней открываем оригинальный файл VIDEO_TS.IFO из корня вашего DVD.
  4. В верхней части программы кликаем на строку “VMG_PTT_SRPT – Video Manager Title Play Map Table”.
  5. В нижнем окне программы кликаем на строку с адресом [00000008] и изменяем имеющееся значение на 0. После этого сохраняем изменения в программе и она спросит разрешение поменять еще и файл VIDEO_TS.BUP. Разрешаем ей это сделать. После этого проверяем – видео должно корректно перематываться.