Ncalayer на rdp
ncalayer не работает на рдп сервер надо менять ему порты
Вариант 1
что бы поменять ручками вводим в cmd
Для установки произвольного порта в диапазоне от 13580 до 13679 используйте команду:
echo %NCALAYERPORT% проверить какой порт стоит
setx NCALAYERPORT 13580
setx NCALAYERPORT «» вернуть порт по дефалту
Вариант 2
# Определяем диапазон портов, разрешенный для NCALayer на RDP
$StartPort = 13580
$EndPort = 13679
$PortFound = $false
$CurrentPort = 0
# Имя переменной среды
$VariableName = "NCALAYERPORT"
# 1. Цикл проверки портов
for ($Port = $StartPort; $Port -le $EndPort; $Port++) {
# Используем .NET класс TcpListener для проверки занятости порта
try {
# Пытаемся запустить слушателя на порте 127.0.0.1 (локальный хост)
# Если порт свободен, слушатель запускается успешно
$Listener = [System.Net.Sockets.TcpListener]::new([System.Net.IPAddress]::Loopback, $Port)
$Listener.Start()
# Порт свободен! Запоминаем его и выходим из цикла.
$CurrentPort = $Port
$PortFound = $true
$Listener.Stop() # Останавливаем слушателя, чтобы освободить порт
break
} catch {
# Если произошла ошибка (порт занят), игнорируем и переходим к следующему порту
# Write-Host "Порт $Port занят. Пропускаем..."
}
}
# 2. Установка переменной среды, если порт найден
if ($PortFound) {
# Устанавливаем переменную среды ТОЛЬКО для текущего сеанса/процесса.
# Это предотвращает изменение реестра setx и работает быстрее.
[Environment]::SetEnvironmentVariable($VariableName, $CurrentPort, "User")
# Здесь можно добавить логирование для отладки
# Write-Host "NCALayerPORT установлен на: $CurrentPort для пользователя $($env:USERNAME)"
} else {
# Если все порты заняты (ситуация маловероятна, но возможна)
# Write-Host "В диапазоне $StartPort - $EndPort не найдено свободных портов!"
}





