Как узнать у кого открыт файл excel в сети


Как определить кто открыл файлы в сетевой папке и сбросить сессии пользователя в Windows Server

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

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

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

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

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

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

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

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

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

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

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

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

Openfiles /Query /s FileServer

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

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

openfiles /query /s FileServer /u domain\admin /p p@ssw1234

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

Openfiles /Query /s FileServer /fo csv 

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

Если необходимо увидеть информацию о количестве блокировок файлов (#Locks) и в каком режиме открыт файл (чтение или запись), то можно воспользоваться параметром /v.

Openfiles /Query /s FileServer /v

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

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

Openfiles /Query /s FileServer | find /i "anyfile. xlsx"

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

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

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

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

openfiles /disconnect /id 26843578

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

openfiles /disconnect /a BadUser

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

openfiles /disconnect /o read/write

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

openfiles /disconnect /a * /op "c:\myshare\"

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

openfiles /disconnect /s FileServer /u domain\baduser /id *

Управление открытыми файлами на файловом сервере Windows (SMB)

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

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

Содержание:

  • Вывод списка открытых файлов в сетевой папке Windows
  • Определяем пользователя, который открыл файл в сетевой папке с помощью Openfiles
  • Как принудительно закрыть открытый файл в Windows?
  • Get-SMBOpenFile: вывод списка открытых по сети файлов в PowerShell
  • Как удаленно закрыть открытые SMB файлы с помощью PowerShell?

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

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

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

Этот же список открытых файлов можно получит с помощью встроенной консольной утилиты Openfiles. Например, с помощью следующей команды можно получить id сессии, имя пользователя и полный локальный путь к открытому файлу:

Openfiles /Query /fo csv |more

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

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

Openfiles /Query /s mskfs01 /fo csv

Команда Openfiles позволяет также вывести список локально открытых файлов. Для этого на сервере нужно включить опцию Maintain Objects List (Построение списка объектов) командой openfiles /local on и перезагрузить сервер. После этого команда Openfiles будет отображать файлы, открытые локальными процессами (этот режим желательно использовать только для отладки, т.к. может негативно сказаться на производительности сервера).

Определяем пользователя, который открыл файл в сетевой папке с помощью Openfiles

Чтобы удаленно определить пользователя, который открыл (заблокировал) файл 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"

Можно, конечно найти открытый файл и в графической консоли Computer Management, но это менее удобно (в консоли нет возможности поиска).

Как принудительно закрыть открытый файл в Windows?

Чтобы закрыть открытый файл, нужно найти его в списке файлов секции Open Files и в контекстном меню выбрать пункт “Close Open File”.

Если на файловом сервере сотни открытых файлов, найти их в консоли будет непросто. Удобнее воспользоваться утилитой Openfiles. Как мы уже говорили, она возвращает ID сессии открытого файла. Вы можете принудительно закрыть файл и сбросить подключение пользователя по ID SMB сессии. Сначала нужно определить ID сессии открытого файла:

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

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

Openfiles /Disconnect /s mskfs01 /ID 67109098


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

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

Get-SMBOpenFile: вывод списка открытых по сети файлов в PowerShell

В версии PowerShell в Windows Server 2012/Windows 8 появились командлеты для управления сетевыми файлами и папками на SMB сервере. Эти командлеты можно использовать чтобы удаленно закрыть открытые по сети файлы.

Список открытых файлов можно получить с помощью командлета Get-SMBOpenFile. Чтобы закрыть файл (сбросить подключение), используется Close-SmbOpenFile.

Для вывода полного списка открытых файлов на сервере, выполните команду:

Get-SMBOpenFile

Команда возвращает ID файла, ID сессии и полное имя файла.

Можно вывести список открытых файлов с именами пользователей и компьютеров (IP адресами):

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

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

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

или с определенного компьютера (сервера):

Get-SMBOpenFile –ClientComputerName 192.168.12.170| select ClientUserName,Path

Можно вывести список открытых файлов по шаблону. Например, все открытые по сети exe файлы:

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

или файлы с определенным именем:

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

Чтобы закрыть файл используется командлет Close-SmbOpenFile . Закрыть файл можно по ID:

Close-SmbOpenFile -FileId 4123426323239

Но обычно удобнее закрыть файл по имени:

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

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

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

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

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

$sessn = New-CIMSession –Computername mskfs01

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

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

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

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

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

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

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

сетевых ресурсов. Как заставить Excel отображать имя пользователя человека, у которого открыт файл?

спросил

Изменено 5 лет назад

Просмотрено 86 тысяч раз

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

Я знаю, что уже видел сообщение с именем пользователя, но не знаю, как это сделать.

Откуда Excel получает имя, которое он показывает, и как я могу заставить Excel показывать имя пользователя, у которого оно открыто??

ПС. Я знаю, что есть способ включить многопользовательское редактирование в Excel, но я не хочу включать эту опцию из-за угрозы повреждения данных.

  • Microsoft-Excel-2010
  • сетевые ресурсы
  • только для чтения

2

Хорошо, я нашел это в Excel 2010, File-Options. Показанное имя происходит от того места, где на этом снимке красная рамка:

Кажется, мне придется побегать и заставить всех изменить имя в своих опциях.

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

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

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

1

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

Документ Microsoft Office «заблокирован для редактирования другим пользователем»

спросил

Изменено 4 года, 4 месяца назад

Просмотрено 566 тысяч раз

Несколько моих пользователей целыми днями работают с различными электронными таблицами Excel 2007 и выходят из них. Одна из них сообщает, что «в 50% случаев» она пытается открыть электронную таблицу с файлового сервера, появляется информационное сообщение:

foo.xlsx заблокирован для редактирования

от «другого пользователя».

Откройте «Только для чтения» или нажмите «Уведомить», чтобы открыть только для чтения и получать уведомление
, когда документ больше не используется.

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

Я предполагаю, что это вызвано тем, что Excel оставляет файлы владельца на сервере, но я не знаю, почему.

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

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

  • Microsoft-офис

2

Прямо из Microsoft KB 313472:

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

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

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

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

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

ПРИМЕЧАНИЕ. Поскольку существует несколько версий Microsoft Windows, следующие шаги могут отличаться на вашем компьютере. Если они есть, см. документацию по продукту, чтобы выполнить эти шаги.

  1. Закройте все экземпляры Word. Для этого выполните следующие действия: 1. Сохраните всю свою работу, а затем закройте все программы. 2. Нажмите CTRL+ALT+DELETE, чтобы открыть диалоговое окно «Безопасность Windows». 3. Нажмите «Диспетчер задач», а затем перейдите на вкладку «Процессы». 4. Щелкните Winword.exe, а затем щелкните Завершить процесс. 5. В диалоговом окне «Предупреждение диспетчера задач» нажмите «Да». Если вы получили сообщение о том, что программа не отвечает, нажмите «Завершить сейчас». 6. Повторите шаги d и e для каждого экземпляра Winword.exe. 7. В меню «Файл» выберите «Выход из диспетчера задач».
  2. Запустите проводник Windows и перейдите в папку, содержащую файл документа, который вы пытались открыть при получении сообщение об ошибке.
  3. Удалить файл владельца.

    Файл владельца находится в той же папке, что и документ, который вы пытались открыть. Имя файла владельца использует следующее соглашение: начинается с тильды (~), за которой следует знак доллара ($), за которым следует оставшаяся часть имени файла документа. Имя файла расширение .doc. Например, файл владельца для Document.doc с именем ~$cument.doc.

  4. Запустить Word. Если Word спросит вас, хотите ли вы загрузить изменения, внесенные в шаблон Global или Normal, нажмите «Нет».
  5. Откройте документ.

Дополнительное примечание для документов, к которым предоставлен общий доступ по сети:

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

Перейдите к Управление компьютером -> Системные инструменты -> Общие папки -> Открыть файлы , чтобы узнать, у кого документ заблокирован. Если с пользователем невозможно связаться, чтобы отключиться, вы можете принудительно сделать это, щелкнув правой кнопкой мыши заблокированный файл и выбрав «Закрыть открытый файл» (предупреждение: пользователь может потерять свои изменения).

5

У меня только что возникла эта проблема, и статья базы знаний MS не помогла (скажите другим пользователям закрыть документ? Это общая книга Excel, ее должны открывать несколько пользователей!)

Во всяком случае, наша проблема была решена путем отключения вкладки Details в проводнике (это в Windows 7 — щелкните Organize там, где обычно находится строка меню, затем Layout , затем убедитесь, что Details не отмечен галочкой — а также Предварительный просмотр , судя по звуку.)

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

1

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

В XP отключите службу индексирования следующим образом: нажмите кнопку «Пуск», затем «Поиск». В открывшемся окне выберите «Изменить настройки» (внизу слева). Нажмите «Без службы индексирования», переключатель «Нет, не включать службу индексирования» и нажмите «ОК».

Я обнаружил проблему, загрузив handle.exe . handle.exe сообщает, в какой программе открыт файл, и в моем случае это оказалось cidaemon.exe . Быстрый поиск в Google подтвердил, что это фактический индексатор службы индексирования Windows.

Спасибо, Microsoft, еще 2 часа полезности в мой день.

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

Я видел эту ошибку сегодня, когда другой пользователь действительно открыл файл. Проблема заключалась в том, что Excel сообщает второму пользователю, что это «другой пользователь», а не сообщает фактическое имя первого пользователя, что затрудняет определение того, кто его открыл.

Я предположил, что это должно быть имя в параметрах Office/Excel - оно установлено правильно для обоих пользователей.

В нашем случае первый пользователь с открытым файлом находится в Excel 2007; второй пользователь в Excel 2010; возможно, есть некоторая несовместимость, из-за которой Excel второго пользователя не может получить настоящее имя.

Обновление: установите исправление для исправления разрешения имен

ОБНОВЛЕНИЕ 12 сентября 2012 г.: Загрузить

  • KB2598133 для Office 2007 или
  • KB2598143 для Office 2010 (разные пакеты для 32- и 64-разрядной версии!)

, чтобы исправить неправильные имена в сообщении.

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

Выяснилось, что проблема заключалась в следующем: Раньше компьютер использовался и входил в систему под локальной учетной записью. После того, как я присоединился к AD, я скопировал папку Application Data and Local Settings (в Windows XP) в профиль пользователя AD. После операции я позже обнаружил, что Local Settings\Application Data\Microsoft\Office не имеют разрешений для вновь созданного пользователя, и поэтому офис предлагал мне этот диалог для каждого файла. Ранее я пытался отключить брандмауэр/антивирус на хост-машине и клиентском компьютере, отключить службу индексирования на хост-компьютере, но ничего не помогло.

Итак, я установил соответствующие разрешения для папки Office, и теперь все работает.

Если у вас включена панель предварительного просмотра в проводнике Windows 7, вы получите эту ошибку. Отключение панели предварительного просмотра помогло мне.

Вот что я нашел в нашей среде. Все пользователи «Мои документы» сопоставляются с общим сетевым ресурсом в нашей SAN. Мы запускаем терминальный сервер с установленным Office, который использует тот же сетевой ресурс в нашей SAN. Если конечный пользователь использует продукт Office, а затем выходит из системы не полностью, а скорее X, файл отображается как заблокированный человеком, который установил Office на терминальном сервере (искренне ваш).

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

Официальный пост в блоге Microsoft. Там даже есть блок-схема.

  • Блог группы поддержки Microsoft Excel, Уилл Баффингтон, Окончательное сообщение о заблокированном файле (обновлено 23 августа 2017 г.) (Архивировано здесь.)

Основные моменты:

  • Обновление Windows
  • Обновить офис
  • Отключить Панель сведений и Панель предварительного просмотра
  • Настройте параметры реестра OpLocks на клиенте и перезагрузите клиент.
  • Остановка сторонних служб

1

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

Из Википедии,

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

С официального сайта,

Windows когда-нибудь выдавала такое раздражающее сообщение?

Только новые статьи

Введите свой e-mail

Видео-курс

Blender для новичков

Ваше имя:Ваш E-Mail: