powershell: Verifique o número da porta RDP remotamente

2

Estou criando um script para verificar detalhes da conexão da área de trabalho remota.

$ts = get-WMIObject Win32_TerminalServiceSetting  -computername $s -Namespace ROOT\CIMV2\TerminalServices

Com o script acima, posso verificar se o RDP está enaltado ou não. Mas eu preciso verificar o número da porta a ser usado no RDP.

Estou ciente de que o 3389 está sendo usado, mas no meu ambiente alguns servidores RDP estão configurados em outras portas.

Eu preciso buscar o número da porta. Eu verifiquei na classe WMI ROOT \ CIMV2 \ TerminalServices, mas o detalhe do número da porta não está lá.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

Neste local, posso ver que há um dword ( PortNumber ) que contém os detalhes do número da porta.

Podemos verificar de alguma outra maneira, porque, ao verificar o registro, precisamos iniciar o serviço de registro remoto e estamos com medo de que, às vezes, eles sejam interrompidos e não possamos executá-lo.

    
por Calculating Machine 19.12.2017 / 16:08

3 respostas

2

Não tenho certeza sobre o registro remoto, geralmente é suficiente ter o WinRM iniciado. você pode verificar o número da porta usando uma combinação de Invoke-Command e Get-itemProperty.

Invoke-Command -HideComputerName computer_machine { Get-ItemProperty  -Path HKLM:\SYSTEM\CurrentControlSet\Control\Termin*Server\WinStations\RDP*CP\ -Name PortNumber | select PortNumber}
    
por 19.12.2017 / 17:04
0

divirta-se com o módulo psremoting link

Import-Module PSRemoteRegistry
$computers="server2","server3"
Foreach($computer in $computers){
get-regdword -Computer $computer -Hive LocalMachine -Key 'SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Value PortNumber |select computername,data
}
    
por 23.12.2017 / 07:48
0

Melhor maneira sem anytool

    $computers="computer1","Computer2"
$result=Foreach ($Computer in $Computers) 
{
$RegBase = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine,$Computer)
$Reg=$RegBase.OpenSubKey(‘SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp’).GetValue(‘PortNumber’)
New-Object -TypeName PSCustomObject -Property @{
ComputerName = $Computer
Port=$reg
}
}

$result|select computername,port
    
por 24.12.2017 / 10:39

Tags