본문 바로가기
IT/Azure

Windows RDP Port 변경

by rapker 2023. 4. 29.
반응형

 

728x90

 

 
사전 준비
  • 윈도우 가상머신
  • az cli가 설치된 로컬 컴퓨터
 
가상머신에 접속하지 않고 az vm run-invoke 명령어와, 스크립트를 이용해 윈도우의 RDP포트를 다른포트로 변경하는 방법입니다.
 
 
로컬 컴퓨터에서 change_rdp_port.ps1이라는 파일을 만들고 아래 내용으로 채워줍니다.
 
 

1 포트 변경

 
1-1 방화벽에 규칙 추가와 함께
 
change_rdp_port.ps1의 파일 내용
# 포트 확인
#Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber"

$portvalue = 33893

# 레지스트리에 RDP 포트 변경
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber" -Value $portvalue

# 방화벽에서 변경된 포트를 허용
New-NetFirewallRule -DisplayName 'RDPPORTLatest-TCP-In' -Profile 'Public' -Direction Inbound -Action Allow -Protocol TCP -LocalPort $portvalue
New-NetFirewallRule -DisplayName 'RDPPORTLatest-UDP-In' -Profile 'Public' -Direction Inbound -Action Allow -Protocol UDP -LocalPort $portvalue
New-NetFirewallRule -DisplayName 'RDPPORTLatest-TCP-In' -Profile 'Private' -Direction Inbound -Action Allow -Protocol TCP -LocalPort $portvalue
New-NetFirewallRule -DisplayName 'RDPPORTLatest-UDP-In' -Profile 'Private' -Direction Inbound -Action Allow -Protocol UDP -LocalPort $portvalue

# 서비스 재시작
Restart-Service -Force -Name "TermService"
 
 
1-2 방화벽과 윈도우 업데이트 비활성화와 함께
 
change_rdp_port.ps1의 파일 내용
#Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber"
#Get-NetFirewallRule -DisplayName 'RDPPORTLatest-TCP-In'

$portvalue = 33893

# 레지스트리에 RDP 포트 변경
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber" -Value $portvalue

# 방화벽 비활성화
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False

# 업데이트 비활성화
Set-Service -Name wuauserv -StartupType Disabled
Set-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -name NoAutoUpdate -Value 0
Set-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -name AUOptions -Value 3

# 서비스 재시작
Restart-Service -Force -Name "TermService"
 

 

 
 

2 로컬PC에서 VM에 원격으로 파워쉘 실행

 
powershell에서 아래 명령어를 실행 합니다.
#$ids = "/subscriptions/4c3e8c6f-e570-448b-82c5-1507cb59d0b5/resourceGroups/rgRDP_group/providers/Microsoft.Compute/virtualMachines/rgRDP"
#$scriptPath = "d:\change_rdp_port.ps1"

#$ids = <가상머신의 ID>
#$scriptPath = <ps1 파일의 경로>
az vm run-command invoke --ids $ids --command-id RunPowerShellScript --script @$scriptPath
 
 
 
반응형
LIST