Иногда при работе с сетевыми файлами сталкиваемся с тем, что неизвестно кто их открыл и держит. А нужен полный доступ к файлу для редактирования или перезаписи. Как узнать кто держит файл и что делать, если нет доступа к рабочему месту где он открыт?
Для получения списка всех файлов открытых на компьютере server используем:
openfiles /query /s server /u domain\admin /p password
Если знаем имя файла, то:
openfiles /query /s server /fo csv | find /i "anyfile.xlsx"
(/fo csv - сильно желательно, иначе файл с именем длиннее 36 символов не найдёте).
Вместо "anyfile.xlsx" можете написать название каталога или часть имени файла. Регистр не имеет значения. При поиске получает строку с полным путём и именем файла и уже в ней ищет по вхождению, что мы запросили. Т.е. например, можно запросить кто открыл файлы в таком-то каталоге.
В обоих случаях увидим ID файла(ов), имя пользователя, кто его открыл и путь где лежит файл.
Отключается доступ по ID файла:
openfiles /s server /u domain\admin /p password /disconnect /id 26843578
Можно просто отключить пользователя от всех открытых файлов:
openfiles /s server /disconnect /a username
/s server - имя сервера, где лежит открытый файл, если опустить - то будет компьютер на котором выполняем команду.
/u domain\admin /p password - добавляем, если выполняете не под админской учётной записью.