Środowisko:
Windows XP sp3, serwer Windows 2003
Problem:
Mamy kilkadziesiąt maszyn kioskowych o tej samej nazwie logowania, które od czasu do czasu i krótko udostępniają plik. Stawka wynosi kilka blokad i zwalnia na minutę.
Ostatnio doświadczyliśmy, że jeden z klientów blokuje plik wyłącznie, a następnie go nie zwalnia.
Możemy zamknąć plik, gdy tak się stanie, ale minie kilka minut lub więcej, a jest to niedopuszczalne wyłączenie.
Niepublikowany problem z blokadą występował kilka razy w ciągu ostatniego miesiąca. Szukałem, które urządzenie kiosku jest odpowiedzialne za blokowanie i szybko je wykryć, kiedy to nastąpi.
Wydaje się, że istnieje luka w informacjach, które możemy uzyskać z serwera:
Widzimy z różnych narzędzi: -
Jakie pliki są otwarte i zablokowane. (wiele sposobów)
-Jakie logowanie ma określony plik otwarty lub zablokowany. (wiele sposobów)
-To konkretny komputer zazwyczaj ma otwarty plik. (Udostępnione foldery, sesje mmc)
Nie możemy zobaczyć, że określony komputer ma otwarty i zablokowany określony plik.
Czy ktoś wie, jak się do tego dostać?
Dzięki -
Obrabować
Odpowiedzi:
Sprawdź to małe bezpłatne oprogramowanie ( ShareWatch ), myślę, że zrobi to, czego szukasz.
Jedna z wymienionych funkcji: „Pokazuje użytkowników i komputery podłączone do każdego udziału, wraz z tym, jakie pliki są otwarte”.
źródło
Wpisz wiersz poleceń (CMD),
następnie wpisz: openfiles / query ip udziału sieciowego
Może być wymagana nazwa użytkownika i hasło.
Możesz uzyskać więcej informacji o plikach otwartych tutaj .
źródło
Sądzę, że zechcesz powrócić do postu Sky100, ponieważ jest on poprawny, nie w celu zapewnienia ci tego, o co prosiłeś, ale w celu zapewnienia ci tego, czego potrzebujesz, aby rozwiązać problem. Konieczne będzie odwołanie się do zablokowanego numeru identyfikacyjnego za pomocą polecenia „openfile / query / v” (pełne), ponieważ dostarczy on potrzebnych danych. Wyszukaj nazwę pliku na podanej liście, dane pokażą, który element ma włączony odczyt i zapis, a wraz z nim podadzą określony numer identyfikacyjny. Nie, możesz nie być w stanie ustalić, który konkretny system ma zablokowany plik, ale dzięki dostarczonym narzędziom możesz odłączyć tego użytkownika od pliku. Oto krok po kroku, aby uprościć moje wędrówki.
1) Na serwerze plików z uprawnieniami administratora wykonaj Start> Uruchom> CMD [ENTER]
2) CD Desktop [ENTER] (Zobaczysz, dlaczego wkrótce.)
3) openfiles / query / v> file.txt [ENTER] (Spowoduje to utworzenie pliku na pulpicie z listą wszystkich otwartych plików na serwerze).
4) Otwórz plik.txt i wyszukaj wiersz zawierający zarówno nazwę pliku, jak i uprawnienia do odczytu i zapisu.
5) Zanotuj numer identyfikacyjny w tej linii i wróć do konsoli poleceń.
6) openfiles / odłącz / ID [Wpisz tutaj numer identyfikacyjny] [ENTER]
Tak długo, jak masz uprawnienia administracyjne na serwerze plików, odłączy on ten system od pliku i przy założeniu, że twój system jest zautomatyzowany, powinno pozwolić, aby wszystko szło zgodnie z potrzebami.
Odniesienia: openfiles / query /? otwarte pliki / odłącz /
Jeśli potrzebujesz skryptu lub aplikacji zaprogramowanej dla twojego systemu, prosimy o komentarz, a ja podam informacje kontaktowe, bardzo niską cenę wraz z technologią. wsparcie mojej aplikacji.
źródło
Czy problem, który próbujesz rozwiązać, o którym mówisz (tj. Zamapowanie określonego komputera klienckiego (nie użytkownika) na zablokowany plik), czy jest to problem z blokowaniem, który musisz rozwiązać?
Jeśli to ostatnie pomogłoby, przyjrzałbym się dwóm rzeczom:
Sprawdź AV, który jest zainstalowany na twoich klientach - widziałem, że wiele AV po stronie klienta powoduje bardzo nieprzyjemne anomoliczne zachowanie blokowania udziałów.
Spróbuj wyłączyć blokowanie oportunistyczne , ustawiając wartość rejestru EnableOpLocks na 0.
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parametry EnableOplocks REG_DWORD 0 lub 1 Domyślnie: 1 (włączone)
To nieco obniży wydajność, ale nie powinno niczego zepsuć.
Chciałbym, aby ktoś faktycznie odpowiedział na zadane pytanie - to interesujący problem.
źródło
Podczas próby rozwiązania problemu RobW i zapewnienia alternatywnego rozwiązania nie udało mi się odpowiedzieć na jego pytanie.
Wierzę, że rozwiązaniem, którego szukasz, będzie skonfigurowanie zasad inspekcji w tym systemie, a następnie skonfigurowanie tego pliku do kontroli dostępu od tego konkretnego użytkownika. Kroki do wykonania tego mogą się różnić w zależności od konfiguracji sieci, dlatego odsyłam cię do łącza technet firmy Microsoft do konfigurowania różnych systemów do kontroli.
http://technet.microsoft.com/en-us/library/cc787268(WS.10).aspx
Po skonfigurowaniu tego, upewnieniu się, że wykonałeś konfigurację określonego pliku, który chcesz monitorować, dołączając konto użytkownika jako audytora, powinieneś być gotowy do pracy.
Po prostu sprawdź swoje dzienniki zdarzeń bezpieczeństwa w przyszłości i chociaż będzie zawierał listę każdego systemu (ponieważ wszystkie używają tej samej nazwy użytkownika), nie powinno być problemu z sortowaniem i zlokalizowaniem, który system ma obecnie dostęp do odczytu i zapisu do pliku.
Przydatne może być skonfigurowanie dziennika zabezpieczeń do czyszczenia co kilka dni.
Jeśli to nie zadziała, prawdopodobnie konieczne będzie skonfigurowanie systemu dla każdej nazwy hosta uzyskującej dostęp do pliku, a nie nazwy użytkownika. Wierzę, że jest to możliwe dzięki Microsoft Management Console.
Ponownie, jeśli potrzebujesz programowania, nie jestem biznesmenem zainteresowanym wzięciem dużych pieniędzy na jakiś mały program. Zapewniam wysokiej jakości programowanie w cenie, której nawet osoba nie unikałaby. Mam nadzieję, że pomoże Ci to rozwiązać problem.
źródło
Jeśli to możliwe, przypisuję różnych użytkowników do różnych kiosków - może to pomóc w analizie innych dzienników ...
Jeśli nie jest to możliwe: Zarys możliwego rozwiązania: Rozwiązaniem może być uruchomienie narzędzia takiego jak sysinternals procesmonitor z odpowiednim filtrem (do danego pliku) w kioskach (nie wiem, czy można go ukryć). Istnieje kilka opcji wiersza poleceń, w które można grać, aby zapisać przechwycone dane do pliku.
Zbierz je z różnych kiosków, zaimportuj do np. Excela i poszukaj tego, który nie został zamknięty ...
źródło
Co z użyciem polecenia netstat do ustalenia tego?
To powinno dać ci adresy IP podłączonych urządzeń.
Jeśli chcesz nazwy hostów zamiast adresów IP, użyj
jednak wykonanie tego potrwa dłużej, szczególnie na zajętych serwerach plików lub kontrolerach domen, ponieważ będzie wymagało wielu wyszukiwań hosta.
Pamiętaj też, że wyniki pokażą przychodzące, wychodzące i bezczynne porty nasłuchu.
Połączenia przychodzące pokażą: 445 w lewej kolumnie, połączenia wychodzące pokażą w prawej kolumnie.
Możesz bezpiecznie zignorować wszystkie wyniki z napisem „LISTENING”, a także wszystkie wiersze, które pokazują tylko lokalne adresy IP (np. 0.0.0.0 lub 127.0.0.1) lub własną nazwę hosta komputera, jeśli nie używasz opcji -n.
Na przykład:
Jedynym podłączonym tu hostem jest 192.168.16.87. Połączenia z 192.168.16.24 są wychodzące. Wszystkie pozostałe połączenia są połączeniami lokalnymi.
źródło
Pamiętam, że w systemie Windows było narzędzie graficzne do sprawdzania używanych udziałów i zablokowanych plików.
Powinien znajdować się w „narzędziach systemowych” pod „Zarządzanie komputerem” (~ przetłumaczone z francuskiego ...), pod nazwą „foldery współdzielone”.
źródło
Wiem, że jest to bardzo stare, ale ADSI zapewnia interfejs WinNT: //, który umożliwia dostęp do usługi LANMANSERVER i zapytania o właściwości już ujawnione w przystawce mmc „Foldery współdzielone”. Obecnie szukam sposobu na połączenie hosta i użytkownika z otwartym plikiem.
źródło
Gdybym to był ja i miałbym dostęp do komputera z linuksem w tej samej podsieci ... Zrobiłbym tcpdump na odpowiednim porcie udostępniania do skrzynki, w której trzymają otwarty plik.
Jeśli nie masz Uniksa, nadal możesz używać tcpdump, ale musisz go zainstalować.
z linux ... Zrobiłbym coś takiego: tcpdump -ieth0 -s0 -X nazwa hosta port 1234 | grep -i "nameoffile"
Wiem, że większość danych ma charakter binarny ... Założę się jednak, że początkowy nagłówek do negocjacji uwierzytelnienia w celu uzyskania dostępu do pliku jest jawny.
Spowoduje to wyświetlenie każdego odległego hosta, który łączy się z tym polem i gdzie znajduje się nazwa pliku w danych pakietu (jeśli nie są zaszyfrowane lub binarnie).
Powodzenia! Ale z mojego doświadczenia wynika, że należy stosować:
1) Udostępnione pliki to zły pomysł! Zwłaszcza w / zdalnych systemach, które mogą pozostawić plik zablokowany, jeśli zerwą połączenie lub będą miały wolne połączenia.
2) Dostęp do udostępnionego pliku spowoduje wyścig między klientami. Marnowanie cennego czasu kleszcza.
3) Jeśli MUSISZ użyć udostępnionego pliku ... Utwórz różne nazwy użytkowników dla każdej zdalnej witryny, aby móc poprawnie debugować.
Najlepszy scenariusz ... pozbyć się pliku i scalić z SQL lub stworzyć serwis internetowy, który umożliwia klientom dostęp do pliku lub danych.
++ Todd
źródło