Недавно столкнулся на компьютере с Windows XP с ошибкой 0x0000007B. Bluescreen был на старом ноутбуке Toshiba MK2552GSX.
Как оказалось такая ошибка возникла после сброса настроек BIOS. В случае проблем с загрузкой и выпаданием в синий экран в первую очередь надо вам заглянуть в настройки BIOS в раздел Advanced. Там будет пункт, который будет называться что-то вроде SATA Mode. Попробуйте выбрать другой режим (IDE, AHCI или Compatible). По умолчанию, Windows XP не содержит в себе драйверов SATA и возможно она была установлена в режиме IDE. Если же переключить на режим AHCI, то система перестанет грузиться – это касается и новых систем. Поэтому будьте осторожны, когда заходите в настройки компьютера!
Ошибка RemoteApp: не удалось получить свойства коллекции сеансов
Недавно возникла такая ситуация на Windows Server 2012: попытался изменить свойства коллекции опубликованных приложений на хосте RDWeb, а тут закралась ошибка: “Не удалось получить свойства коллекции сеансов”.
То же самое можно увидеть и в логах под ошибкой 16393, источник Rdms-UI.
Что же делать?
Сначала пытаемся воспроизвести ошибку в Powershell. Для этого подключаем модуль, который используется в Server Manager
Import-Module C:\Windows\System32\ServerManagerInternal\RDManagement\RDManagement.psd1
и после выполняем команду:
Get-RDSHPool -Alias *
Решение проблемы у меня две:
- Удаляем текущую коллекцию и создаем новую
- В свойствах сломавшейся коллекции в группах пользователей, которым разрешен доступ к коллекции, добавляем доменную группу Доменных администраторов или Domain Admins, как в моем случае.. Сохраняем изменения и без всяких перезагрузок сразу можем проверять коллекцию, ошибка должна исчезнуть.
В системе обнаружен конфликт адреса IP.
Привет! Настраивал я как-то раз Windows Server 2003 x86 Стандарт на ESXi 6.5 и всё это было подключено к Mikrotik, на котором был настроен bridge-интерфейс, на котором был включен proxy-arp. Обычно эту штуку включают, когда не доступны хосты при подключении к ним из VPN-сети, у которой адресация такая же, что и основной сети.
После того, как я добавил на этот сервер сетевую карту обнаружилась странная вещь: появилось сообщение в логах “В системе обнаружен конфликт адреса IP <> с адресом сетевого устройства <>. Локальный интерфейс был отключен.”
Начал проверять с другого сервера на этом же ESXi: пингую любой IP-адрес, который точно не занят, и после этого проверяю arp-таблицу. В ней оказываются записи, с mac-адресом интерфейса mikrotik.
Забавно, что другие сервера в этой же сети, но только Windows Server 2016 и всякие Linux на данную настройку не ругались и отлично работали по сети.
Для решения данной проблемы есть два способа:
- Отключаем proxy-arp на Mikrotik
- В ветке реестра 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)
- Скачиваем и устанавливаем Windows Assessment and Deployment Kit (Windows ADK) последней версии.
При установке данного средства нужно выбирать обязательно компоненты «средства развертывания» и «среда предустановки Windows PE».

- Скачиваем и устанавливаем Microsoft Deployment Toolkit (MDT) со всеми компонентами.
- Через интерфейс MDT создаем новый «Deployment Share». Чтобы не было проблем в дальнейшем рекомендуется не менять путь по умолчанию.

- Подготавливаем драйвера для дистрибутива. В моем примере дистрибутив подготавливается для системного блока Dell Optiplex 3050. По сервис-номеру находим нужный системный блок:
http://www.dell.com/support/home/ru/ru/rubsdc/product-support/servicetag/h18cdk2/drivers - Скачиваем необходимые драйвера для выбранной операционной системы и сохраняем в заранее подготовленные директории:

- Распаковываем каждый файл, скачанный с сайта DELL, запустив инсталлятор и нажав на кнопку “Extract” и выбрав соответствующую папку, созданную на предыдущем шаге.

- Создаем каталоги в Workbench для дистрибутива операционной системы и для драйверов. Если не планируется в дальнейшем создавать дистрибутивы для других систем или компьютеров, то каталоги можно не создавать.

- Импортируем драйверы в созданную директорию «Optiplex 3050», после импорта удаляем драйвера для 32-ух битных систем, т.к. планируем распространять только 64-битную систему.

- В каталог с операционными системами добавляем нужный дистрибутив (образ должен содержать WIM образ, а не ESD)

- Добавляем приложения, которые требуется установить в каталог приложений, указав при этом командную строку для тихой установки программ


Отдельно стоит упомянуть про установку 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 - Создаем новый стандартный Task Sequence. Task sequence ID – используется в автоматизации установки, поэтому лучше создавать его числовым.


- Указываем wim-файл из дистрибутива, который будет использоваться в этом task sequence. В дальнейшем его можно будет поменять.

- Можно сразу указать ключ установки.

- Указываем владельца дистрибутива. Строчка с домашней страницей в Internet Explorer не работает для Windows 10

- Указываем пароль локального администратора. Для русского дистрибутива учетная запись будет называться «Администратор». Выбирая 2-ой пункт учетная запись не будет иметь пароля.

- Открываем свойства только что созданного Task Sequence и во вкладке «Task Sequence» находим слева строку «Format and Partition Disk (BIOS)». Здесь надо указать как будет разбиваться диск на компьютере с BIOS. Я сделал настройки так, как представлены на скриншоте: 40% пространства диска выделяется на системный раздел, из оставшегося пространства берется 99% и забирается под раздел с данными. Оставшаяся часть – раздел восстановления. В начале диска оставляем раздел для загрузки.

- Тоже самое проделываем и для компьютеров с UEFI, только разделы в начале диска будут другие – EFI и MSR.

- В разделе Inject Drivers нужно указать профиль, в котором выбраны драйверы, которые в свою очередь, требуется внедрить в настраиваемый дистрибутив. Если нужно указать несколько профилей, то через меню Add – General – Inject Drivers добавляем еще одну задачу добавления драйверов.

- Профиль заранее создаем в соответствующем разделе.

- Ниже в разделе слева находим строку «Install Application». Указываем приложение, которое требуется установить. Если требуется установить несколько приложений, то добавляем такие задачи через меню Add – General – Install Application

- Если требуется установить шрифт, то предварительно требуется создать 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 «команда», иначе выполнение всего скрипта прервется и установка завершится ошибкой

- Для создания ярлыков добавим еще один 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 нужно указать только имя скрипта

- Все задачи после запуска скриптов можно отключить, потому что они не требуются, если надо только установить систему (без sysprep и захвата). Для этого берем, например, задачу «Capture Image» и в Options ставим галочку «Disable this step».

- Если требуется изменить параметры, которые вводились в момент создания Task Sequence, то для этого нужно найти файл Unattend.xml, который лежим в папке с именем, совпадающим с идентификатором этого Task Sequence, которая в свою очередь лежит в папке «Control». В нем, например, можно поменять пароль администратора, который был ранее задан.

- В папке с профилями создаем еще один профиль, назовем ее «Автономный медианоситель Windows 10 для MIUZ». В нем указываем те директории, которые необходимо скомпоновать в один ISO-файл, с которого и будет происходить установка системы: указываем приложения, операционные системы, драйвера, пакеты и Task Sequence.

- В разделе «Media» через команду «New Media» создаем новый носитель, в котором указываем путь, где будут храниться файлы, из которых будет создаваться ISO-образ и указываем профиль, который создали на предыдущем шаге. Важно: путь в строке «Media path» не должен содержать русские символы, иначе будут ошибки в дальнейшем.

- После создания нового «Media» заходим в его свойства. Указываем, что загрузочный образ будет генерироваться только 64-битный (т.к. система, которую требуется устанавливать, только 64-битная). Указываем имя ISO-файла, которое будет создаваться.

- Во вкладке Windows PE для платформы x64 указываем «Scratch space size» указываем значение 128. Во вкладке «Drivers and Patches» можно выбрать какие драйвера добавлять в образ Windows PE.

- Во вкладке «Rules» прописываются настройки, которые исполняются в момент запуска Windows PE из создаваемого ISO-файла. Причем настройки в файле Bootstrap.ini исполняются до момента запуска Windows PE. Поэтому в нем может быть прописано, где брать сам загрузчик с Windows PE (в случаях если он распространяется не через ISO-файл, а через PXE). Для нашего случая в нем прописываем только одну строку, которая отключает показ сообщения после запуска Windows PE.

- Все настройки, которые прописаны в самой вкладке «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/ - После того, как все настройки в «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”
- Компьютер получает IP-адрес от DHCP-сервера
- Происходит опрос папки _tcp в DNS-зоне домена, в которую включена система.
- Система определяет какие SRV-записи присутствуют в папке _tcp
- Система пытается связаться со всеми контроллерами
- Первый контроллер, который отвечает компьютеру, анализирует IP-адрес, с которого поступил запрос, определяет,что этот IP принадлежит определенному сайту (на основе записей в Active Directory) и сообщает системе имя сайта.
- Система сохраняет возвращенное имя сайта в реестре и опрашивает все контроллеры домена в своем сайте, путем обращения к папке _tcp сайта.
- Система DNS возвращает список всех контроллеров, зарегистрированных в этом сайте.
- Клиент пытается связаться со всеми контроллерами в своем сайте и первый ответивший контроллер выполняет проверку подлинности клиента.
- Система определяет этот контроллер домена как близлежащий и в последствии будет пытаться проходить проверку подлинности именно на нем.
- Если контроллер домена близлежащий недоступен, клиент вновь опрашивает папку _tcp сайта и пытается связаться со всеми контроллерами домена в узле.
- Если контроллеры домена в сайте не отвечают клиенту, то система запрашивает папку _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.

