Назад | Перейти на главную страницу

Как зарегистрировать IP-адрес, который извне подключается к терминальному серверу?

У нас есть пользователи RDP к терминальным серверам компании. Есть ли способ отследить IP-адрес за пределами компании, откуда подключаются пользователи?

Я знаю, что есть журналы, доступные под службами терминалов в журнале событий, но я не вижу там каких-либо общедоступных IP-адресов для удаленного подключения извне.

Любая идея?

Ваш вопрос не содержит информации о том, как пользователи подключаются к вашему терминальному серверу извне. Я предполагаю, что в вашей компании есть шлюз, который перенаправляет запросы из Интернета на терминальный сервер. Если да, вы можете получить эту информацию в журнале шлюза.

Однако, если ваш терминальный сервер напрямую подключен к Интернету и по каким-то причинам имеет общедоступный IP-адрес, возможно, вот что может вам помочь:

<#

Features:
    1) This script reads the event log "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" from multiple servers and outputs the human-readable results to a CSV.

Instructions:
    1) Before you run, edit this line to include one or several of your own servers.

Requirements:
    1) TBD


April 8 2015 - Version 0.2
Mike Crowley

http://BaselineTechnologies.com

#>


$SessionHosts = @('Server2', 'Server3', 'Server4', 'Server5')

foreach ($Server in $SessionHosts) {

    $LogFilter = @{
        LogName = 'Microsoft-Windows-TerminalServices-LocalSessionManager/Operational'
        ID = 21, 23, 24, 25
        }

    $AllEntries = Get-WinEvent -FilterHashtable $LogFilter -ComputerName $Server

    $AllEntries | Foreach { 
           $entry = [xml]$_.ToXml()
        [array]$Output += New-Object PSObject -Property @{
            TimeCreated = $_.TimeCreated
            User = $entry.Event.UserData.EventXML.User
            IPAddress = $entry.Event.UserData.EventXML.Address
            EventID = $entry.Event.System.EventID
            ServerName = $Server
            }        
           } 

}

$FilteredOutput += $Output | Select TimeCreated, User, ServerName, IPAddress, @{Name='Action';Expression={
            if ($_.EventID -eq '21'){"logon"}
            if ($_.EventID -eq '22'){"Shell start"}
            if ($_.EventID -eq '23'){"logoff"}
            if ($_.EventID -eq '24'){"disconnected"}
            if ($_.EventID -eq '25'){"reconnection"}
            }
        }

$Date = (Get-Date -Format s) -replace ":", "."
$FilteredOutput | Sort TimeCreated | Export-Csv $env:USERPROFILE\Desktop\$Date`_RDP_Report.csv -NoTypeInformation


#End

Этот сценарий powershell из Сайт Microsoft Technet анализирует журналы событий о сеансах RDP, включая IP-адреса клиентов, и выводит удобочитаемые результаты в CSV.