В этой заметке я собрал всё в кучу: как заставить Windows 10 Pro принимать несколько RDP-сессий одновременно, и как это дело автоматизировать для кучи машин в домене. Без групповых политик и PowerShell тут не обойтись. Погнали!
Нам нужно:
rdpwrap.ini до актуальной версии (иначе после обновлений Windows всё сломается).Самый простой путь — использовать сборку RDP Wrapper with Autoupdater (например, версия от asmtron). Она сама создаёт задание в планировщике, которое при каждом запуске системы проверяет свежий rdpwrap.ini с GitHub.
RDPWrap-with-Autoupdate-installer.exe в сетевую папку (например, \\domain.local\sysvol\software\).Computer Configuration -> Windows Settings -> Scripts -> Startup.\\domain.local\sysvol\software\RDPWrap-with-Autoupdate-v1.4-Installer.exe /verysilent /suppressmsgboxes /norestart
Плюс: дальше он живёт своей жизнью, автообновление работает.
Если хочется контроля, пишем свой PowerShell скрипт и тоже вешаем его в Startup скрипты GPO.
# RDP_Wrapper_Deploy.ps1
# Запускается от имени SYSTEM при старте компьютера
$log = "C:\Windows\Temp\RDPWrap_Install.log"
Start-Transcript -Path $log -Append
try {
# 1. Качаем свежий RDP Wrapper (если ещё нет)
$rdpPath = "C:\Program Files\RDP Wrapper"
if (-not (Test-Path $rdpPath)) {
# Скачиваем с GitHub или копируем из сетевой папки
Copy-Item -Path "\\domain.local\sysvol\software\RDPWrap-v1.6.2.zip" -Destination "C:\Temp\" -Force
Expand-Archive -Path "C:\Temp\RDPWrap-v1.6.2.zip" -DestinationPath "C:\Temp\RDPWrap" -Force
Set-Location "C:\Temp\RDPWrap"
.\install.bat
}
# 2. Останавливаем службу, обновляем конфиг
Stop-Service termservice -Force
$iniUrl = "https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini"
$iniPath = "$rdpPath\rdpwrap.ini"
Invoke-WebRequest -Uri $iniUrl -OutFile $iniPath -UseBasicParsing
Start-Service termservice
# 3. Создаём задание в планировщике для автообновления при старте
$taskName = "Update RDP Wrapper INI"
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-Command `"Stop-Service termservice; Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini' -OutFile '$iniPath' -UseBasicParsing; Start-Service termservice`""
$trigger = New-ScheduledTaskTrigger -AtStartup
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -Principal $principal -Force
# 4. Добавляем доменную группу в локальную группу RDP
$group = "Пользователи удаленного рабочего стола"
$domainGroup = "DOMAIN\RDP_Users" # ваша доменная группа
net localgroup "$group" "$domainGroup" /add
Write-Host "RDP Wrapper установлен и настроен."
}
catch {
Write-Error "Ошибка: $_"
}
Stop-Transcript
Важно: Скрипт должен быть подписан или разрешено выполнение неподписанных скриптов через GPO (Set-ExecutionPolicy Bypass в настройках политик).
RDP Wrapper часто детектится как потенциально нежелательное ПО (хак-тул). Без исключений Защитник Windows может снести файлы. Лечится через GPO:
Computer Configuration -> Administrative Templates -> Windows Components -> Microsoft Defender Antivirus -> ExclusionsC:\Program Files\RDP WrapperЧтобы убедиться, что всё работает на целевой машине:
RDPConf.exe (должен гореть зелёный [fully supported]).C:\Windows\Temp\RDPWrap_Install.log.Через Active Directory и GPO можно централизованно настроить многопользовательский RDP на всех Windows 10 Pro. Либо ставим готовый установщик с автообновлением, либо пишем свой PowerShell скрипт. Второй вариант даёт больше гибкости, но требует аккуратности. Главное — не забыть про исключения в антивирусе и обновление rdpwrap.ini, иначе после ближайшего обновления Windows всё отвалится.
Заметка написана для внутреннего использования. Если есть что добавить или поправить — дайте знать!
Комментарии
Пока нет комментариев. Будьте первым!