Làm thế nào để biết máy tính nào có tệp mở trên mạng chia sẻ?


21

Môi trường:

Máy chủ Windows XP sp3, Windows 2003

Vấn đề:

Chúng tôi có vài chục máy kiosk mỗi máy có cùng tên đăng nhập, người thỉnh thoảng và tóm tắt một tệp trên một chia sẻ. Tỷ lệ là một số khóa và phát hành một phút.

Gần đây, chúng tôi đã trải nghiệm một trong những khách hàng khóa riêng một tệp và sau đó không phát hành tệp. 

Chúng tôi có thể đóng tệp khi điều này xảy ra, nhưng vài phút hoặc lâu hơn trôi qua, và đây là một sự cố mất điện không thể chấp nhận được.

Sự cố khóa chưa được phát hành đã xảy ra nhiều lần trong tháng trước. Tôi đã tìm kiếm thiết bị kiosk nào chịu trách nhiệm khóa và để phát hiện nhanh khi thiết bị xảy ra.

Dường như có một khoảng trống trong thông tin chúng ta có thể nhận được từ máy chủ:

Chúng ta có thể thấy từ các công cụ khác nhau:
-Những tệp nào được mở và khóa. (nhiều cách)
-Những đăng nhập nào có tệp specifc mở hoặc khóa. (nhiều cách)
-Đó là một máy tính cụ thể thường mở tệp. (Thư mục dùng chung, phiên mmc)

Những gì chúng ta không thể thấy là một máy tính cụ thể có một tệp cụ thể được mở và khóa.

Bất cứ ai biết một cách để có được điều này?

Cảm ơn -

Cướp


1
Không hoàn toàn những gì bạn đang yêu cầu, nhưng một cách tiếp cận khác sẽ là tạo một tài khoản riêng cho mỗi hệ thống.
Bryan

Câu trả lời:


10

Hãy xem phần mềm miễn phí nhỏ này ( ShareWatch ), tôi nghĩ rằng nó sẽ làm những gì bạn đang tìm kiếm.

Một trong những tính năng được liệt kê: "Hiển thị người dùng và máy tính được kết nối với mỗi chia sẻ, cùng với những tệp đang mở."

văn bản thay thế


1
Cảm ơn vì điều này - tôi đã thử Sharewatch. Trong tình huống của tôi - hơn một chục khách hàng có cùng tên đăng nhập - nó kết hợp các tệp và máy trạm đang mở vào cùng một danh sách. Bạn không thể biết máy trạm nào đã mở. Ngoài ra, việc chọn Thuộc tính chỉ đơn giản là báo cáo rằng máy trạm có x tệp đang mở chứ không phải tên tệp của chúng. Chọn thuộc tính cho tệp cho thông tin tương tự.
RobW

7

Nhập dòng lệnh (CMD),

sau đó gõ: openfiles / ip truy vấn của mạng

Và tên người dùng và mật khẩu có thể được yêu cầu.

Bạn có thể nhận thêm thông tin về openfiles tại đây .


Cảm ơn. Openfiles cung cấp phần lớn đầu ra giống như phiên net từ bảng điều khiển máy chủ. Nó không cung cấp tên máy tính đã mở tệp. Tôi đang tìm một tập tin-> kết nối máy tính, không phải tập tin-> kết nối người dùng.
RobW

5

Tôi tin rằng bạn sẽ muốn quay lại bài đăng của Sky100 vì anh ấy đúng, không phải cung cấp cho bạn những gì bạn yêu cầu, mà là cung cấp cho bạn những gì bạn cần để giải quyết vấn đề của mình. Bạn sẽ cần tham chiếu số ID bị khóa thông qua lệnh "openfile / query / v" (verbose) vì nó sẽ cung cấp cho bạn dữ liệu bạn cần. Tìm kiếm tên tệp trong danh sách đã cho, dữ liệu sẽ hiển thị mục nào có chức năng đọc và ghi được kích hoạt và cùng với đó sẽ cung cấp số ID cụ thể. Không, bạn có thể không tìm thấy hệ thống cụ thể nào có tệp bị khóa, nhưng với các công cụ được cung cấp, bạn có thể ngắt kết nối người dùng đó khỏi tệp. Đây là một bước để đơn giản hóa sự lan man của tôi.

1) Trên máy chủ tệp có quyền Quản trị viên, hãy bắt đầu> Chạy> CMD [ENTER]

2) Máy tính để bàn CD [ENTER] (Bạn sẽ thấy tại sao sớm.)

3) openfiles / query / v> file.txt [ENTER] (Điều này sẽ tạo một tệp trên màn hình nền với danh sách tất cả các tệp đã mở trên máy chủ.)

4) Mở file.txt và tìm kiếm dòng chứa cả tên tệp của bạn và quyền Đọc + Viết.

5) Lưu ý số ID trên dòng đó và quay lại Bảng điều khiển lệnh của bạn.

6) openfiles / disconnect / ID [Đặt số ID ở đây] [ENTER]

Miễn là bạn có quyền Quản trị trên máy chủ tệp, nó sẽ ngắt kết nối hệ thống đó khỏi tệp và giả sử hệ thống của bạn được tự động hóa, sẽ cho phép mọi thứ tiếp tục di chuyển khi cần.

Tài liệu tham khảo: openfiles / query /? openfiles / ngắt kết nối /?

Nếu bạn đang cần một kịch bản hoặc ứng dụng được lập trình phục vụ cho hệ thống của bạn, xin vui lòng bình luận và tôi sẽ cung cấp thông tin liên hệ, một mức giá rất thấp cùng với công nghệ. hỗ trợ về ứng dụng của tôi


Hà! Vấn đề của tôi là xác định vị trí máy tính mà tập tin được mở. Bạn có bất cứ ý tưởng về cách làm điều đó? Xác định và đóng tệp rất đơn giản và có rất nhiều cách để thiết kế kết quả này. Tôi đánh giá cao phản hồi và lời đề nghị thương mại của bạn đã cho tôi một tiếng cười vào sáng sớm ;-)
RobW

Tôi xin lỗi, tôi không biết rằng quy trình openfiles không phải là giải pháp. Từ những gì bạn mô tả, có vẻ như đã giải quyết được nhu cầu của bạn để xem xét thêm về hệ thống vì nó không đóng tệp mà chỉ xóa cài đặt bị khóa đó. Trên thực tế, tôi đã xây dựng ứng dụng cho công ty của mình và nó có thể được tự động hóa để chạy từng chút một để tránh các biến chứng như vậy. Tôi đoán rằng bên cạnh điểm, mặc dù. Để trả lời câu hỏi trực tiếp của bạn: Có, cần có cách kiểm toán các hệ thống đó để truy cập vào tệp đó. Xin vui lòng xem bài viết tiếp theo của tôi để biết thêm chi tiết.
Thomas

Trên thực tế, quay lại và đọc lại bài đăng của bạn ... "Chúng tôi có thể đóng tệp khi điều này xảy ra, nhưng vài phút hoặc lâu hơn, và đây là một sự cố mất điện không thể chấp nhận được." Lý do giải pháp của bạn không hoạt động là vì bạn đang ĐÓNG tệp. Giải pháp của tôi và một phần Sky100 được cung cấp trước đó không đóng tệp, nhưng THAY ĐỔI quyền truy cập đối với Chỉ đọc. Một lần nữa, tôi bối rối về cách các tệp mở không phải là giải pháp bạn đang tìm kiếm. Cung cấp cho nó một shot trước khi viết nó như là một giải pháp. Nếu bạn không quan tâm đến lập trình viên, hãy tạo một tệp bó để chạy cứ sau vài phút.
Thomas

Tôi sẽ để lại giải pháp cho câu hỏi của bạn dưới đây để không lãng phí thời gian trong trường hợp sự hiểu biết của tôi về tình huống không được thấu đáo.
Thomas

Ừm. Xin lỗi, nhưng tôi không cảm thấy rằng câu hỏi của tôi đang được bạn giải quyết. Tôi cần trợ giúp để xác định máy tính nào giữ tập tin mở. Tôi thực sự quan tâm đến việc xác định tên máy tính. Tất cả những thứ còn lại, trong khi thú vị, không cho tôi biết điều hữu hạn mà tôi đang theo đuổi.
RobW

2

Có phải vấn đề bạn đang cố gắng giải quyết vấn đề bạn nêu (tức là ánh xạ máy tính khách cụ thể (không phải người dùng) vào tệp bị khóa) hoặc có vấn đề về khóa mà bạn cần giải quyết không?

Nếu cái sau có ích thì có hai điều tôi sẽ xem xét:

  • Kiểm tra AV được cài đặt trên máy khách của bạn - Tôi đã thấy nhiều AV phía Máy khách gây ra hành vi khóa bất thường nghiêm trọng khó chịu trên cổ phiếu.

  • Hãy thử vô hiệu hóa khóa cơ hội bằng cách đặt giá trị đăng ký EnableOpLocks thành 0.

    HKEY_LOCAL_MACHINE \ HỆ THỐNG \ CurrentControlset \ Services \ LanmanServer \ Paramameter EnableOplocks REG_DWORD 0 hoặc 1 Mặc định: 1 (đã bật)

Điều này sẽ làm giảm hiệu suất phần nào nhưng không nên phá vỡ bất cứ điều gì.

Tôi rất muốn thấy ai đó thực sự trả lời câu hỏi đã nêu của bạn - đó là một vấn đề thú vị.


Cảm ơn Helvick! Vô hiệu hóa khóa cơ hội là một cách tiếp cận thú vị. Máy chủ tôi giả sử?
RobW

Đúng trên máy chủ - điều này ngăn khách hàng yêu cầu khóa cơ hội để họ có thể lưu trữ cục bộ (các phần của) tệp.
Helvick

Hiệu suất đạt được từ việc vô hiệu hóa khóa cơ hội rất có thể sẽ không được chấp nhận đối với chúng tôi. Chúng tôi sẽ cần xem xét điều này trong thử nghiệm của chúng tôi.
RobW

Đó chắc chắn là một rủi ro với điều này - Tôi sẽ quan tâm đến những gì bạn tìm thấy.
Helvick

2

Trong nỗ lực khắc phục sự cố của RobW và cung cấp giải pháp thay thế, tôi đã không trả lời được câu hỏi của anh ấy.

Tôi tin rằng giải pháp bạn đang tìm kiếm sẽ là thiết lập các chính sách Kiểm toán trên hệ thống đó và sau đó đặt tệp đó để kiểm tra mọi quyền truy cập từ người dùng cụ thể đó. Các bước để thực hiện việc này có thể khác nhau tùy thuộc vào thiết lập mạng của bạn, vì vậy tôi sẽ giới thiệu cho bạn liên kết kỹ thuật của microsoft về cách thiết lập các hệ thống khác nhau để kiểm toán.

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

Sau khi thiết lập, hãy đảm bảo thực hiện theo cách thiết lập tệp cụ thể mà bạn muốn theo dõi bằng cách đính kèm tài khoản người dùng làm Kiểm toán viên, bạn nên sẵn sàng sử dụng.

Chỉ cần kiểm tra nhật ký Sự kiện Bảo mật của bạn trong tương lai và mặc dù nó sẽ liệt kê từng hệ thống (vì tất cả chúng đều sử dụng cùng một tên người dùng), không khó để sắp xếp và xác định hệ thống nào hiện có quyền truy cập Đọc và Ghi vào tệp.

Nó có thể hữu ích để thiết lập nhật ký bảo mật để xóa mỗi vài ngày.

Nếu điều này không hoạt động, có khả năng bạn sẽ cần thiết lập hệ thống cho mỗi tên máy chủ truy cập tệp, thay vì tên người dùng. Tôi tin rằng điều này được thực hiện thông qua Microsoft Management Console.

Một lần nữa, nếu bạn cần lập trình, tôi không phải là một doanh nhân quan tâm đến việc lấy nhiều tiền của bạn cho một số chương trình nhỏ. Tôi cung cấp chương trình chất lượng với mức giá mà ngay cả một cá nhân cũng không né tránh. Tôi hy vọng điều này sẽ giúp bạn trong việc giải quyết vấn đề của bạn.


Cảm ơn vì điều đó. Tôi đặt kiểm toán trên thư mục đó ngay sau vấn đề ban đầu. Chúng tôi có ~ 150 khách hàng (và không chỉ các kiốt) hoạt động trong thư mục đó. Vì vấn đề không liên tục, tỷ lệ tín hiệu / nhiễu rất lớn và tôi không thấy cách liên kết rõ ràng của một máy tính cụ thể với một sự kiện tập tin. Tôi sẽ xem xét điều này một lần nữa. Chúng tôi đã có một vài cuộc họp thiết kế về điều này. Một số chủ đề trên bàn, bao gồm các tài khoản đăng nhập. Tôi vẫn muốn biết máy tính nào đang mở tệp :-)
RobW

1

Tôi cũng sẽ chỉ định những người dùng khác nhau cho các ki-ốt khác nhau nếu có thể - nó có thể giúp bạn trong việc phân tích các bản ghi khác ...

Nếu điều đó là không thể: Phác thảo giải pháp khả thi: Một giải pháp có thể là chạy một công cụ như bộ xử lý sysiternals với bộ lọc thích hợp (với tệp đang nghi vấn) trên các ki-ốt (không biết bạn có thể ẩn nó không). Có một số tùy chọn dòng lệnh bạn có thể chơi với đó để lưu dữ liệu đã chụp vào tệp.

Thu thập chúng từ các ki-ốt khác nhau, nhập chúng vào ví dụ Excel và tìm kiếm cái chưa bị đóng ...


0

Điều gì về việc sử dụng lệnh netstat để xác định điều này?

netstat -an | find ":445"

Điều này sẽ cung cấp cho bạn các địa chỉ IP của các máy được kết nối.

Nếu bạn muốn tên máy chủ thay vì địa chỉ IP, hãy sử dụng

netstat -a | find "microsoft-ds"

tuy nhiên, điều này sẽ mất nhiều thời gian hơn để thực thi, đặc biệt là trên các máy chủ tệp bận rộn hoặc bộ điều khiển miền, vì nó sẽ có rất nhiều tra cứu máy chủ để thực hiện.

Ngoài ra, hãy nhớ rằng kết quả sẽ hiển thị các cổng nghe trong, ngoài và không hoạt động.

Các kết nối gửi đến sẽ hiển thị: 445 ở cột bên trái, bên ngoài hiển thị nó ở cột bên phải.

Bạn có thể bỏ qua bất kỳ kết quả nào ghi rõ 'LISTENING' và bất kỳ dòng nào chỉ hiển thị địa chỉ IP cục bộ (ví dụ: 0.0.0.0 hoặc 127.0.0.1) hoặc tên máy chủ sở hữu nếu bạn không sử dụng tùy chọn -n.

Ví dụ:

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            *:*

Máy chủ duy nhất được kết nối ở đây là 192.168.16.87. Các kết nối đến 192.168.16.24 là hướng ngoại. Tất cả các kết nối khác là kết nối địa phương.


Hmmm, chỉ cần đọc lại câu hỏi của bạn và nó không giải quyết được vấn đề của bạn, vì nó không cho bạn biết tập tin nào đã mở.
Bryan

Không vấn đề gì. Tôi đánh giá cao ý tưởng.
RobW

0

Tôi nhớ có công cụ đồ họa trong các cửa sổ để kiểm tra các chia sẻ đã sử dụng và các tệp bị khóa.

Nó phải nằm trong "công cụ hệ thống" trong "Quản lý máy tính" (~ được dịch từ tiếng Pháp ...), dưới tên "thư mục dùng chung".


0

Tôi biết điều này rất cũ, nhưng ADSI cung cấp giao diện WinNT: //, cho phép bạn truy cập dịch vụ LANMANSERVER và truy vấn các thuộc tính đã được hiển thị trong snapin "Thư mục được chia sẻ". Tôi hiện đang nghiên cứu một cách để liên kết máy chủ người dùng với một tệp đang mở.


-1

Nếu đó là tôi và tôi có quyền truy cập vào một máy linux trên cùng một mạng con ... Tôi sẽ thực hiện một tcpdump trên cổng chia sẻ được đề cập đến hộp họ đang giữ tệp đang mở.

Nếu bạn không có unix, bạn vẫn có thể sử dụng tcpdump nhưng bạn phải cài đặt nó.

từ linux ... Tôi sẽ làm một cái gì đó như thế này: tcpdump -ieth0 -s0 -X tên máy chủ cổng 1234 | grep -i "tên"

Tôi biết rằng hầu hết các tải trọng là nhị phân ... Tuy nhiên tôi sẽ đặt cược tiền tốt rằng họ tiêu đề ban đầu để thương lượng xác thực để truy cập vào tệp có văn bản rõ ràng.

Điều này sẽ hiển thị cho bạn mọi máy chủ ở xa kết nối với hộp đó và nơi tìm thấy tên tệp trong dữ liệu gói của chúng (nếu không được mã hóa hoặc ở dạng nhị phân).

Chúc may mắn! Nhưng từ kinh nghiệm của tôi, những điều sau đây nên được sử dụng:

1) Các tập tin được chia sẻ là một ý tưởng tồi! Đặc biệt là các hệ thống từ xa có thể khiến tập tin bị khóa nếu chúng bị ngắt kết nối hoặc có kết nối chậm.

2) Truy cập vào tệp được chia sẻ sẽ gây ra tình trạng chạy đua giữa các máy khách. Lãng phí thời gian đánh dấu.

3) Nếu bạn PHẢI sử dụng tệp chia sẻ ... Tạo tên người dùng khác nhau cho mỗi trang web từ xa để bạn có thể gỡ lỗi chính xác.

Kịch bản tốt nhất ... thoát khỏi tệp và hợp nhất vào SQL hoặc tạo một dịch vụ web cho phép khách hàng truy cập tệp hoặc dữ liệu.

++

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.