Ошибка RemoteApp: не удалось получить свойства коллекции сеансов

Недавно возникла такая ситуация на Windows Server 2012: попытался изменить свойства коллекции опубликованных приложений на хосте RDWeb, а тут закралась ошибка: “Не удалось получить свойства коллекции сеансов”.
То же самое можно увидеть и в логах под ошибкой 16393, источник Rdms-UI.
Что же делать?

Сначала пытаемся воспроизвести ошибку в Powershell. Для этого подключаем модуль, который используется в Server Manager

Import-Module C:\Windows\System32\ServerManagerInternal\RDManagement\RDManagement.psd1

и после выполняем команду:

Get-RDSHPool -Alias *

Решение проблемы у меня две:

  1. Удаляем текущую коллекцию и создаем новую
  2. В свойствах сломавшейся коллекции в группах пользователей, которым разрешен доступ к коллекции, добавляем доменную группу Доменных администраторов или Domain Admins, как в моем случае.. Сохраняем изменения и без всяких перезагрузок сразу можем проверять коллекцию, ошибка должна исчезнуть.

Установка ESXi 6.5 на HP Proliant DL120 G7

Проблема, уверен, знакома для всех, но все же напишу по этому поводу. Все, кто пытается установить на сервера HP Proliant седьмого поколения ESXi версии 6.5 сталкиваются с фиолетовым экраном смерти. Причем это ошибка возникает только на фирменном дистрибутиве от HP для ESXi. На стандартном дистрибутиве такая ошибка не возникает. У меня вываливалась ошибка “Exception 13 in world 67938:sfcb-smx“.

Для решения данной проблемы есть кастомный образ ESXi 6.5 для HP серверов. Его можно скачать по данной ссылке.

В системе обнаружен конфликт адреса 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-кэша работать не будет, да она нам не нужна.

Ошибка при динамической регистрации записи DNS

Привет! Очередной раз обнаружил проблему при просмотре логов на контроллере домена

Имя журнала: System
Источник: NETLOGON
Дата: 22.12.2017 10:40:28
Код события: 5774
Категория задачи:Отсутствует
Уровень: Ошибка
Ключевые слова:Классический
Пользователь: Н/Д
Описание:
Ошибка при динамической регистрации записи DNS “_ldap._tcp.Samara._sites.ForestDnsZones. 600 IN SRV 0 100 389” на следующем DNS-сервере:

IP-адрес DNS-сервера: 10.150.1.10
Возвращенный код ответа (RCODE): 5
Возвращенный код состояния: 9005

При проверке оснастки DNS, было обнаружено, что не хватает множества записей, которые относятся к контроллеру, на котором и была обнаружена эта ошибка. Команда dcdiag /test:dns подтвердила, что проблема в этом.

Для решения проблемы была попытка выполнить команду nltest.exe /dsregdns Она выполнялась успешно, но записи не появлялись.

Так же успешные результаты показывала команда repadmin /replsummary.
С синхронизацией всё было в порядке, нет только записей в DNS. И вот тут я понял, что дело.. в лицензии на Windows Server 2012R2! Да-да! Этот контроллер домена временно развернут для поднятия промежуточного уровня домена и леса до 2012R2 с перспективой повысить уровень до 2016 и поэтому серверная операционная система не активировалась. Таким образом она уже работает 2 месяца. Чтобы проверить так ли это, я активировал сервер действующим лицензионным ключом и затем снова выполнил команду nltest.exe /dsregdns. После этого выполнил еще раз команду dcdiag /test:dns. На этот раз команда выполнилась успешно! Вот таким образом была решена проблема. Теперь ошибка NETLOGON 5774 мне запомнится надолго! ?

Установка 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 своего домена.

Kerio Connect не видит пользователей из домена в группе

Обнаружил сегодня проблему в Kerio Connect, который является для меня немного новым продуктом: если добавить в группы Kerio универсальную группу распространения из Active Directory, то почтовая система не всегда видит участников такой группы

хотя в самой группе AD есть пользователи.
Решение оказалось простым, нужно, чтобы имя группы в Active Directory совпадало именем этой же группы, но вида “до Windows 2000” . Вот скриншот примера, о чем я пишу:

Делаем оба поля одинаковыми и проблема становится решенной.
Удивительно, что эта проблема не решена с незапамятных времен. На форуме Kerio есть аналогичная тема, в которой не приведено решение.