дізнайтеся, на якому комп’ютері відкрито файл на спільній мережі сервера


4

У мене є Windows Server 2008 і він поділяє папку. Багато клієнтів отримують доступ до цієї папки та спадкових файлів. Один клієнт спорадично відкриває один dll-файл у режимі rw, тому після цього жоден інший клієнт не може завантажувати dll.

Тепер я хочу визначити, який клієнт це робить. Усі знайдені інструменти:

  • відкрити файл
  • сітка
  • sharewatch
  • NetShareMonitor

не показує мені мережевий клієнт, який відкриває файл у режимі rw.

Я думаю, що це антивірусна програма, але мені потрібно знати, у якого клієнта відкривається файл.

Редагувати:

  • Клієнтами є віконні машини
  • Усі клієнти використовують одного і того ж користувача, тому я не можу визначити клієнта з іменем користувача

Чи можете ви пояснити, що ви маєте на увазі під клієнтом?
Jonno

клієнт - це ПК з ОС win7, win8 або win10
Biber

Відповіді:


2

Це може бути вам корисним:

введіть тут опис зображення

Я не можу бути впевнений, що це одне і те саме місце в серверній редакції, але я отримав доступ до нього через Win+ X-> Computer Management-> System Tools-> Shared Folders->Open Files

У цьому списку відображається кожна ручка відкритого файлу, його "Відкритий режим" (Read / ReadWrite) та користувач. Ви також можете закрити ручку файлу з цього місця.


Так, я знаю це діалогове вікно, але я не можу визначити ім'я (або IP) клієнта-ПК. Я знаю лише користувача, і користувач завжди той самий.
Biber

1
@Biber Порівняйте список net sessionіз CMD, який має вказати, з якої IP-адреси надходить користувач.
Jonno

Користувач завжди однаковий, тому я не можу ні з чим порівняти ..
Biber

@Biber Ага, гаразд. Це ускладнює ситуацію, оскільки я вважаю, що файл заблокований проти користувача. Вибачте, я не знаю способу звузити це.
Jonno

Для довідки ви можете клацнути правою кнопкою миші список і закрити сеанс, якщо файл заблокований. Ця сторінка не лише для перегляду :)
Біло

2

Ми хотіли це зробити роками!

Сьогодні ми помітили цю утиліту:

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

Фантастичний!

Редагувати:

Ви можете використовувати NetworkOpenedFiles від Nirsoft, щоб визначити, який хост має відкритий файл у спільному файлі Windows.


Ласкаво просимо до Супер Користувача. Прочитайте, як рекомендувати програмне забезпечення для мінімально необхідної інформації та інші пропозиції щодо того, як рекомендувати програмне забезпечення для Super User. Щоб відповідь була корисною, навіть якщо включені перерви посилань (-ів), відредагуйте ці дані у своїй відповіді.
Twisty Impersonator

2

Це старе питання, але все-таки:

якщо у вас PowerShell 4.0+ (який не постачається з Windows Server 2008, вам доведеться оновити версію PowerShell), ви можете використовувати це:

Безпосередньо на сервері:

Get-SmbOpenFile | where-object { $_.Path -like 'C:\foo\bar\*' }

від RemoteMachine:

$cim = New-CimSession ServerName -Credential (get-credential)
Get-SmbOpenFile -CimSession $cim | where-object { $_.Path -like 'C:\foo\bar\*' }

Get-SmbOpenfileповертає список усіх відкритих файлів на сервері, який ми фільтруємо, where-objectщоб бачити лише ті, кого ми шукаємо.

Це поверне, серед іншого, ClientComputerNameIP-адресу комп'ютера, який відкрив файл.

Ось приклад результату:

PS C:\WINDOWS\system32> get-smbopenfile -cimsession $cim | where-object { $_.Path -like 'D:\Daten\Transfer\*' }

    FileId       SessionId    Path                 ShareRelativePath ClientComputerName ClientUserName PSComputerName
    ------       ---------    ----                 ----------------- ------------------ -------------- --------------
    347355680805 348160786757 D:\Daten\TRANSFER\xy TRANSFER\xy       10.0.0.114         INTERNAL\xy    Server

Якщо ви хочете швидко побачити, що ім'я хосту повернутої IP-адреси, скористайтеся:

[Net.DNS]::GetHostByAddress("10.0.0.114") | select -expand HostName
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.