Кто и откуда подключался по RDP — скрипты


Когда-то написал небольшую подсказку, как посмотреть кто и откуда подключался по RDP к серверу (Кто и откуда подключался по RDP?) – посмотреть состоявшиеся подключения можно в отдельном журнале, а не в завалах Security Log. Теперь выкладываю сами скриптики.

Первый по имени сервера и логину пользователя выдаст все состоявшиеся RDP подключения, которые есть в журнале событий.

Второй скрипт выводит состоявшиеся подключения через RD Gateway. Обратите внимание на то, что логин должен быть задан в полной форме.

Третий делает тоже самое только имя пользователя задается в формате RegEx для поиска по шаблону. Этот вариант будет работать очень медленно! (К сожалению, Windows не поддерживает поиск по шаблону в XPath для значений).

#------- Connection by RDP ------------------

$servername = "rdp1"
$username = "usersamaccountname"

[xml]$equery = @"
<QueryList>
   <Query Id="0" Path="Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational">
   <Select Path="Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational">*[System[(EventID=1149)]] and *[UserData[EventXML[(Param1='$username')]]]</Select>
   </Query>
</QueryList>
"@

Get-WinEvent -ComputerName $servername -FilterXML $equery |
   Select-Object TimeCreated, @{Name="User";Expression={$_.Properties[0].Value}},
                              @{Name="Domain";Expression={$_.Properties[1].Value}},
                              @{Name="Source Network Address";Expression={$_.Properties[2].Value}},MachineName | Out-GridView

#--------- Connections thru RD Gateway 1 ----------------

$servername = "rdg1"
$username = "DOMAIN\username"

[xml]$equery = @"
<QueryList>
   <Query Id="0" Path="Microsoft-Windows-TerminalServices-Gateway/Operational">
   <Select Path="Microsoft-Windows-TerminalServices-Gateway/Operational">*[System[(EventID=302)]] and *[UserData[EventInfo[(Username='$username')]]]</Select>
   </Query>
</QueryList>
"@

Get-WinEvent -ComputerName $servername -FilterXML $equery |
   Select-Object TimeCreated, @{Name="User";Expression={$_.Properties[0].Value}},
                              @{Name="Source Network Address";Expression={$_.Properties[1].Value}},
                              @{Name="Resource";Expression={$_.Properties[3].Value}},MachineName | Out-GridView

#--------- Connections thru RD Gateway 2 ----------------

$servername = "rdg1"
$username = "username"   # Regexp

[xml]$equery = @"
<QueryList>
   <Query Id="0" Path="Microsoft-Windows-TerminalServices-Gateway/Operational">
   <Select Path="Microsoft-Windows-TerminalServices-Gateway/Operational">*[System[(EventID=302)]]</Select>
   </Query>
</QueryList>
"@

Get-WinEvent -ComputerName $servername -FilterXML $equery |
   Select-Object TimeCreated, @{Name="User";Expression={$_.Properties[0].Value}},
                              @{Name="Source Network Address";Expression={$_.Properties[1].Value}},
                              @{Name="Resource";Expression={$_.Properties[3].Value}},MachineName |
              Where-Object {$_.User -match $username} | Out-GridView
 
Реклама

Один ответ

  1. […] Кто и откуда подключался по RDP — скрипты […]

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: