- Поиск активных сессий и залогиненных пользователей с Powershell
- Получение имени залогиненного пользователя
- Получение списка компьютеров
- Удаленное получение залогиненных пользователей
- Получение включенных пользователей AD
- Whoami или WMI
- Мониторинг активности и статуса подключенных удаленных клиентов. Monitor connected remote clients for activity and status
- Мониторинг активности и состояния удаленных клиентов To monitor remote client activity and status
- Управление RDP сессиями пользователей Windows Server 2012 R2
- Управление сеансом пользователя на сервере Windows 2012/2016
- Активные сессии windows 2012
- Вопрос
- Ответы
- Все ответы
Поиск активных сессий и залогиненных пользователей с Powershell
Иногда может понадобится проверить какие в данный момент залогинены в системе, то есть являются активными. Такую информацию можно использовать для аудита, например для проверки какие учетные записи за какими компьютерами сидят или для последующей перезагрузки сервера, что бы не останавливать работу коллег. В примерах ниже рассмотрено как выполнять удаленные команды для получения активных пользователей и возврата включенных пользователей Active Directory.
Навигация по посту
Получение имени залогиненного пользователя
Я не могу вспомнить готовую команду Powershell, которая бы вернула логин пользователя, но такая возможность есть через WMI:
Есть еще вариант использовать CIM, который может работать немного быстрее:
Обе команды могут работать удаленно если добавить атрибут ComputerName:
Если вы планируете выполнять эти команды удаленно, то может понадобится выполнить предварительные настройки в виде открытия портов и необходимых правах.
Получить только имя пользователя можно так:
Как вы знаете в Winodws есть так же параллельные сеансы сервисов. Если вам нужно вернуть имена этих аккаунтов нужно использовать класс «win32_LoggedOnUser»:
Получение списка компьютеров
Если у вас нет списка компьютеров к которым вы планируете подключиться и узнать активного пользователя — это можно сделать через AD. На примере ниже будут возвращены все компьютеры:
Операция по получению списка компьютеров может быть очень долгой, если у вас большой парк ПК в AD. Вы можете вернуть только компьютеры, которые не отключены в AD (Disable) следующим способом:
Можно использовать и фильтрацию. Так я верну компьютеры имена которые начинаются на «CL»:
Получить список имен мы можем так:
Если у вас список компьютеров не относится к AD или имеет другой формат — то просто преобразуйте его в массив:
Удаленное получение залогиненных пользователей
Выше уже рассматривался вариант получения имени пользователя удаленно используя WMI и CIM. Если обе команды, то всех пользователей активных в данный момент мы можем получить так:
Такой подход может привести к ошибкам так как мы не проверяем включены ли компьютеры:
Мы можем просто не выводить ошибки с помощью «-ErrorAction SilentlyContinue» или заранее пинговать (что было бы правильнее с точки зрения времени выполнения). В примере ниже я так же разбиваю имя компьютера и логин в более удобный формат:
Если вы не хотите выполнять команды удаленно через WMI, то вы можете использовать PSRemoting. От так же требует предварительных настроек, которые описаны в статье «Удаленное управление через Powershell». Команда, которая использует PSRemoting, будет выглядеть примерно так же:
Получение включенных пользователей AD
Если вам нужно вернуть учетные записи, которые включены в AD выполните следующую команду:
Для возврата только отключенных учетных записей используйте $False.
Такой подход работает и с объектами компьютеров в AD:
Для последующей выгрузки данных в Excel почитайте статью «Как в Powershell выгрузить из AD пользователей и группы CSV».
Whoami или WMI
Вы можете вспомнить команду, которая так же возвращает имя пользователя:
Как можно увидеть она вернет ту же информацию, что и класс WMI. Ситуация меняется, когда эти команды используются удаленно:
Как видно, в случае с whoami у нас вернулось имя учетной записи выполнившей команду Powershell, а с WMI пользователь Windows.
Мониторинг активности и статуса подключенных удаленных клиентов. Monitor connected remote clients for activity and status
Область применения. Windows Server (Semi-Annual Channel), Windows Server 2016 Applies To: Windows Server (Semi-Annual Channel), Windows Server 2016
Примечание. Windows Server 2012 объединяет службу DirectAccess и службы удаленного доступа (RAS) в одну роль удаленного доступа. Note: Windows Server 2012 combines DirectAccess and Remote Access Service (RAS) into a single Remote Access role.
Консоль управления на сервере удаленного доступа можно использовать для наблюдения за активностью и состоянием удаленных клиентов. You can use the management console on the Remote Access server to monitor remote client activity and status.
Для выполнения задач, описанных в этом разделе, необходимо войти в систему как член группы «Администраторы домена» или член группы «Администраторы» на каждом компьютере. You must be signed in as a member of the Domain Admins group or a member of the Administrators group on each computer to complete the tasks described in this topic. Если вы не можете выполнить задачу, войдя в учетную запись, которая является членом группы «Администраторы», попробуйте выполнить задачу, войдя в учетную запись, которая является членом группы «Администраторы домена». If you cannot complete a task while you are signed in with an account that is a member of the Administrators group, try performing the task while you are signed in with an account that is a member of the Domain Admins group.
Мониторинг активности и состояния удаленных клиентов To monitor remote client activity and status
В диспетчере серверов щелкните Средства и выберите пункт Управление удаленным доступом. In Server Manager, click Tools, and then click Remote Access Management.
Щелкните отчеты , чтобы перейти к отчетам удаленного доступа в консоли управления удаленным доступом. Click REPORTING to navigate to Remote Access Reporting in the Remote Access Management Console.
Щелкните состояние удаленного клиента , чтобы перейти к пользовательскому интерфейсу активности и состояния удаленных клиентов в консоли управления удаленным доступом. Click Remote Client Status to navigate to the remote client activity and status user interface in the Remote Access Management Console.
Вы увидите список пользователей, подключенных к серверу удаленного доступа, и подробную статистику по ним. You will see the list of users who are connected to the Remote Access server and detailed statistics about them. Щелкните первую строку в списке, соответствующую клиенту. Click the first row in the list that corresponds to a client. При выборе строки на панели предварительного просмотра отображается активность удаленных пользователей. When you select a row, the remote user activity is shown in the preview pane.
Эквивалентные команды в Windows PowerShell Windows PowerShell Windows PowerShell equivalent commands
Следующие командлеты Windows PowerShell выполняют ту же функцию, что и предыдущая процедура. The following Windows PowerShell cmdlet or cmdlets perform the same function as the preceding procedure. Вводите каждый командлет в одной строке, несмотря на то, что здесь они могут отображаться разбитыми на несколько строк из-за ограничений форматирования. Enter each cmdlet on a single line, even though they may appear word-wrapped across several lines here because of formatting constraints.
Статистику пользователя можно фильтровать на основе выбора критериев, используя поля в следующей таблице. The user statistics can be filtered, based on criteria selections, by using the fields in the following table.
Управление RDP сессиями пользователей Windows Server 2012 R2
При администрировании сервера терминалов, особенно, когда на нем работают удаленные сотрудники в специализированных программах или даже просто в 1С, возникает необходимость подключиться к сессии пользователя для различных работ (обслуживание и диагностика ПО, консультация/обучение и т.п.).
Данная технология полноценно работает в Windows Server 2012 R2 и называется – Теневая копия. Если у вас установлена и используется для сервера удаленных рабочих столов MS Windows Server 2012, то знайте – данная опция не реализована в данной версии ОС. Тем не мене в обоих случаях (2012 и 2012 R2) есть прекрасная возможность использовать дополнительное средство удаленного администрирования и поддержки пользователей – “Удаленный помощник“. Устанавливается стандартным способом (через Диспетчер управления серверами-Добавить роли и компоненты):
После установки “Удаленный Помощник” необходимо выполнить следующие настройки групповых политик на настраиваемом сервере:
- Конфигурация компьютера\Административные шаблоны\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Подключения\Разрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов – включить
- Конфигурация компьютера\Административные шаблоны\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Подключения\Установить правила удаленного управления для пользовательских сеансов удаленных рабочих столов – выбрать нужны вариант
- Конфигурация компьютера\Административные шаблоны\Система\Удаленный помощник\Настроить предупреждающие сообщения
- Конфигурация компьютера\Административные шаблоны\Система\Удаленный помощник\Настроить запрашиваемую удаленную помощь
- Конфигурация компьютера\Административные шаблоны\Система\Удаленный помощник\Настроить предлагаемую удаленную помощь
Настройка Удаленного помощника на сервер MS Windows Server 2012 / 2012 R2 завершена.
Нашли ошибку в тексте? Выделите фрагмент текста и нажмите Ctrl+Enter
Управление сеансом пользователя на сервере Windows 2012/2016
Вплоть до Windows server 2008 управлять сеансами пользователей было достаточно просто. Через диспетчер задач во вкладке пользователя можно было нажав ПКМ на имени пользователя выбрать «удаленное управление» и вуаля! Помогаете пользователю в том, с чем он не может справиться самостоятельно.
Но сейчас это стало намного сложнее. Одно время МС вообще такую возможность забрала у администраторов. Но потом одумалась и вернула. Но удобства былого больше нет.
Как же это делается сейчас?
Открываете powershell или cmd (кому что больше нравится).
Вводите команду:
quser
или
qwinsta , которая вам покажет список пользователей, которые в данный момент работают на сервере. Среди всей инфы о сеансе нас будет больше всего интересовать ID их сессий. Дальше вводим команду:
mstsc /shadow:1 /control
где вместо единицы после двоеточия введите ID сессии интересующего вас пользователя. Вуаля! После подтверждения пользователя вы снова в деле!
на скрине вы можете увидеть инфу о сеансах, которую выдают команды quser и qwista. Выберете ту, которая вам больше нравится.
Для упрощения работы я создал 2 файла (cmd & ps1) и оставлю их здесь. Работать с ними просто. Запускаясь, он показывает активные сессии и ждет от вас ввода нужного ID. После его ввода — подключается к сессии выбранного пользователя.
Файл для Powershell и файл для cmd
Активные сессии windows 2012
Вопрос
подскажите каким путем в 2012 R2 возможно реализовать просмотр активной сессии.
Знаю есть вариант с удаленным помощником, однако даже пр условии что в групповой явно указано не спрашивать разрешение у пользователя и в профиле пользователя снят отметка в атрибуте. При подключении к сессии, все равно спрашивается разрешение.
Нужно же подключиться с просмотром к сессии не заметно для пользователя, контроль работы пользователя.
Ответы
Вопрос закрыт, установил не как компонент/роль — Удаленных рабочих столов, в выборе тип установки, «Установка служб удаленных рабочих столов». После чего создал пул, добавил терминальный сервер в пул. В закладке Диспетчер серверов\Службы удаленных рабочих столов\Коллекции — есть окошко в котором отображаются пользователи. Необходимо выбрать «Теневая копия» для того что бы просмотреть сеанс.
Все ответы
подскажите каким путем в 2012 R2 возможно реализовать просмотр активной сессии.
Знаю есть вариант с удаленным помощником, однако даже пр условии что в групповой явно указано не спрашивать разрешение у пользователя и в профиле пользователя снят отметка в атрибуте. При подключении к сессии, все равно спрашивается разрешение.
Нужно же подключиться с просмотром к сессии не заметно для пользователя, контроль работы пользователя.
а если подключаться с ключом /noConsentPrompt ?
Mstsc.exe [/shadow:sessionID [/v:Servername] [/control] [/noConsentPrompt]]
также можно поправить политику Set rules for remote control of Remote Desktop Services user sessions, статья
подскажите каким путем в 2012 R2 возможно реализовать просмотр активной сессии.
Знаю есть вариант с удаленным помощником, однако даже пр условии что в групповой явно указано не спрашивать разрешение у пользователя и в профиле пользователя снят отметка в атрибуте. При подключении к сессии, все равно спрашивается разрешение.
Нужно же подключиться с просмотром к сессии не заметно для пользователя, контроль работы пользователя.
а если подключаться с ключом /noConsentPrompt ?
Mstsc.exe [/shadow:sessionID [/v:Servername] [/control] [/noConsentPrompt]]
также можно поправить политику Set rules for remote control of Remote Desktop Services user sessions, статья
Есть такая опция:
Если вы включаете этот параметр политики, администраторы могут взаимодействовать с сеансом служб удаленных рабочих столов пользователя в соответствии с выбранным вариантом. Выберите желаемый уровень контроля и разрешений из списка вариантов:
1. Удаленное управление не разрешено: запрещает администратору использовать удаленное управление или просматривать сеансы удаленных пользователей.
2. Полный контроль с разрешения пользователя: разрешает администратору взаимодействовать с сеансом при условии согласия пользователя.
3. Полный контроль без разрешения пользователя: разрешает администратору взаимодействовать с сеансом даже без согласия пользователя.
4. Наблюдение за сеансом с разрешения пользователя: позволяет администратору просматривать сеанс удаленного пользователя с согласия пользователя.
5. Наблюдение за сеансом без разрешения пользователя: позволяет администратору просматривать сеанс удаленного пользователя без согласия пользователя.
Если вы отключаете этот параметр политики, администраторы могут взаимодействовать с сеансом служб удаленных рабочих столов пользователя, если пользователь даст на это согласие.
Однако она не дает результатов, применяется через групповую на машину. На сервере опция выставлена.