Windows server 2008 список открытых файлов

Администратор файлового сервера Windows может вывести список открытых файлов в общей сетевой папке и принудительно закрыть заблокированные файлы, открытые пользователями в монопольном режиме. Если пользователь открыт файл в общей сетевой SMB папке на сервере на чтение и запись и забыл его закрыть (ушел домой, в отпуск), другие пользователи не смогут внести изменения в файл.

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

Содержание:

  • Вывод списка открытых файлов в сетевой папке Windows
  • Кто открыл файл в общей сетевой папке на сервере Windows?
  • Принудительно закрыть открытый файл на сервере Windows
  • Как удаленно закрыть открытые по сети файлы с помощью PowerShell?

Вывод списка открытых файлов в сетевой папке Windows

Список открытых по сети файлов в Windows можно получить с помощью графической консоли Computer Management (Управление компьютером).

  1. Откройте консоль
    compmgmt.msc
    и перейдите в раздел System Tools -> Shared Folders -> Open files (Служебные программы -> Общие папки -> Открыты файлы);
  2. В правой части окна отображается список открытых файлов. Здесь указаны локальный путь к файлу, имя учетной записи пользователя, количество блокировок и режим, в котором открыт файл (Read или Write+Read).
    Открыты файлы на файловом сервере Windows

Также вы можете вывести список открытых на сервере файлов из командной строки:

Openfiles /Query /fo csv

Команда возвращает номер сессии, имя пользователя, количество блокировок и полный путь к файлу.

Openfiles /Query

Cо списком открытых файлов на сервере удобнее работать с помощью PowerShell командлета Get-SmbOpenFile:

Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionID

В выводе команда содержится имя пользователя, имя (IP адрес) удаленного компьютера, с которого открыт файл), имя файла и ID файловой сессии.

poweshell вывод список пользователей, которые открыли файлы в сетевой папке windows

Кто открыл файл в общей сетевой папке на сервере Windows?

Чтобы удаленно определить пользователя, который открыл (заблокировал) файл cons.adm в сетевой папке на сервере mskfs01, выполните команду:

Openfiles /Query /s mskfs01 /fo csv | find /i "cons.adm"

Ключ /i используется, чтобы выполнялся поиск без учета регистра в имени файла.

Можно указать только часть имени файла. Например, чтобы узнать, кто открыл xlsx файл, в имени которого есть строка farm, воспользуйтесь таким конвейером:

Openfiles /Query /s mskfs01 /fo csv | find /i "farm"| find /i "xlsx"

С помощью PowerShell также можно получить информацию о пользователе, который открыл файл. Например:

Вывести все открытые по сети exe файлы:

Get-SmbOpenFile | Where-Object {$_.Path -Like "*.exe*"}

Найти открытые файлы по части имени:

Get-SmbOpenFile | Where-Object {$_.Path -Like "*защита*"}

Вывести все файлы, открытые определенным пользователем:

Get-SMBOpenFile –ClientUserName "corp\aaivanov"  |select ClientComputerName,Path

Найти файлы, которые открыли с указанного компьютера:

Get-SMBOpenFile –ClientComputerName 192.168.12.170| select ClientUserName,Path

Принудительно закрыть открытый файл на сервере Windows

Можно закрыть открытый файл через консоль Computer Management. Найдите файл в списке секции Open Files, выберите в контекстном меню пункт “Close Open File”.

Закрыть открытые файлы в сетевой папке

Если на сервере по сети открыты сотни файлов, то найти нужный файл в графической консоли довольно сложно. Лучше использовать инструменты командной строки.

Закрыть файл можно, указав ID его SMB сессии. Получить ID сессии файла:

Openfiles /Query /fo csv | find /i "report2023.xlsx"

команда openfiles найти кем открыт файл

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

Openfiles /Disconnect /ID 3489847304

openfiles disconnect - закрыть открытый файл на сервере

SUCCESS: The connection to the open file "D:\path\REPORT2023.XLSX" has been terminated.

Вы разблокировали открытый файл и теперь его могут открыть другие пользователи.

Можно принудительно сбросить все сессии и освободить все файлы, открытые определённым пользователем:
openfiles /disconnect /s mskfs01 /u corp\aivanova /id *

Можно закрыть открытый файл по ID сессии с помощью PowerShell командлета Close-SmbOpenFile.

Close-SmbOpenFile - SessionId 3489847304

Найти и закрыть открытый файл одной командой:

Get-SmbOpenFile | where {$_.Path –like "*report2023.xlsx"} | Close-SmbOpenFile

powershell закрыть открытый файл на сервере

Для подтверждения сброса сессии и освобождения отрытого файла нажмите
Y
->
Enter
.

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

С помощью Out-GridView можно сделать простую графическую форму для поиска и закрытия файлов. Следующий скрипт выведет список открытых файлов. Администратору нужно с помощью фильтров в таблице Out-GridView найти и выделить нужные файлы, а затем нажать ОК. В результате выбранные файлы будут принудительно закрыты.

Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionID| Out-GridView -PassThru –title “Select Open Files”|Close-SmbOpenFile -Confirm:$false -Verbose

Get-SmbOpenFile вместе с out-gridview - powershell скрипт с графическим интерефейсом по выбору и принудительному закрыттию заблокированных (открытых) файлов в windows

Принудительное закрытие открытого файла на файловом сервере, вызывает потерю несохраненных пользователем данных. Поэтому команды openfiles /disconnect и
Close-SMBOpenFile
нужно использовать с осторожностью.

Как удаленно закрыть открытые по сети файлы с помощью PowerShell?

Командлеты Get-SMBOpenFile и Close-SmbOpenFile можно использовать чтобы удаленно найти и закрыть открытые файлы. Сначала нужно подключиться к удаленному SMB серверу Windows через CIM сессию:

$sessn = New-CIMSession –Computername mskfs01

Также вы можете подключаться к удаленному серверам для запуска команд через командлеты PSRemoting: Enter-PSSession или Invoke-Command .

Следующая команда найдет сессию для открытого файла
*pubs.docx
и завершит ее.

Get-SMBOpenFile -CIMSession $sessn | where {$_.Path –like "*pubs.docx"} | Close-SMBOpenFile -CIMSession $sessn

Подтвердите закрытие файла, нажав
Y
. В результате вы разблокировали открытый файл. Теперь его могут открыть другие пользователи.

Get-SMBOpenFile - удаленное управление открытых файлов

С помощью PowerShell вы можете закрыть и осведомить на файловом сервере все файлы, открытые определенным пользователем (пользователь ушел домой и не освободил файлы). Например, чтобы сбросить все файловые сессии для пользователя ipivanov, выполните:

Get-SMBOpenFile -CIMSession $sessn | where {$_.ClientUserName –like "*ipivanov*"}|Close-SMBOpenFile -CIMSession $sessn

Can’t take ownership of folder as DomainAdmin – Access denied.

Once in a while you as an admin it’s possible that you come across a folder on the fileserver where you need to set permissions for other users, but you as DomainAdmin have no permssions to. When you want to set the permissions you get’Access denied’. Most of the time there is a simple fix, […]

DeploymentSettings or RDS arguments empty for (new) remote desktop collection

I needed to create a additional collection on the connection broker for a test environment. When the pool was created on the connection broker, when download the .rdp file from the RDWeb the .rdp file would be missing a lot of details and the computername field also would be empty. I’ve tried a lot of […]

Before rebooting a server, you should see who has open files so you won’t corrupt data or knock a user offline.

Server 2008 has moved where you can view these.

To see the open files, right click on computer.   Select Manage.  Click Roles – File Services – Share and storage management.  Choose Action and then manage open files.

About TCAT Shelbyville IT Department

The Tennessee College of Applied Technology — is one of 46 institutions in the Tennessee Board of Regents System, the seventh largest system of higher education in the nation. This system comprises six universities, fourteen community colleges, and twenty-six Applied Technology Colleges.

    msm.ru

    Нравится ресурс?

    Помоги проекту!


    Правила раздела Windows

    1. Указывайте версию Вашей ОС.
    2. Запрещается размещать запросы и ссылки на кряки, серийники и т.п., а также вопросы нарушения лицензии ПО и его взлома.
    3. Не разрешается давать советы из разряда «Поставь Linux».
    4. Переустановка ОС — крайнее и безотказное лекарство, которое знают все. В таких советах никто не нуждается.
    5. При публикации скриптов пользоваться тегами code. Тип подсветки кода выбирать строго в соответствии с языком публикуемого кода.
    6. Прежде чем задать вопрос, обязательно загляните в FAQ и следуйте написанным рекомендациям для устранения проблемы. И если не помогло, а поиск по разделу не дал результатов — только тогда задавайте вопрос на форуме.
    7. Вопросы, связанные с проблемами ПО, задавайте в разделе Программное обеспечение


    Как посмотреть список открытых файлов по сети

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,

      Как сделать сабж в Win 2008R2.


      AntonGorod



      Сообщ.
      #2

      ,

        Цитата ^D^ima @

        Как посмотреть список открытых файлов по сети

        список открытых файлов, простите где? на файл сервере (роль такая отдельная есть)?


        ^D^ima



        Сообщ.
        #3

        ,

          Ну да. На сервере открыли файлы из расшаренной папки по SMB. Как с этого сервере посмотреть список открытых файлов. И ещё список открытых файлов опубликованных приложений(WebApp).

          На 2008 нашел только это:

          Но там показаны открытые файлы терминальных пользователей. Файлов, открытых по сети, или файлов, открытых опубликованными приложениями нет.

          Или таких встроенных средств нет?

          Сообщение отредактировано: ^D^ima


          AntonGorod



          Сообщ.
          #4

          ,

            openfiles /local on
            reboot
            openfiles /query

            Добавлено

            Цитата ^D^ima @

            Но там показаны открытые файлы терминальных пользователей.

            правильно говорить: файлы открытые в виртуальных окружениях пользователей.

            Ты эта, посмотри, я команду поменял. Очепятался изначально не много, контрл-в подвел.

            Сообщение отредактировано: AntonGorod


            nash



            Сообщ.
            #5

            ,

              net file

              и

              net file id

              не поможет?


              Демо



              Сообщ.
              #6

              ,

                Также есть утилита в помощь — PSFILE от Руссиновича.


                ^D^ima



                Сообщ.
                #7

                ,

                  Демо
                  net file и PSFILE и мой скриншет показывают 1 и то-же, стало быть это открытые по сети файлы, а не локальные.
                  openfiles ещё не проверил)


                  nash



                  Сообщ.
                  #8

                  ,

                    Цитата ^D^ima @

                    Как сделать сабж в Win 2008R2.

                    Цитата ^D^ima @

                    Файлов, открытых по сети, или файлов, открытых опубликованными приложениями нет.

                    Цитата ^D^ima @

                    стало быть это открытые по сети файлы, а не локальные

                    Витиевато у вас всё как-то, товарищ.


                    ^D^ima



                    Сообщ.
                    #9

                    ,

                      Я думал через «Manage Open Files…» показываются открытые локально файлы, но как оказывается это открытые файлы по сети.


                      UncleBob



                      Сообщ.
                      #10

                      ,

                        Цитата ^D^ima @

                        Я думал через «Manage Open Files…» показываются открытые локально файлы, но как оказывается это открытые файлы по сети.

                        Цитата ^D^ima @

                        Как посмотреть список открытых файлов по сети

                        ты бы уже определился

                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                        0 пользователей:

                        • Предыдущая тема
                        • Windows
                        • Следующая тема

                        [ Script execution time: 0,0272 ]   [ 15 queries used ]   [ Generated: 14.05.25, 05:04 GMT ]  

                        Чтобы увидеть открытые файлы , щелкните правой кнопкой мыши на компьютере. Выберите Управление. Нажмите Роли — Файл Услуги — Управление общим доступом и хранением. Выберите действие, а затем управляйте открытые файлы.

                        Соответственно, как мне увидеть открытые файлы в Windows Server?

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

                        1. В административных инструментах откройте оснастку «Управление компьютером».
                        2. На левой панели разверните Системные инструменты → Общие папки → Открыть файлы.
                        3. Чтобы закрыть открытый файл, щелкните его правой кнопкой мыши на правой панели и выберите «Закрыть открытый файл».

                        как я могу узнать, у кого открыт файл? Просматривать к файл вы хотите (даже через общий сетевой ресурс). Нажмите Alt + Enter, чтобы Посмотреть в файл характеристики. Нажмите Открытым чтобы определить, кто имеет в файл открыт . Вы также можете закрыть соединения для файл (индивидуальные или все подключения).

                        Кроме того, как закрыть открытые файлы в Windows Server 2008?

                        разрешение

                        1. Выберите «Пуск», «Администрирование», «Управление общим доступом и хранилищем».
                        2. Выберите Управление открытыми файлами.
                        3. Выберите все файлы, относящиеся к Sage 50 — U. S. Edition, и нажмите «Закрыть выбранное».

                        Как узнать, кто вошел в систему Windows 2008 Server?

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

                        Понравилась статья? Поделить с друзьями:
                        0 0 голоса
                        Рейтинг статьи
                        Подписаться
                        Уведомить о
                        guest

                        0 комментариев
                        Старые
                        Новые Популярные
                        Межтекстовые Отзывы
                        Посмотреть все комментарии
                      • Как обновить winrar до последней версии на windows 10
                      • Недостаточно ресурсов памяти для завершения операции windows 10
                      • Количество пользователей windows в мире
                      • Можно ли загрузить windows с внешнего жесткого диска
                      • Автограф gsm драйвер windows 10