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

Обновлено: 02.07.2024

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

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

Запуск средства проверки системных файлов (SFC.exe)

выполнив указанные ниже действия.

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

Пользователям Windows 10, Windows 8.1 или Windows 8 перед запуском средства проверки системных файлов нужно запустить систему обслуживания образов развертывания и управления ими (DISM). (Если на вашем компьютере установлена система Windows 7 или Windows Vista, перейдите сразу к шагу 3.)

Введите следующую команду и нажмите клавишу ВВОД. Выполнение команды может занять несколько минут.

DISM.exe /Online /Cleanup-image /Restorehealth

Важно! При запуске этой команды DISM обращается к Центру обновления Windows, чтобы получить файлы для устранения повреждений. Но если поврежден клиент Центра обновления Windows, используйте работающий экземпляр Windows в качестве источника восстановления либо параллельную папку Windows из сетевого расположения или со съемного носителя, например DVD-диска Windows, в качестве источника файлов. Для этого введите в командной строке такую команду:

DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:C:\RepairSource\Windows /LimitAccess

Примечание. Вместо заполнителя C:\RepairSource\Windows укажите расположение вашего источника восстановления. Дополнительные сведения об использовании средства DISM для восстановления Windows см. в статье Восстановление образа Windows.

Введите в командной строке приведенную ниже команду и нажмите клавишу ВВОД:

Команда sfc /scannow проверит все защищенные системные файлы и заменит поврежденные файлы их кэшированной копией, расположенной в сжатой папке по адресу %WinDir%\System32\dllcache.
Заполнитель %WinDir% представляет собой папку операционной системы Windows. Например, C:\Windows.

Примечание. Не закрывайте это окно командной строки, пока проверка не завершится на 100 %. Результаты проверки будут показаны после завершения данного процесса.

Защита ресурсов Windows не обнаружила нарушений целостности.


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

Защита ресурсов Windows не может выполнить запрошенную операцию.


Для устранения этой проблемы выполните сканирование с помощью средства проверки системных файлов в безопасном режиме, убедитесь, что папки PendingDeletes и PendingRenames находятся в папке %WinDir%\WinSxS\Temp.

Защита ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила. Сведения см. в журнале CBS.Log %WinDir%\Logs\CBS\CBS.log.


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

Защита ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них. Сведения см. в журнале CBS.Log %WinDir%\Logs\CBS\CBS.log.

Запрос команды - Запуск от имени администратора

Для этого нажмите кнопку Пуск, введите запрос Командная строка или cmd в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, а затем выберите команду Запуск от имени администратора. При получении запроса на ввод пароля администратора или подтверждения введите пароль или нажмите кнопку Разрешить.

Дополнительная информация

Просмотр подробных сведений о процессе работы средства проверки системных файлов.

Чтобы ознакомиться с подробными сведениями, включенными в файл CBS.Log, вы можете скопировать сведения в файл Sfcdetails.txt с помощью команды Findstr, а затем просмотреть их в этом файле. Для этого выполните указанные ниже действия.

Откройте командную строку с повышенными привилегиями, как это описано на шаге 1.

Введите в командной строке приведенную ниже команду и нажмите клавишу ВВОД:

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

Откройте файл Sfcdetails.txt на рабочем столе.

В файле Sfcdetails.txt используется следующий формат:


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

После определения, какой системный файл поврежден и не может быть восстановлен, с помощью подробных сведений в файле Sfcdetails.txt, выясните расположение поврежденного файла, затем вручную замените поврежденный файл его гарантировано работоспособной копией. Для этого выполните указанные ниже действия.

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

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

Командная строка администратора права - команда успешно выполнена

takeown /f Путь_и_имя_файла Примечание. Заполнитель Путь_и_имя_файла представляет собой путь и имя файла для поврежденного файла. Например, введите takeown /f C:\windows\system32\jscript.dll.

Предоставьте администраторам полный доступ к поврежденному системному файлу. Для этого скопируйте и вставьте (или введите) приведенную ниже команду и нажмите клавишу ВВОД:

Замените поврежденный системный файл гарантировано работоспособной копией файла. Для этого скопируйте и вставьте (или введите) приведенную ниже команду и нажмите клавишу ВВОД:

Copy Исходный_файл Расположение Примечание. Заполнитель Исходный_файл представляет собой путь и имя гарантировано работоспособной копии файла на вашем компьютере, а заполнитель Расположение представляет собой путь и имя поврежденного файла. Например, введите copy E:\temp\jscript.dll C:\windows\system32\jscript.dll.

Если описанные выше действия не помогли, возможно, потребуется переустановить Windows. Дополнительные сведения см . в разделе Варианты восстановления Windows10.

Конфигурация компьютера
Процессор: Intel Xeon 5130 @ 2.00 GHz (4x)
Материнская плата: Intel Server Board S5000VSA
Память: DDR2 1Gb PC2-6400 800MHz DIMM Kingston HyperX (4x)
HDD: RAID 2 - 2x2 (Seagate Barracuda SATA 3Gb/s, 400 Гб)
Монитор: BENQ G2320HDB / 23" / 5ms
ОС: Window Server 2003 R2 x86 ; Ubuntu Server 10.04 ; Ubuntu 10.04 LTS
Прочее: 15-inc MacBook Pro ; Intel Core i7 @ 2.66GHz / 4GB / NVIDIA GeForce GT 330M

Хочу понять как в Windows процессы используют файлы, и как можно получить подобного рода сведения.
т.е что необходимо знать о файле или процессе, или и о том и о другом, чтобы получить связку "процесс использует файл"
"ресурсы процесса" - что это, с чем его едят
"дескрипторы" аналогично.
почему 7-zip пишет "Заблокирован" а Unlocker или Handle.exe ничего не чуют на одном и том-же файле.
ID/PID/Handle, LDT, GDT, я запутался. WMI - вообще привело к преждевременной седине, добрался аш, до CIM_DataFile.InUseCount на который было столько надежд - и ничего опять не выходит.

Дайте пинка в нужном направлении.
На любом языке пример кода.

Я прям не верю, что никак нельзя вооружившись определенными привелегиями - спросить систему "Используется ли вот этот файл, и если да, то кем?"

-------
Одно дело искать сиюминутное решение, другое - искать знания.
вот и думай - что ты ищешь.

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Конфигурация компьютера
Процессор: Intel Xeon 5130 @ 2.00 GHz (4x)
Материнская плата: Intel Server Board S5000VSA
Память: DDR2 1Gb PC2-6400 800MHz DIMM Kingston HyperX (4x)
HDD: RAID 2 - 2x2 (Seagate Barracuda SATA 3Gb/s, 400 Гб)
Монитор: BENQ G2320HDB / 23" / 5ms
ОС: Window Server 2003 R2 x86 ; Ubuntu Server 10.04 ; Ubuntu 10.04 LTS
Прочее: 15-inc MacBook Pro ; Intel Core i7 @ 2.66GHz / 4GB / NVIDIA GeForce GT 330M

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

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

-------
Одно дело искать сиюминутное решение, другое - искать знания.
вот и думай - что ты ищешь.

Конфигурация компьютера
Процессор: Intel Xeon 5130 @ 2.00 GHz (4x)
Материнская плата: Intel Server Board S5000VSA
Память: DDR2 1Gb PC2-6400 800MHz DIMM Kingston HyperX (4x)
HDD: RAID 2 - 2x2 (Seagate Barracuda SATA 3Gb/s, 400 Гб)
Монитор: BENQ G2320HDB / 23" / 5ms
ОС: Window Server 2003 R2 x86 ; Ubuntu Server 10.04 ; Ubuntu 10.04 LTS
Прочее: 15-inc MacBook Pro ; Intel Core i7 @ 2.66GHz / 4GB / NVIDIA GeForce GT 330M

-------
Одно дело искать сиюминутное решение, другое - искать знания.
вот и думай - что ты ищешь.

Конфигурация компьютера
Процессор: Intel Xeon 5130 @ 2.00 GHz (4x)
Материнская плата: Intel Server Board S5000VSA
Память: DDR2 1Gb PC2-6400 800MHz DIMM Kingston HyperX (4x)
HDD: RAID 2 - 2x2 (Seagate Barracuda SATA 3Gb/s, 400 Гб)
Монитор: BENQ G2320HDB / 23" / 5ms
ОС: Window Server 2003 R2 x86 ; Ubuntu Server 10.04 ; Ubuntu 10.04 LTS
Прочее: 15-inc MacBook Pro ; Intel Core i7 @ 2.66GHz / 4GB / NVIDIA GeForce GT 330M

А ларчик-то очень просто открывался.
Вопрос поднимался на нескольких форумах посвященных программированию и администрированию,
и никто ни где так и не дал правильного ответа на вопрос "Как определить Используется ли вот этот файл, и если да, то кем?"
а вот вам и ответ.
и не надо блукать вокруг Windows API, копировать Handles, и иными способами извращаться.
так как Microsoft предусмотрительно начиная с версий NT, в составе системных утилит предоставляет нам openfiles.exe
которая банально уже из самого названия понятно, предназначена для предоставления информации об OPENFILES


Данная утилита определяет привилегии запустившего ее пользователя, достаточные или нет для получения такой информации.
и по запросу с аргументом \Query (по умолчанию, можно аргумент опустить) выдает нам все что мы так жаждали увидеть.
В изначальном состоянии данная утилита находится в режиме отображения информации исключительно об открытых по сети файлов.
но изменив значения флага \Local отвечающего за "построение списка объектов" .


. и изменить его используя аргумент /Local on
параметры вступят в силу после перезагрузки системы.

вуаля! . обращаемся к openfiles.exe.. и с ее StandartOutput
снимаем таблицу следующего содержания


-------
Одно дело искать сиюминутное решение, другое - искать знания.
вот и думай - что ты ищешь.

Читайте о том, какие файлы являются системными, какие они имеют названия и расширения, в каких папках расположены и как их найти. Рассмотрим, что делать в случае повреждения системных файлов и как их восстановить используя средство проверки «SFC».

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

what-does-windows-system-file-mean.jpg

Какие файлы считаются системными

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

В полной мере всем вышеперечисленным требованиям отвечает операционная система «Windows» от корпорации «Microsoft». Она имеет дружественный пользовательский настраиваемый интерфейс, благодаря которому каждый пользователь сможет настроить операционную систему под свои конкретные требования. Также высокая производительность системы отлично сочетается с интуитивно понятными инструментами управления компьютером, и совмещает в себе легкость и удобство использования с высокой работоспособностью.

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

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

Говоря техническим языком, системные файлы «Windows» – это любые файлы с включенным скрытым системным атрибутом. Их диапазон варьируется от аппаратных драйверов, конфигурационных файлов, библиотек динамической компоновки «DLL» до различных наборов файлов, составляющих реестр операционной системы «Windows».

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

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

Где хранятся системные файлы

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

По правде говоря, системные файлы могут храниться во многих местах на вашем персональном компьютере. Например, корневая папка вашего системного диска («C:\») содержит системные файлы, такие как файл вашей страницы («pagefile.sys») и файл гибернации («hiberfil.sys»).

Большинство системных файлов операционной системы «Windows» хранятся в папке «C:\Windows», особенно в таких подпапках, как «/System32» и «/SysWOW64». Но вы также найдете системные файлы, которые расположены в папке пользователя (например, папка «AppData») и папках приложений (например, папка «ProgramData» или папка «Program Files»).

Как отобразить скрытые системные файлы в «Windows»

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

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

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

this-pc.jpg

view.jpg

Теперь в проводнике файлов «Windows» вы сможете увидеть скрытые системные файлы. Обратите внимание, что значки для системных файлов выглядят более тусклыми, чем значки для несистемных файлов. Это сделано намеренно, с целью обозначить их важность.

this-pc2.jpg

Что произойдет, если системные файлы будут повреждены

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

Если вы подозреваете, что некоторые системные файлы повреждены или отсутствуют, то в операционной системе существует несколько встроенных системных инструментов, которые могут вам помочь. Средство проверки системных файлов («SFC») сканирует системные файлы «Windows» и может заменить любые отсутствующие или поврежденные файлы, обнаруженные в результате проверки. Команда обслуживания и управления образами «Windows» («DISM») может использоваться для устранения основных проблем, которые мешают средству проверки «SFC» выполнять свою работу. Используя их вместе, вы будете иметь возможность успешно восстанавливать отсутствующие или поврежденные системные файлы.

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

Для запуска средства «SFC» вам необходимо воспользоваться приложением «Командная строка», запущенного с правами администратора. Открыть приложение можно различными способами. Мы опишем несколько из них, и вы сможете воспользоваться любым, понравившимся вам, способом.

Откройте проводник файлов «Windows» «Этот компьютер», затем перейдите в системную папку «C:/». Откройте вложенную папку «Windows» и перейдите в подпапку «System32». Опустите бегунок полосы прокрутки вниз и найдите файл «cmd.exe». Щелкните по нему правой кнопкой мыши и откройте всплывающее контекстное меню. В списке возможных действий выберите раздел «Запуск от имени администратора».

run-as-administrator.jpg

Введите в окне командной строки исполняемую команду «sfc /scannow» для запуска средства проверки системных файлов операционной системы «Windows».

cmd.jpg

Результаты сканирования системы с полным указанием выполненных действий будут отражены в окне приложения.

cmd2.jpg

Как становиться ясно из представленной статьи, системные файлы играют главную роль в обеспечении работоспособности всей операционной системы, и выполнять любые действия с ними следует с особой осторожностью. Ведь для возврата системы в рабочее состояние вам придётся применить особые средства восстановления системы без стопроцентной гарантии возврата полной работоспособности операционной системы «Windows».

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

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

Любые предложения о том, как найти виновника?

Вы могли бы подумать, что после всего этого времени ребята из Windows дадут нам способ сделать это легко из Проводника. Интересно, почему этого не произошло? Я считаю, что Explorer очень часто является проблемным процессом, который удерживает файл без видимой причины. Я знаю, что это вам мало поможет, но я вспомнил, что это была запланированная функция следующего выпуска Windows после Vista и 2008 Server. или, может быть, это вещь WinFS. не уверен, где я это прочитал . см. мой ответ о суперпользователе здесь , в итоге OpenedFilesView все еще работает в 2019 году

Я имел успех с Sysinternals Process Explorer . С помощью этого вы можете искать, чтобы найти, какой процесс (ы) имеют открытый файл, и вы можете использовать его, чтобы закрыть дескриптор (ы), если хотите. Конечно, безопаснее закрыть весь процесс. Проявляйте осторожность и рассудительность.

Чтобы найти конкретный файл, используйте пункт меню « Find->Find Handle or DLL. Введите» в части пути к файлу. Список процессов появится ниже.

Если вы предпочитаете командную строку, в комплект Sysinternals входит инструмент Handle командной строки , в котором перечислены открытые дескрипторы. Несколько примеров о том, как его использовать:

  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\ - найти все файлы, открытые с диска E:
  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question
Вы можете закрыть ручку, но имейте в виду, что вы вытаскиваете коврик из-под приложения, результаты будут в лучшем случае непредсказуемыми. @ Уолден: Абсолютно. YMMV. С WinXP у меня много раз было, чтобы Проводник открывал ручку без видимой причины и отказывался закрывать ее. Когда это происходит с файлом, который необходимо удалить, вы можете выбрать принудительное закрытие дескриптора или перезагрузку. До сих пор, проделав это десятки раз, я не пострадал. Как с любым продвинутым инструментом, используйте с осторожностью и суждением. Для исследователя, между прочим, удерживайте Ctrl-Shift и щелкните правой кнопкой мыши пустую область меню «Пуск», и вы получите «Выход из проводника» - ps, не совсем ответ Джеффа. Это не помогает для не исполнительного файла или текстового файла. Мне нужно знать, кто пишет в файл журнала. Любая идея?

Для этого вы можете использовать Resource Monitor, который встроен в Windows 7, 8 и 10.

  1. Откройте Resource Monitor , который можно найти
    • Выполнив поиск Resource Monitor или resmon.exe в меню «Пуск», или
    • Как кнопка на вкладке « Производительность » в вашем диспетчере задач
  2. Перейти на вкладку CPU
  3. Используйте поле поиска в разделе « Связанные дескрипторы »
    • Смотрите синюю стрелку на снимке экрана ниже

Найдя дескриптор, вы можете определить процесс, посмотрев на столбец «Изображение» и / или «PID».

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

Скриншот монитора ресурсов

Стоит отметить, что может быть трудно найти эту программу в Windows 8 - поиск 'resmon.exe' должен найти ее. @Kylotan, Хватит тратить время на поиски. Просто беги resmon прямо из cmd @Pacerier: Хорошо. Я не привык к вещам, находящимся в пути Windows. Это подходит мне лучше, чем «Ручка | Альтернативы FindStr 'и' Unlocker ', хотя они также эффективны Все еще действует в Windows 10 и может быть найден с помощью кнопки «Открыть монитор ресурсов» в диспетчере задач -> вкладка «Производительность». +1 для встроенной команды, хотя я лично использую ProcessExplorer для этого большую часть времени. ОШИБКА: целевая система должна работать под управлением 32-битной ОС. Похоже, что это работает для Windows 2012R2 64bit, но вам нужно включить службу «открыть локальное отслеживание» путем запуска openfiles /local on и перезапуска. Это делает эту функцию не очень полезной.

Просто будьте очень осторожны с закрывающимися ручками; это даже более опасно, чем вы думаете, из-за повторного использования дескриптора - если вы закроете дескриптор файла, и программа откроет что-то еще, этот оригинальный дескриптор файла, который вы закрыли, может быть повторно использован для этого «чего-то еще». А теперь угадайте, что произойдет, если программа продолжит работу, думая, что она работает с файлом (чей дескриптор вы закрыли), когда фактически этот дескриптор файла теперь указывает на что-то другое.

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