Bagaimana cara mengetahui komputer apa yang memiliki file terbuka di jaringan berbagi?

21

Lingkungan Hidup:

Windows XP sp3, server Windows 2003

Masalah:

Kami memiliki beberapa lusin mesin kios masing-masing dengan nama masuk yang sama yang sesekali dan singkat file di bagikan. Nilai ini beberapa kunci dan rilis satu menit.

Baru-baru ini, kami telah mengalami salah satu klien mengunci file secara eksklusif, dan kemudian tidak merilis file. 

Kami dapat menutup file ketika ini terjadi, tetapi beberapa menit atau lebih lama berlalu, dan ini merupakan pemadaman yang tidak dapat diterima.

Masalah kunci yang belum dirilis telah terjadi beberapa kali dalam sebulan terakhir. Saya telah mencari perangkat kios mana yang bertanggung jawab untuk mengunci, dan untuk mendeteksinya dengan cepat ketika itu terjadi.

Tampaknya ada celah dalam informasi yang bisa kita dapatkan dari server:

Kita bisa melihat dari berbagai alat:
File apa yang terbuka dan terkunci. (Banyak cara)
-Apa masuk memiliki file tertentu terbuka atau terkunci. (Banyak cara)
- Bahwa komputer tertentu umumnya memiliki file yang terbuka. (Folder bersama, sesi mmc)

Apa yang tidak dapat kita lihat adalah bahwa komputer tertentu memiliki file tertentu yang terbuka dan terkunci.

Adakah yang tahu cara untuk mencapai ini?

Terima kasih -

rampok

RobW
sumber
1
Tidak seperti yang Anda minta, tetapi pendekatan alternatif adalah membuat akun terpisah untuk setiap sistem.
Bryan

Jawaban:

10

Lihat util freeware kecil ini ( ShareWatch ), saya pikir itu akan melakukan apa yang Anda cari.

Salah satu fitur yang tercantum: "Menunjukkan pengguna dan komputer yang terhubung ke masing-masing berbagi, bersama dengan file apa yang terbuka."

teks alternatif

techie007
sumber
1
Terima kasih untuk ini - saya mencoba Sharewatch. Dalam situasi saya - lebih dari selusin klien dengan nama login yang sama - menggabungkan file yang terbuka dan workstation ke dalam daftar yang sama. Anda tidak bisa mengatakan workstation mana yang terbuka. Juga, memilih Properti hanya melaporkan bahwa workstation memiliki x file terbuka, dan bukan nama file mereka. Memilih Properti untuk file memberikan informasi serupa.
RobW
7

Masukkan baris perintah (CMD),

lalu ketik: openfiles / ip permintaan dari networkshare

Dan nama pengguna dan kata sandi mungkin diperlukan.

Anda dapat memperoleh informasi lebih lanjut tentang openfile di sini .

sky100
sumber
Terima kasih. Openfiles memberikan sebagian besar output yang sama dengan sesi net dari konsol server. Itu tidak memberikan nama komputer yang telah membuka file. Saya mencari file-> koneksi komputer, bukan file-> koneksi pengguna.
RobW
5

Saya percaya Anda akan ingin merujuk kembali ke pos Sky100 karena dia benar, bukan dalam menyediakan Anda dengan apa yang Anda minta, tetapi dalam memberikan Anda apa yang Anda butuhkan untuk menyelesaikan masalah Anda. Anda perlu merujuk nomor ID yang dikunci melalui perintah "openfile / query / v" (verbose) karena akan menyediakan Anda dengan data yang Anda butuhkan. Cari nama file dalam daftar yang diberikan, data akan menunjukkan item mana yang memiliki baca & tulis diaktifkan, dan bersama itu akan memberikan nomor ID tertentu. Tidak, Anda mungkin tidak dapat menemukan sistem spesifik mana yang file-nya terkunci, tetapi dengan alat yang disediakan, Anda dapat memutuskan koneksi pengguna tersebut dari file tersebut. Ini adalah langkah-demi-langkah untuk menyederhanakan ocehan saya.

1) Pada server file dengan hak Administrator, lakukan Mulai> Jalankan> CMD [ENTER]

2) CD Desktop [ENTER] (Anda akan segera melihat alasannya.)

3) openfiles / query / v> file.txt [ENTER] (Ini akan membuat file di desktop dengan daftar semua file yang dibuka di server.)

4) Buka file.txt dan cari baris yang berisi nama file Anda dan izin Baca + Tulis.

5) Catat nomor ID pada baris itu dan kembali ke konsol Command Anda.

6) openfiles / putuskan / ID [Masukkan Nomor ID Di Sini] [ENTER]

Selama Anda memiliki hak Administratif pada file server, itu akan memutuskan sistem itu dari file dan dengan asumsi sistem Anda terotomatisasi, harus memungkinkan hal-hal untuk terus bergerak sesuai kebutuhan.

Referensi: openfiles / query /? openfiles / putuskan /?

Jika Anda membutuhkan skrip atau aplikasi terprogram yang memenuhi sistem Anda, jangan ragu untuk berkomentar dan saya akan memberikan info kontak, harga yang sangat rendah bersama dengan teknologi. dukungan pada aplikasi saya.

Thomas
sumber
Ha! Masalah saya adalah menemukan komputer tempat file dibuka. Apakah Anda punya ide tentang cara melakukannya? Mengidentifikasi dan menutup file itu sederhana, dan ada banyak cara untuk merekayasa hasil ini. Saya menghargai tanggapannya, dan tawaran komersial Anda memberi saya tertawa di pagi hari ;-)
RobW
Saya minta maaf, saya tidak sadar bahwa proses openfiles bukanlah solusi. Dari apa yang Anda jelaskan tampaknya akan menyelesaikan kebutuhan Anda untuk melihat lebih jauh pada sistem karena tidak menutup file, tetapi hanya menghapus pengaturan yang terkunci. Bahkan, saya membangun aplikasi untuk perusahaan saya dan itu dapat otomatis dijalankan setiap bit untuk menghindari komplikasi seperti itu. Tapi saya kira itu intinya. Untuk menjawab pertanyaan langsung Anda: Ya, harus ada cara untuk mengaudit sistem tersebut untuk akses mereka ke file itu. Silakan lihat posting saya berikutnya untuk rincian lebih lanjut.
Thomas
Sebenarnya, kembali dan membaca kembali posting Anda ... "Kita dapat menutup file ketika ini terjadi, tetapi beberapa menit atau lebih lama berlalu, dan ini adalah pemadaman yang tidak dapat diterima." Alasan solusi Anda tidak berfungsi adalah karena Anda MENUTUP file. Solusi saya dan sebagian Sky100 yang disediakan sebelumnya tidak menutup file, tetapi MENGUBAH hak akses untuk Baca Saja. Sekali lagi, saya bingung bagaimana openfiles TIDAK solusi yang Anda cari. Cobalah sebelum menulisnya sebagai solusi. Jika Anda tidak tertarik pada seorang programmer, buat file batch untuk dijalankan setiap beberapa menit.
Thomas
Saya meninggalkan solusi untuk pertanyaan Anda di bawah ini agar tidak membuang waktu jika pemahaman saya tentang situasi tidak menyeluruh.
Thomas
Mmmm Maaf, tapi saya tidak merasa bahwa pertanyaan saya sedang ditangani oleh Anda. Saya perlu bantuan menentukan komputer mana yang menyimpan file terbuka. Saya sangat tertarik untuk menentukan nama komputer. Semua yang lain, meskipun menarik, tidak memberi tahu saya hal yang terbatas yang saya kejar.
RobW
2

Apakah masalah yang Anda coba selesaikan yang Anda nyatakan (yaitu memetakan komputer klien tertentu (bukan pengguna) ke file yang dikunci) atau apakah ada masalah penguncian yang perlu Anda selesaikan?

Jika yang terakhir akan membantu maka ada dua hal yang akan saya lihat:

  • Periksa AV yang diinstal pada klien Anda - Saya telah melihat beberapa sisi klien AV menyebabkan perilaku penguncian anomali serius buruk pada saham.

  • Coba nonaktifkan penguncian oportunistik dengan menetapkan nilai registri EnableOpLocks ke 0.

    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameter MengaktifkanOpsi REG_DWORD 0 atau 1 Default: 1 (diaktifkan)

Ini akan sedikit mengurangi kinerja tetapi tidak merusak apa pun.

Saya ingin melihat seseorang yang benar-benar menjawab pertanyaan Anda - ini masalah yang menarik.

Helvick
sumber
Terima kasih Helvick! Menonaktifkan penguncian oportunistik adalah pendekatan yang menarik. Server saya anggap?
RobW
Yap ada di server - ini mencegah klien meminta penguncian oportunistik sehingga mereka dapat secara lokal cache (bagian dari) file.
Helvick
Kinerja yang dihasilkan dari penonaktifan penguncian oportunistik kemungkinan besar tidak dapat diterima bagi kami. Kita harus melihat ini di testbed kami.
RobW
Itu jelas risiko dengan ini - saya akan tertarik dengan apa yang Anda temukan.
Helvick
2

Dalam upaya saya untuk memecahkan masalah RobW, dan memberikan solusi alternatif, saya gagal menjawab pertanyaannya.

Saya percaya solusi yang Anda cari akan menjadi dalam menyiapkan kebijakan Audit pada sistem itu dan kemudian mengatur file itu untuk mengaudit akses apa pun dari pengguna tertentu. Langkah-langkah untuk melakukan ini dapat bervariasi tergantung pada pengaturan jaringan Anda, jadi saya akan merujuk Anda ke tautan tech microsoft tentang cara mengatur berbagai sistem untuk diaudit.

http://technet.microsoft.com/en-us/library/cc787268(WS.10).aspx

Setelah mengatur itu, pastikan untuk menindaklanjuti dengan mengatur file tertentu yang ingin Anda pantau dengan melampirkan akun pengguna sebagai Auditor, Anda harus siap untuk pergi.

Cukup periksa log Peristiwa Keamanan Anda di masa mendatang dan meskipun itu akan mencantumkan setiap sistem (karena mereka semua menggunakan nama pengguna yang sama), seharusnya tidak sulit untuk menyortir dan menemukan sistem yang saat ini memiliki akses Baca dan Tulis ke file.

Mungkin bermanfaat untuk mengatur log Keamanan agar dihapus setiap beberapa hari.

Jika ini tidak berhasil, kemungkinan Anda perlu mengatur sistem per setiap nama host yang mengakses file, bukan nama pengguna. Saya percaya ini dimungkinkan melalui Konsol Manajemen Microsoft.

Sekali lagi, jika Anda memerlukan pemrograman, saya bukan pengusaha yang tertarik mengambil banyak uang untuk beberapa program kecil. Saya menyediakan pemrograman berkualitas dengan harga yang bahkan seorang individu tidak akan menghindarinya. Saya harap ini membantu Anda dalam menyelesaikan masalah Anda.

Thomas
sumber
Terima kasih untuk ini. Saya mengatur audit pada direktori itu tidak lama setelah masalah awal. Kami memiliki ~ 150 klien (dan bukan hanya kios) yang aktif di direktori itu. Karena masalahnya adalah terputus-putus, rasio sinyal terhadap noise sangat besar, dan saya tidak melihat cara yang jelas untuk menghubungkan komputer tertentu ke acara file. Saya akan melihat ini lagi. Kami sudah melakukan beberapa pertemuan desain untuk ini. Beberapa topik sudah dibahas, termasuk akun masuk. Saya masih ingin tahu komputer apa yang menahan file terbuka :-)
RobW
1

Saya juga akan menetapkan pengguna yang berbeda ke kios yang berbeda jika mungkin - mungkin membantu Anda dalam menganalisis log lain ...

Jika itu tidak memungkinkan: Garis besar solusi yang mungkin: Sebuah solusi bisa dengan menjalankan alat seperti sysinternals processmonitor dengan filter yang tepat (ke file yang dimaksud) di kios (tidak tahu apakah Anda bisa menyembunyikannya). Ada beberapa opsi baris perintah yang dapat Anda mainkan yang menyimpan data yang diambil ke file.

Kumpulkan ini dari berbagai kios, impor ke eg misalnya dan cari yang tidak ditutup ...

Reiniero
sumber
0

Bagaimana dengan menggunakan perintah netstat untuk menentukan ini?

netstat -an | find ":445"

Ini akan memberi Anda alamat IP dari mesin yang terhubung.

Jika Anda menginginkan nama host alih-alih alamat IP, gunakan

netstat -a | find "microsoft-ds"

namun ini akan membutuhkan waktu lebih lama untuk dieksekusi, terutama pada server file yang sibuk atau pengontrol domain, karena akan memiliki banyak pencarian host untuk dilakukan.

Juga, ingatlah bahwa hasilnya akan menunjukkan port mendengarkan masuk, keluar dan idle.

Koneksi masuk akan menunjukkan: 445 di kolom kiri, keluar menunjukkan itu di kolom kanan.

Anda dapat dengan aman mengabaikan hasil apa pun yang menyatakan 'MENDENGARKAN' dan juga setiap baris yang hanya menampilkan alamat IP lokal (mis. 0.0.0.0 atau 127.0.0.1) atau komputer memiliki nama host jika Anda tidak menggunakan opsi -n.

Sebagai contoh:

Z:\>netstat -an | find ":445"
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP    127.0.0.1:445          127.0.0.1:41764        ESTABLISHED
  TCP    127.0.0.1:445          127.0.0.1:41767        ESTABLISHED
  TCP    127.0.0.1:41764        127.0.0.1:445          ESTABLISHED
  TCP    127.0.0.1:41767        127.0.0.1:445          ESTABLISHED
  TCP    192.168.16.17:445      192.168.16.87:1098     ESTABLISHED
  TCP    192.168.16.17:18055    192.168.16.24:445      ESTABLISHED
  TCP    192.168.16.17:20678    192.168.16.24:445      ESTABLISHED
  UDP    0.0.0.0:445            *:*

Satu-satunya host yang terhubung di sini adalah 192.168.16.87. Koneksi ke 192.168.16.24 outbound. Semua koneksi lainnya adalah koneksi lokal.

Bryan
sumber
Hmmm, baca kembali pertanyaan Anda, dan itu tidak cukup menyelesaikan masalah Anda, karena tidak memberi tahu Anda file apa yang telah dibuka komputer.
Bryan
Tidak masalah. Saya menghargai ide itu.
RobW
0

Saya ingat ada alat grafis di windows untuk memeriksa saham yang digunakan dan file terkunci.

Itu harus di "alat sistem" di bawah "Manajemen komputer" (~ diterjemahkan dari perancis ...), dengan nama "folder bersama".

petrus
sumber
0

Saya tahu ini sudah sangat lama, tetapi ADSI menyediakan antarmuka WinNT: //, yang memungkinkan Anda untuk mengakses layanan LANMANSERVER dan permintaan untuk properti yang sudah terekspos di snapc mmc "Shared Folders". Saat ini saya sedang meneliti cara untuk menghubungkan host dan pengguna ke file terbuka.

mbrownnyc
sumber
-1

Jika itu saya dan saya memiliki akses ke mesin linux pada subnet yang sama ... Saya akan melakukan tcpdump pada port share yang dimaksud pada kotak tempat mereka menyimpan file terbuka.

Jika Anda tidak memiliki unix, Anda masih dapat menggunakan tcpdump tetapi Anda harus menginstalnya.

dari linux ... Saya akan melakukan sesuatu seperti ini: tcpdump -ieth0 -s0 -X hostname port 1234 | grep -i "nameoffile"

Saya tahu bahwa sebagian besar payload adalah biner ... Namun saya berani bertaruh uang baik bahwa mereka header awal untuk menegosiasikan otentikasi untuk akses ke file tersebut dalam teks yang jelas.

Ini akan menunjukkan kepada Anda setiap host ujung jauh yang menghubungkan ke kotak itu dan di mana nama file ditemukan dalam data paket mereka (jika tidak dienkripsi atau dalam biner).

Semoga berhasil! Tetapi dari pengalaman saya, berikut ini harus digunakan:

1) File bersama adalah ide yang buruk! Khususnya w / sistem remote yang dapat membiarkan file terkunci jika mereka memutuskan koneksi atau memiliki koneksi yang lambat.

2) Akses untuk file yang dibagikan akan menyebabkan kondisi balapan antara klien. Buang waktu kutu yang berharga.

3) Jika Anda HARUS menggunakan file bersama ... Buat nama pengguna yang berbeda untuk setiap situs jarak jauh sehingga Anda dapat melakukan debug dengan benar.

Skenario terbaik ... singkirkan file dan gabungkan ke dalam SQL atau buat layanan web yang memungkinkan klien mengakses file atau data.

++ Todd

Todd
sumber