Windows Server – Как закрыть открытые файлы

Здесь я опишу, как закрыть открытые файлы и процессы сервера.

Каждый системный администратор в системах Microsoft Windows Server хотя бы один раз попадет в ситуацию что какой-то файл открыт на сервере, и необходимо проверить, какой процесс или пользователь открыл его.

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

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

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

Эта статья покажет вам способ решения таких проблем, как найти и закрыть открытые файлы/процессы. Операции могут быть применены к системам Microsoft Windows Server 2008, 2012, 2016 и Windows 10 для рабочих станций.

Существует множество методов работы для решения таких проблем, во-первых, один, который мы Опишем использование управления компьютером:

Просмотр открытых файлов в общей папке

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

Щелкните правой кнопкой мыши в меню “Пуск” и выберите Управление компьютером (или введите в меню “Пуск” поиск compmgmt. msc)

Процедура очень проста и в большинстве случаев работает без проблем.

Щелкните Общие папки ”, а затем в Открыть файлы .

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

Щелкнув правой кнопкой мыши по желаемому файлу, выберите опцию «Закрыть открытый файл», и он закроет его.

Процессы и сведения о файлах немного отличаются.

Использование диспетчера задач Windows

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

Его можно открыть с помощью комбинации клавиш ctrl, alt, del (и выбрать Диспетчер задач ) , или щелкнув правой кнопкой мыши на панели задач, затем выберите опцию открытия диспетчера задач.

На вкладке процессы вы можете увидеть все активные процессы и выровнять их по параметрам ЦП, памяти и т. д.

Если есть процесс, который вы хотите завершить, это можно сделать, просто щелкнув процесс правой кнопкой мыши и выбрав опцию «Завершить процесс».

Использование монитора ресурсов

Для каждого системного администратора Resource Monitor – это «инструмент», который позволяет контролировать и просматривать общие системные процессы и многое другое.

Resource Monitor можно открыть, набрав «монитор ресурсов» в поле поиска меню «Пуск».

Другой вариант – открыть диспетчер задач, нажать кнопку выполнить вкладка, а затем щелкните Открыть монитор ресурсов .

Когда открывается монитор ресурсов, он отображает вкладки, и одна из них, необходимая для этой операции, – Диск .

Показывает диск. активность, процессы, открытие файлов, PID, чтение и запись байтов в секунду и т. д.

Если в системе запущено много «живых» процессов, это может сбивать с толку, поэтому Resource Monitor предлагает « остановить мониторинг в реальном времени », которая остановит процессы на экране, выполняющиеся вверх и вниз, и предоставит вам обзор всех процессов до« момента остановки ».

Монитор ресурсов предлагает обзор открытых файлов пути и процессы в системе, и с этой информацией не проблема идентифицировать и закрывать файлы или процессы.

Подход с использованием командлетов Powershell

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

Их больше, чем one со сценариями PowerShell, и не рекомендуется или администраторы без опыта написания сценариев.

В этом примере мы покажем некоторые из возможных решений с использованием PowerShell.

Следующие примеры применяются к блоку сообщений сервера (SMB) и для систем, не поддерживающих SMB, следующие примеры покажут, как закрыть файл с помощью командного подхода NET.

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

  Close  -SmbOpenFile -FileId (id файла)   Подтвердить   Вы уверены, что хотите выполнить это действие?    Выполнение операции «Закрыть файл» на целевом объекте «(идентификатор файла)».    [Y] Да [A] Да для всех [N] Нет [L] Нет для всех [S] Приостановить [?] Справка (по умолчанию "Y"): N   

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

 Close-SmbOpenFile -SessionId (идентификатор сеанса) 

Эта команда не закрывает отдельный файл, она применяется ко всем открытым файлам с идентификатором определенного сеанса.

Другой вариант того же командлета применяется к расширению имени файла (в этот пример DOCX).

Команда проверит наличие всех открытых файлов с расширением DOCX на всех системных клиентах и ​​принудительно закроет их. Как упоминалось ранее, любые несохраненные данные в открытых файлах не будут сохранены.

 Get-SmbOpenFile |  Where-Object -Property ShareRelativePath -Match ".DOCX" |  Close-SmbOpenFile -Force 

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

Подход с использованием сценариев Powershell

С помощью сценариев PowerShell можно автоматизировать процесс закрытия открытых файлов и процессов..

 $ blok = {$ adsi = [adsi] "WinNT://./LanmanServer" $ resources = $ adsi.psbase.Invoke ("resources") |  Foreach-Object {New-Object PSObject -Property @ {ID = $ _. Gettype (). InvokeMember ("Name", "GetProperty", $ null, $ _, $ null) Path = $ _. Gettype (). InvokeMember  ("Путь", "GetProperty", $ null, $ _, $ null) OpenedBy = $ _. Gettype (). InvokeMember ("Пользователь", "GetProperty", $ null, $ _, $ null) LockCount = $ _  .gettype (). invokeMember ("LockCount", "GetProperty", $ null, $ _, $ null)}} $ resources |  Where-Object {$ _. Path -like '* smbfile *'} | ft -AutoSize $ resources |  Where-Object {$ _. Path -like '* smbfile *'} |  Foreach-Object {net files $ _. ID/close}} Invoke-Command -ComputerName pc1 -ScriptBlock $ blok 

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

Этот способ закрытия открытых файлов не рекомендуется администраторам без опыта написания сценариев PowerShell, и если вы не на 100% уверены, что справляетесь с задачей, не используйте этот способ.

Закройте файл на удаленном компьютере с помощью командной строки

Есть два других способа закрыть открытые файлы. Для их закрытия можно использовать либо Net File, либо PSFile (утилита Microsoft). Первая команда может быть испорчена удаленным использованием команды NET File с помощью Psexec.exe. Команда NET не поддерживает удаленные API.

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

Это можно сделать. со следующим синтаксисом

 C:> net file [id [/close]] 

В этом синтаксисе параметр ID – это идентификационный номер файла (мы хотим close), и, конечно же, параметр close представляет действие, которое мы хотим применить к идентификатору (файлу).

Лучшая практика использования команды NET file – перечислить открытые файлы, запустив команду Net File, которая перечисляет все открытые файлы и подписывает их числами 0, 1 и т. д.

Итак, когда файлы перечислены, команда, которая закроет открытые файлы (например),

 C:> net file 1/close 

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

Использование PsFile

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

команды похожи на команды net file, с той разницей, что они не обрезают длинные имена файлов и могут локально отображать файлы, открытые в удаленных системах.

Он использует NET API, задокументированный в инструментах платформы , и он становится доступным после загрузки пакета PsTools.

 psfile [\ RemoteComputer [-u Имя пользователя [-p Пароль]]] [[Id |  путь] [-c]] 

Использование PsFile «вызывает» удаленный компьютер с действительным именем пользователя и паролем, и со вставленным путем он закроет открытые файлы в удаленной системе

Для процессов, открытых в удаленной системе, существует аналогичная команда под названием PsKill, которая по тому же принципу «убивает» процессы.

Снять блокировку файла

В некоторых ситуациях проблему с закрытием файлов можно решить, сняв блокировку файла. Существует множество примеров, когда пользователи блокируют свои файлы и оставляют их открытыми (по какой-то причине наиболее распространенным типом заблокированных файлов являются файлы Excel).

Таким образом, все другие пользователи получают сообщение об ошибке типа : Excel заблокирован для редактирования другим пользователем, и у вас нет возможности закрыть или разблокировать его.

Как администратор, вы должны иметь повышенные права и правильную процедуру, которую можно легко исправить.

При нажатии клавиши Windows и R вы получите диалоговое окно запуска Windows.

В диалоговом окне запуска введите mmc (консоль управления Microsoft).

Перейдя к опции «Файл»> «Добавить/удалить оснастку», добавьте оснастку «Общие папки».

Если у вас уже есть операционная система, в которой есть проблема, выберите опцию «Локальный компьютер», в противном случае выберите вариант «Другой компьютер» и найдите желаемое имя компьютера.

Разверните Общие папки, затем выберите параметр «Открытые файлы».

Выберите заблокированный/открытый файл и закройте его, щелкнув правой кнопкой мыши и выбрав «Закрыть открытый файл».

Описанная процедура разблокирует и закройте открытый файл (аналогично первому примеру статьи), и пользователи смогут получить к нему доступ.

Использование сторонних приложений

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

Мы опишем некоторые из наиболее часто используемых для этой цели.

Process Explorer – бесплатная служебная программа от Windows Sysinternals, первоначально созданная Winternals, но приобретенная Microsoft. Его можно рассматривать как диспетчер задач Windows с расширенными функциями. Одной из многих функций является функция закрытия открытых файлов, и она настоятельно рекомендуется администраторам серверов и ИТ-специалистам.

Доступ к Sysinternals можно получить по следующей ссылке:

https://docs.microsoft.com/en-us/sysinternals/

OpenedFilesView – практически один исполняемый файл приложение отображает список всех открытых файлов в вашей системе. Для каждого открытого файла отображается дополнительная информация: значение дескриптора, доступ для чтения/записи/удаления, позиция файла, процесс, открывший файл, и многое другое.

Чтобы закрыть файл или убить процесс щелкните правой кнопкой мыши любой файл и выберите нужный вариант в контекстном меню.

Его можно скачать по следующей ссылке:

https: //www.nirsoft.net/utils/opened_files_view.html

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

Его можно скачать, перейдя по ссылке: http://lockhunter.com/

Long Path Tool – Long Path Tool – это условно-бесплатная программа, предоставляемая KrojamSoft, которая, как следует из названия, поможет вам исправить десяток проблем, с которыми вы столкнетесь, когда путь к файлу слишком длинный. Эти проблемы включают невозможность копировать, вырезать или удалять файлы, о которых идет речь, из-за слишком длинного пути. Имея множество функций, это могло бы быть “излишним” для этой цели, но это определенно качественное приложение для всех системных администраторов.

Его можно скачать по следующей ссылке: https://longpathtool.com/

Оцените статью
futurei.ru
Добавить комментарий