none
Выгрузка информации с VPN сервера о пользователях, которые давно не подключались RRS feed

  • Вопрос

  • Добрый день!

    Имеется VPN сервер с Windows 2012R2. Настроена роль RRAS.

    Поставлена задача сделать выгрузку информации о пользователях VPN, которые не подключались более 3 месяцев.

    Нашел, что командлетом: Get-RemoteAccessConnectionStatistics -StartDateTime $startDate -EndDateTime $endDate | where -Property username -eq $username | Format-List -Property *

    Можно вывести, когда пользователь подключался. Для конкретного пользователя, если не будет никакой выводимой информации, можно сделать вывод, что в указанный период он не подключался. А как это автоматизировать для списка пользователей?

    Думал, использовать атрибут учетной записи lastLogonTime, но подключение к VPN серверу к нему не относится.

    Прошу помочь опытных коллег в решении вопроса. Спасибо!

    7 декабря 2019 г. 9:33

Все ответы

  • RemoteAccessConnectionStatistics -StartDateTime $startDate -EndDateTime $endDate | sort username | out-gridview


    The opinion expressed by me is not an official position of Microsoft



    • Изменено Vector BCOModerator 7 декабря 2019 г. 10:38
    • Предложено в качестве ответа Alexander RusinovModerator 7 декабря 2019 г. 22:50
    • Изменено Alexander RusinovModerator 7 декабря 2019 г. 22:54 Правка, поправил out-gridwiev на out-gridview, основание: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/out-gridview?view=powershell-5.1
    • Отменено предложение в качестве ответа Derian Fawkes 10 декабря 2019 г. 17:28
    7 декабря 2019 г. 10:37
    Модератор
  • Спасибо за Ваш ответ, но к решению он меня не подвел.

    Возможно недостаточно четко сформулировал проблему.

    Есть группа в AD, которая предоставляет доступ к удаленному подключению. Я могу выгрузить из неё всех пользователей, кто имеет удаленный доступ.

    Get-ADGroupMember -Identity "VPN_group_name" | Select samaccountname | Sort-Object samaccountname

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

    И теперь задача состоит в том, чтобы исключить из вывода списка пользователей VPN всех, кто упоминался подключался в тот период. Как это осуществить?

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

    10 декабря 2019 г. 17:40
  • Ув. Derian, у меня нет под руками RRAS в связи с чем понятия не имею какой будет вывод у команды которую вы подали.Покажите пожалуйста пример вывода команды для 2х записей

    Get-RemoteAccessConnectionStatistics -StartDateTime $startDate -EndDateTime $endDate | Select -first 2| FL *

    Из простого можно соорудить нечто такого плана:

    $Connections = Get-RemoteAccessConnectionStatistics -StartDateTime $startDate -EndDateTime $endDate 
    Get-ADGroupMember -Identity "VPN_group_name" | Where {$_.samAccountName -notin $Connections.username}



    The opinion expressed by me is not an official position of Microsoft


    10 декабря 2019 г. 17:58
    Модератор
  • День добрый

    $GoodUsers = @(Get-RemoteAccessConnectionStatistics | select -ExpandProperty username)
    $GoodADUsers = @(
        foreach ($User in $GoodUsers) {
            if ($User.Contains('\')) { $User = $User.Split("\")[-1] }
            Get-ADUser -Filter { UserPrincipalName -eq $User -or SamAccountName -eq $User }         
        }
    )
    
    $GroupUsers = @(Get-ADGroupMember VPN_Users)
    
    "Пользователи которые подключались к VPN и находятся в группе AD:"
    Compare-Object $GoodADUsers $GroupUsers -Property distinguishedName -ExcludeDifferent -IncludeEqual
    
    "Пользователи которые подключались к VPN но их нет в группе AD:"
    Compare-Object $GoodADUsers $GroupUsers -Property distinguishedName | Where-Object { $_.SideIndicator -eq '<=' }
    
    "Пользователи которые не подключались к VPN и находятся в группе AD:"
    Compare-Object $GoodADUsers $GroupUsers -Property distinguishedName | Where-Object { $_.SideIndicator -eq '=>' }


    Грамотная постановка вопроса - уже 50% решения.
    SCCM User Group Russia на FaceBook и в Telegram

    • Предложено в качестве ответа Vector BCOModerator 13 декабря 2019 г. 8:21
    10 декабря 2019 г. 19:45
  • День добрый

    $GoodUsers = @(Get-RemoteAccessConnectionStatistics | select -ExpandProperty username)
    $GoodADUsers = @(
        foreach ($User in $GoodUsers) {
            if ($User.Contains('\')) { $User = $User.Split("\")[-1] }
            Get-ADUser -Filter { UserPrincipalName -eq $User -or SamAccountName -eq $User }         
        }
    )
    
    $GroupUsers = @(Get-ADGroupMember VPN_Users)
    
    "Пользователи которые подключались к VPN и находятся в группе AD:"
    Compare-Object $GoodADUsers $GroupUsers -Property distinguishedName -ExcludeDifferent -IncludeEqual
    
    "Пользователи которые подключались к VPN но их нет в группе AD:"
    Compare-Object $GoodADUsers $GroupUsers -Property distinguishedName | Where-Object { $_.SideIndicator -eq '<=' }
    
    "Пользователи которые не подключались к VPN и находятся в группе AD:"
    Compare-Object $GoodADUsers $GroupUsers -Property distinguishedName | Where-Object { $_.SideIndicator -eq '=>' }


    Грамотная постановка вопроса - уже 50% решения.
    SCCM User Group Russia на FaceBook и в Telegram

    сурово :)

    The opinion expressed by me is not an official position of Microsoft

    10 декабря 2019 г. 20:06
    Модератор
  • Derian, как ваши успехи?

    The opinion expressed by me is not an official position of Microsoft

    13 декабря 2019 г. 8:21
    Модератор