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

18

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

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

Марк Арнотт
источник

Ответы:

24

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

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

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

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

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

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

Wesley
источник
Предоставленная информация недостаточна для сеансов или акций. Он не показывает конкретно, какие пользователи подключены к какой акции. Я часто вижу несколько подключений к общему сетевому ресурсу, но если у пользователя нет открытого файла, я не могу сказать, кто подключен. Я могу только сказать, что есть определенное количество открытых соединений. Не у кого открыта связь. Так что Рик просто прав в этом случае.
Я вижу конкретную ситуацию, которая может существовать, когда у пользователя есть открытый сеанс, но нет открытого файла, поэтому вы не уверены, к какому конкретному общему ресурсу у него открыт призрачный сеанс. В этом сценарии я не знаю, как связать сеансы из 0 файлов с общим ресурсом, к которому они подключены.
Уэсли
Или из командной строки: NET SHARE <SHARENAME>
Саймон Кэтлин
@SimonCatlin Только что протестировал это на компьютере с Server 2008. У меня был один пользователь без открытых файлов, но он был указан как открытый сеанс. Мне пришлось запросить каждый из net share sharenameобщих ресурсов на сервере, но в итоге я нашел общий ресурс, к которому был подключен сеанс. Я не знаю, можно ли отменить запрос и начать с интересующего вас пользователя, а затем отследить его до общего ресурса, к которому он подключен. Может потребоваться какой-нибудь пользовательский PowerShelling.
Уэсли
4

Это очень старый вопрос, но принятый ответ пропустил один из лучших способов найти информацию. Графический интерфейс может показать, что есть «подключенные клиенты», но не отображать эти подключения в «открытых файлах». В этом случае требуется использовать 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
Брэди Уитбек
источник
Слава богу, у меня было два ресурса с разными именами на одном и том же локальном пути, и это было единственное, что позволило мне сузить пользователей и ПК, используя один из двух ресурсов, от которого я хотел избавиться :)
gregg
0

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

гость
источник
-3

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

Рик Феррис
источник
2
Ты просто неправ. Я только что запустил 2008 R2 VM. Когда вы открываете «Управление компьютером» (compmgmt.msc)и все, что описывает Уэсли, прямо здесь, точно так же, как в 2003 году, включая открытые файлы и активные сеансы. Смотрите этот скриншот, если вы мне не верите.
MDMarra
@Rick Ты прав, мой ответ был не совсем верным. Два года спустя, и под влиянием другого члена, который вызвал меня, я переделал свой ответ, чтобы исправить это. Спасибо, что держали меня в курсе. =)
Уэсли