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

Найдите пользователей, подключенных к общему сетевому ресурсу

На моем сервере Windows 2008 у меня есть общий сетевой ресурс. Я вошел на сервер с полными правами администратора. Я хотел бы знать, какие пользователи активно подключены к этой папке.

Как мне найти эту информацию?

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

Кинда-Сорта Путь: Выберите Системные инструменты >> Общие папки >> Открыть файлы, чтобы узнать, какие файлы открыты на файловом сервере. Оттуда вы можете сопоставить учетные записи пользователей, у которых есть открытые файлы, с общими папками, к которым они подключены.

Однако этого может быть недостаточно. Не верите мне? Зайдите в Управление компьютером и выберите Системные инструменты >> Общие папки >> Сеансы, чтобы узнать, кто подключен. Тогда посмотрите на # open files столбец. В некоторых сессиях должно быть 0 открытых файлов. Как узнать, к какой доле они подключены технически? Я рад, что вы спросили ...

Обширный, но трудный для масштабирования путь: Выполнить net share [sharename] для каждого рассматриваемого общего ресурса, чтобы получить список подключенных к нему пользователей. В моем тестировании перечислены даже пользователи, у которых нет открытого файла.

Вы также можете использовать административный инструмент Share and Storage Manager в Server 2008 и последующих версиях вместо Computer Management. Найдите общий ресурс в списке общих ресурсов, а затем на панели действий щелкните правой кнопкой мыши «Управление сеансами». Вы увидите список сеансов, включая те, у которых нет открытых файлов.

Но ... но ... я хочу найти конкретного пользователя, не запрашивая каждую долю! Если у вас есть конкретный пользователь, которого вы хотите отследить, похоже, что единственный способ найти эту информацию - это запросить каждую общую папку и просмотреть ее, чтобы найти нужного пользователя. Под глазом я подразумеваю вывод трубопровода на findstr или select-string. Можно экстраполировать рабочий процесс на сценарий, который перечисляет все доступные общие ресурсы, запрашивает подключенных пользователей и выполняет поиск выходных данных для данного пользователя, но это, похоже, упражнение для читателя, а не то, что Microsoft включила в качестве встроенной функции .

Это очень старый вопрос, но в принятом ответе пропущен один из лучших способов найти информацию. Графический интерфейс может показывать наличие «подключенных клиентов», но не отображать эти подключения в «открытых файлах». В этом случае требуется использование WMI, чтобы определить, кто подключен к общему ресурсу.

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

Get-WmiObject Win32_ServerConnection -ComputerName SERVER01 | Select-Object ShareName,UserName,ComputerName | Where-Object {$_.ShareName -eq "SHARENAME"}

Пример вывода:

ShareName        UserName        ComputerName
---------        --------        ------------
SHARENAME        user1           10.0.0.20
SHARENAME        user2           10.0.0.30
SHARENAME        user3           10.0.0.40

Доступ к Computer Manager не такой, как в предыдущих версиях. Вы действительно получаете "Диспетчер серверов", когда щелкаете правой кнопкой мыши "Компьютер" и выбираете "управлять". Поэтому вместо этого просто введите compmgmt.msc в поле «Поиск программ и файлов» под заголовком.

Я не думаю, что предоставленные ответы действительно отвечают на вопрос. Если вы используете Windows Server 2008 (НЕ R2) и щелкните правой кнопкой мыши «Компьютер» и выберите «Управление», а затем подтвердите сообщение UAC, запустится MMC диспетчера сервера. В диспетчере сервера находятся следующие элементы: роли, функции, диагностика, конфигурация и хранилище. Ни один из этих пяти элементов, похоже, не имеет доступных в качестве опции подключений общих имен, что и задавалось в исходном вопросе. Дополнение EDIT к ответу было более полезным, в нем упоминается диспетчер общего доступа и хранения, но оно все еще не дает ответа. Он предоставляет исчерпывающий список имен и свойств общих ресурсов, но активные соединения здесь также не отображаются. В Windows Server 2003 раньше была утилита ОС, которая отображала серверы, общие ресурсы и подключения, но я еще не нашел ее на WS2008. Я использовал стороннюю утилиту под названием Hyena от Adkins Resource, которая, как мне кажется, все еще продается, и отлично справлялась с отображением всевозможной информации практически о каждом аспекте состояния сервера.