Подключение Windows-хоста к AWM
Один однострочник на целевом хосте — и он сам появляется в панели с автосгенерированным credential. Поддержка: Windows Server 2012 R2 / 2019 / 2022, Windows 10 / 11.
Что делает скрипт
- Форсит TLS 1.2 и проверяет права Administrator.
- Для 2012 R2 с PS 4 — ставит WMF 5.1 (KB3191564), просит ребут и повторный запуск.
- Переключает сетевой профиль с
PublicнаPrivate(WinRM не работает на Public). - Поднимает WinRM + HTTPS-listener 5986 + self-signed сертификат + firewall + auth.
- Создаёт/обновляет локального пользователя
awmв группе «Администраторы» (поиск по SID, работает на любой локали). - Генерит 24-символьный рандомный пароль для
awmи отправляет credential в AWM-панель. - Собирает все локальные IPv4 и отправляет их панели — она сама выберет RFC1918-адрес для
ansible_host. - Если self-register не прошёл (firewall/интернет) — печатает пароль в консоль для ручного ввода.
1
Запустить скрипт на хосте
RDP на хост, PowerShell от Administrator, вставь одной строкой:
PowerShell as Administrator:
[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; iwr -UseBasicParsing https://awm.aplo.pw/bootstrap/enable-winrm.ps1 -OutFile $env:TEMP\enable-winrm.ps1; powershell -ExecutionPolicy Bypass -File $env:TEMP\enable-winrm.ps1
URL скачивания: awm.aplo.pw (прод, доступен с любой сети с интернетом). Скрипт сам ходит на staging-панель
awm.beta.aplosoft.ru через proxy
awm.aplo.pw/api/* — хосту достаточно доступа к проду.
2
Если Server 2012 R2 — будет ребут
- Первый прогон поставит WMF 5.1 (~5 минут) и попросит Restart-Computer -Force.
- Ждёшь пока хост вернётся (~5 минут), RDP снова, PowerShell as Administrator.
- Ту же команду ещё раз — второй прогон уже настроит WinRM и self-register.
Для Windows 10 / Server 2019 / 2022 — один прогон, без ребута (PS 5.1+ уже есть).
3
Одобрить хост в панели
После успешного прогона увидишь
AWM: created as 'auto-HOSTNAME-IP' (enabled=False).
Хост и его credential уже в БД — остаётся одобрить.
- Хосты — на жёлтом баннере видишь количество pending. У новой записи нажми «править»:
- Переименовать с
auto-RKSERVER61-192-168-6-99→ понятное имя (RKSERVER61). - Проверить
ansible_host— панель подобрала первый RFC1918-адрес, но если staging видит хост по другому IP (через Kerio), поправь. - Проверить
os_groupиauth_group(обычноwin_workgroup). - Credential уже привязан (
awm-HOSTNAME-IP) — проверять не нужно. - Поставь галку «активен», сохрани.
- Переименовать с
- Кнопка Sync → Ansible в шапке — перегенерит inventory и зашифрованный vault.
- Запуски → Ping → выбрать хост из подсказок → Запустить. «WinRM OK» — готово.
Частые ошибки
Unable to load file … execution of scripts is disabled
→ если скрипт уже сохранён на диск, запускай
powershell -ExecutionPolicy Bypass -File путь.ps1. Однострочник из шага 1 это делает сам.-OutFile : Имя -OutFile не распознано
→ команду вставили в несколько строк. Вставлять одной строкой (через кнопку «Копировать» — без переносов).
Исключение брандмауэра WinRM … сетевое подключение Public
→ исправлено в текущей версии — скрипт автоматически переводит профиль с Public на Private. Если автопереключение не сработало: Параметры → Сеть → Свойства → Частная сеть.
Group 'Administrators' not found / Группа Administrators не найдена
→ исправлено — скрипт ищет группу по SID
S-1-5-32-544, работает на любой локали.MissingEndParenthesisInExpression / ParserError
→ старая консоль неправильно интерпретирует UTF-8. Исправлено: скрипт содержит BOM, рантайм-вывод на английском.
Self-register failed: Время ожидания операции истекло
→ хост не достучался до
awm.aplo.pw. Проверить:
Test-NetConnection awm.aplo.pw -Port 443 Resolve-DnsName awm.aplo.pwЕсли firewall/DNS не пропускает — в конце скрипта напечатан пароль, скопируй его, создай credential и хост вручную в панели.
ntlm: Connection refused (порт 5986)
→ для 2012 R2: второй прогон скрипта ещё не сделан после установки WMF 5.1. Перезайди по RDP и повтори команду.
basic: the specified credentials were rejected
→ ранее это было при ручном вводе неверного пароля. Сейчас скрипт сам генерит пароль и отдаёт его панели — ошибки быть не должно. Если всё же увидел — проверь, что хост привязан к своему credential
awm-HOSTNAME-IP, а не к общему.Could not match supplied host pattern
→ хост есть в панели, но disabled (новые self-registered приходят выключенными), либо не нажата Sync → Ansible.
Параметры скрипта (опционально)
| Параметр | Эффект |
|---|---|
| -EnableBasicAuth:$false | Не включать Basic auth (в AD-окружении с NTLM/Kerberos). |
| -SkipWmfInstall | Пропустить установку WMF 5.1. |
| -ListenerPort 5986 | Другой порт HTTPS listener. |
Пример с параметрами:
powershell -ExecutionPolicy Bypass -File $env:TEMP\enable-winrm.ps1 -EnableBasicAuth:$false