Как узнать, кто активно вошел (локально или удаленно) на ПК с Windows 7?

14

На своем компьютере с Windows 7 я хочу проверить, кто «активно» вошел в систему на другом компьютере с Windows 7 в моей сети, а не кто подключился последним. Как это может быть сделано?

В течение дня несколько человек будут удаленно подключаться к общему компьютеру, обычно выходя из системы по окончании. Обратите внимание, что эти пользователи имеют права администратора как на своем ПК, так и на том, к которому они подключены. Если я вхожу в систему, когда кто-то еще активно входит в систему, мне предоставляется возможность продолжить и сделать себя «активным» пользователем, таким образом переводя прежнюю активную учетную запись в отключенное состояние. Было бы неплохо иметь возможность увидеть, кто активно вошел в систему, прежде чем сделать этот выбор.

Я искал в Интернете и нашел различные решения, которые позволяют узнать, кто установил последнее соединение, что не означает, что он последний или «активный» пользователь.

Кстати, в Windows 7 кажется странным, что текущий активный идентификатор пользователя отображается после того, как я нажимаю «Да», чтобы войти через них. Когда мы использовали Windows XP, можно было увидеть идентификатор текущего активного пользователя, прежде чем он решит продолжить вход в систему.

Любая помощь приветствуется.

pgodar
источник

Ответы:

11

Для этого вы можете использовать команду запроса служб терминалов .

query session /server:remote_computer_name_here

Обратите внимание, что вам нужно установить следующее значение реестра на удаленном компьютере:

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
Value Name: AllowRemoteRPC
Value: 1
Type: REG_DWORD

Вы можете поместить команду query в командный файл, чтобы пользователи могли просто дважды щелкнуть по ней, чтобы увидеть, кто вошел в систему на этом компьютере.

Патрик Сеймур
источник
10

Вы можете использовать инструмент Windows Sysinternals PSLoggedOn .

Использование: psloggedon [-] [-l] [-x] [\\ имя_компьютера | имя пользователя]

- Отображает поддерживаемые параметры и единицы измерения, используемые для выходных значений.

-l Показывает только локальные входы в систему вместо входа как локальных, так и сетевых ресурсов.

- x Не показывать время входа.

\\ имя_компьютера Указывает имя компьютера, для которого выводится информация о входе в систему.

username Если вы укажете имя пользователя, PsLoggedOn ищет в сети компьютеры, на которых зарегистрирован этот пользователь. Это полезно, если вы хотите убедиться, что определенный пользователь не вошел в систему, когда вы собираетесь изменить конфигурацию его профиля пользователя.

мистифицировать
источник
Стоит отметить, что PSLoggedOn требует Remote Registry Serviceзапуска на целевом компьютере. Эта служба не запускается по умолчанию.
Я говорю, восстановите Монику
3

Другой вариант из командной строки Windows 7 или выше:

tasklist /s computername /fi "imagename eq explorer.exe" /v

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

Это покажет, работает ли explorer.exe на компьютере, а "/ v" указывает имя пользователя. Если машина не вошла в систему, процесс explorer.exe не будет запущен. Если кто-то вошел в систему, процесс explorer.exe запускается в контексте этого пользователя.

DBraun
источник
Единственный (редкий) случай, когда это не сработает, это если оболочка удаленной машины не работает explorer.exe. Редко, но возможно.
Я говорю, восстановите Монику
1

Команда wmicв командной строке может получить эту информацию. Однако для того, чтобы клиенты отвечали, сначала требуется правило брандмауэра.

Я нашел сообщение на community.spiceworks.com, благодаря MacKingTosh, которое, похоже, исправляет ошибку «ошибка - сервер RPC недоступен».

Команда для запуска на клиентах, которые выдают эту ошибку:

netsh firewall set service remoteadmin enable

Возможно, вы захотите проверить, соответствует ли это вашим правилам брандмауэра.

При использовании wmicздесь приводится разбивка параметров, которые вы можете передать:

  • /node: - серверы, с которыми будет работать псевдоним
  • yourpcname - название ПК
  • computersystem - это компьютерная система, о которой мы пытаемся получить информацию
  • get - мы хотим получить информацию
  • username - пользователь, который вошел в систему
  • model - модель компьютера
  • manufacturer - название компании, которая сделала компьютер
  • name - название ПК

Несколько примеров:

Получить имя пользователя:

wmic /node: 'yourpcname' computersystem get username

Получить марку и модель ПК:

wmic /node: 'yourpcname' computersystem get manufacturer, model

Получите все три:

wmic /node: 'yourpcname' computersystem get manufacturer, model, username

Добавление дополнительных полей можно сделать с помощью запятой и пробела:

Model, manufacturer, username, name

Приведенные выше примеры относятся к удаленному ПК, и запрос выполняется по сети. Если команда выполняется локально, то у нее будет немного другой синтаксис. Например:

wmic computersystem get manufacturer, model, username
Джейсон
источник