Посмотреть сеансы windows server 2008

Обновлено: 05.07.2024

На общедоступном сетевом ресурсе могут возникать ошибки доступа к файлам. Причиной этому является некорректно завершенная сессия пользователя, ошибки в работе ПО или просто кто-то открыл файл и не закрывает его. В такой ситуации файл оказывается заблокированным и не доступен для работы другим пользователям.

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

Рассмотрим два способа:

  1. Через оснастку "Управление компьютером" консоли управления Windows;
  2. При помощи утилиты командной строки - Openfiles.

1 способ. Получаем список открытых файлов с помощью оснастки "Управление компьютером".

Для получения списка открытых файлов на файловом сервере воспользуемся оснасткой консоли "Управление компьютером". Для запуска оснастки нажимаем сочетание клавиш "Win + R" и набираем название оснастки "compmgmt.msc".


В иерархии оснастки переходим /Управление компьютером/Служебные программы/Общие папки/Открытые файлы.

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


Закрываем файл. Чтобы закрыть сетевой файл открытый другим пользователем находим его в списке и в контекстном меню выбираем пункт "Закрыть открытый файл".


2 способ. Просмотр открытых файлов через командную строку утилитой Openfiles.

Утилита Openfiles дает нам более широкие возможности по поиску и закрытию заблокированных файлов.

C помощью openfiles можно просмотреть список открытых файлов на сервере удаленно. Для этого открываем командную и запускаем утилиту с параметрами.

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

В случае, когда необходимо указать логин и пароль пользователя для подключения к удаленному компьютеру, задаются параметры: /u - логин пользователя, /p - пароль пользователя.

По-умолчанию список файлов показан в формате таблицы, но есть параметры позволяющие изменить формат вывода:

/fo csv - выводит список в формате csv с разделителем запятая;
/fo list - показывает открытые файлы в формате списка;
/fo table - формат таблицы.

Определяем кто открыл сетевой файл.

Чтобы найти пользователя, который открыл и заблокировал нужный нам файл запускаем Openfiles с командой find.

в команде find указан параметр /i, чтобы поиск был регистронезависимым.

После того когда мы узнали имя пользо

Закрываем заблокированный сетевой файл.

Закрыть открытый файл можно по id сессии таким способом:

Закрыть все сетевые подключения к файлам и папкам, которые открыл пользователь BadUser:

Закрыть все файлы и директории открытые в режиме чтение/запись:

Закрыть все подключения к директории с именем "c:\myshare":

Чтобы сбросить все сессии на удаленном сервере FileServer, которые открыл пользователь domain\baduser, независимо от id сессии:

С чего начинается администрирование пользователей на сервере терминалов?

Конечно с просмотра «Активных» или «Отключенных» сессий пользователей.

Без этой картины администрирование сервера терминалов невозможно.

Помимо статьи, записал также, и подробное видео, о том как администрировать пользователей на сервере терминалов (Новичкам смотреть обязательно!)

Конечно, данная тема также подымается и на курсе: Администратор 1С!

И так, конечно мы должны во всех подробностях видеть, что у нас происходит на сервере терминалов!

Какие процессы запущены от имени тех или иных пользователей (в т.ч. процессы 1С) их идентификаторы, id сессий пользователей, это и многое другое помогает администратору всегда быть в курсе того что происходит на сервере и соответственно всем этим управлять, и вовремя реагировать на различные ситуации.

На разных версиях Windows server администраторы по-разному решают этот вопрос.

Кто-то смотрит пользователей используя простой «Диспетчер задач» на Windows server 2012 – 2016. Некоторые используют различные команды в CMD, ну а кое-кто использует PowerShell .

Но все администраторы хотят одного:

1. Чтоб быстро посмотреть всех пользователей кто работает на сервере.

2. Чтоб это было как можно информативней.

3. Чтоб бесплатно.

Поэтому поводу решил собрать все лучшие, простые и быстрые способы которые (на мое мнение) стоит использовать.

Уверен, что многим начинающим администраторам эти способы помогут в администрировании сервера терминалов.

И так способ первый и самый простой (На Windows server 2012 R2)

1. Диспетчер задач.

Dispetcher_Zadach_Windows_server_2012_r2

Правый клик мышкой на панели «Пользователь» и в появившимся контекстном меню

ставим птичку напротив «Сеанс» а также стоит поставить и напротив «Имя клиента».

Dispetcher_Zadach_Windows_server_2012_r222

Так мы будем знать, что этот пользователь работает у нас на сервере через RDP.

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

2. quser

Следующий метод это использование команды quser в CMD или PowerShell.

Quser – это аналог QUERY USER (Такое сокращение позволяет выполнять команду быстрее)

Здесь все просто запускаем CMD или PowerShell и пишем команду quser

PowerShell_quser

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

Метод очень простой быстрый и достаточно информативный.

Если мы хотим посмотреть только какого-то конкретного пользователя, тогда можно написать например так:

Term01 – это логин пользователя.

PowerShell_quser2

Большинство системных администраторов отдают предпочтение именно этому способу.

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

И для этого достаточно ввести команду с параметром SERVER

Вместо IP можно указать (хост) имя сервера терминалов.

PowerShell_quser3

Формат командной строки:

QUSER [; пользователь ; | ; имя сеанса ; | ; ID сеанса ;] [/SERVER:; сервер ;]

Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С

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

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

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

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

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

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

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

Полезные команды cmd, powershell, администрирование, фичи и решения проблем на win/winserver

Рассмотрим такие команды как:

  • query
  • qwinsta (query session)
  • quser (query user)
  • mstsc (RDS shadow)
  • msg
  • change logon
  • shutdown

query

process | session | termserver | user

Более подробно здесь рассмотрятся команды:

а точнее их более короткие аналоги: qwinsta и quser

qwinsta

С помощью этой команды можно узнать, активен ли сеанс пользователя и ID сеанса


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

Ключ /server позволит указать другой сервер:

Показать информацию о сеансе конкретного пользователя:

Также можно узнать информацию о сеансе пользователя на другом сервере:

Остальные параметры и подробная справка по команде:

quser


В остальном, все ключи у возможности, такие же как и у команды qwinsta:

Ключ /server позволит указать другой сервер:

Показать информацию о конкретном пользователе:

Показать информацию о конкретном пользователе на другом сервере:

Справка и все функции:

RDS shadow (mstsc)

Для того, чтобы узнать ID сеанса, нужно воспользоваться одной из вышеупомянутых команд: qwinsta или quser

Теневое подключение без возможности управления сеансом (только просмотр):

Теневое подключение для управления другим сеансом:

ключ /v:servername позволит подключиться к сеансам другого сервера:

ID сеанса можно узнать с помощью уже рассмотренных команд qwinsta или quser


change logon

Полностью отключить вход в терминальные сессии можно командой:

Все возможные ключи смотрим в справке:

shutdown


Так, например, команда shutdown со следующими параметрами:


Удаленно перезагрузить или выключить компьютер или группу компьютеров через GUI можно командой

Допустим, вы администрируете сервер терминалов. (Кстати, согласно новой терминологии Майкрософт, сервер терминалов теперь называется сервером удалённых рабочих столов). Во время обслуживания сервера RDP администратору приходится его перезагружать. Но как узнать, кто из подключённых пользователей работает, а чей сеанс простаивает?

Для просмотра информации о сеансах и, в частности, о времени простоя терминальной сессии пользователя мы воспользуемся оснасткой tsadmin.msc .

Нажимаем WIN+R для запуска окна Выполнить и вводим в поле tsadmin.msc :

tsadmin-001

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

В окне мы видим список сеансов удалённого рабочего стола. Поле Состояние показывает, чей сеанс активен, а чей отключён :

tsadmin-002

Поле LogOnTime показывает время, когда соответствующий пользователь подключился к серверу:

tsadmin-002-2

Время простоя

По информации из поля Idle Time вы можете узнать, кто работает, а чей сеанс бездействует. Так, значение 18 напротив пользователя User1 означает, что сеанс пользователя простаивает в течение 18 минут :

tsadmin-002-1

Также, можно просмотреть процессы пользователей удалённого рабочего стола:

Читайте также: