it-swarm.com.de

Wie kann man feststellen, auf welchem ​​Computer eine Datei auf einer Netzwerkfreigabe geöffnet ist?

mgebung :

Windows XP sp3, Windows 2003 Server

Problem :

Wir haben mehrere Dutzend Kioskautomaten mit jeweils demselben Anmeldenamen, die gelegentlich und kurz eine Datei auf einer Freigabe erstellen. Die Rate beträgt mehrere Sperren und gibt eine Minute frei.

Vor kurzem hat einer der Clients festgestellt, dass eine Datei ausschließlich gesperrt und dann nicht freigegeben wurde.

In diesem Fall können wir die Datei schließen, aber es vergehen einige Minuten oder länger, und dies ist ein inakzeptabler Ausfall.

Das unveröffentlichte Sperrproblem ist im letzten Monat mehrmals aufgetreten. Ich habe gesucht, welches Kioskgerät für das Sperren verantwortlich ist, und es schnell erkannt, wenn es passiert.

Es scheint eine Lücke in den Informationen zu geben, die wir vom Server erhalten können:

Wir können aus verschiedenen Werkzeugen sehen:
- Welche Dateien sind geöffnet und gesperrt? (viele Möglichkeiten)
- Bei welcher Anmeldung ist eine bestimmte Datei geöffnet oder gesperrt. (viele Möglichkeiten)
- Dass auf einem bestimmten Computer im Allgemeinen eine Datei geöffnet ist. (Freigegebene Ordner, Sitzungen mmc)

Was wir nicht sehen können, ist, dass auf einem bestimmten Computer eine bestimmte Datei geöffnet und gesperrt ist.

Kennt jemand einen Weg, um dorthin zu gelangen?

Vielen Dank -

Rauben

21
RobW

Schauen Sie sich dieses kleine Freeware-Util ( ShareWatch ) an. Ich denke, es wird das tun, wonach Sie suchen.

Eine der aufgeführten Funktionen: "Zeigt die Benutzer und Computer an, die mit jeder Freigabe verbunden sind, sowie die geöffneten Dateien."

alt text

10
techie007

Geben Sie die Befehlszeile (CMD) ein.

geben Sie dann Folgendes ein: openfiles/query ip des networkshare

Möglicherweise sind Benutzername und Passwort erforderlich.

Weitere Informationen zu openfiles erhalten Sie unter hier .

7
sky100

Ich glaube, Sie werden auf den Beitrag von Sky100 zurückgreifen wollen, da er korrekt ist, nicht um Ihnen das zu liefern, was Sie gefragt haben, sondern um Ihnen das zu liefern, was Sie zur Lösung Ihres Problems benötigen. Sie müssen die gesperrte ID-Nummer über den Befehl "openfile/query/v" (ausführlich) referenzieren, da er Ihnen die benötigten Daten liefert. Suchen Sie nach dem Dateinamen in der angegebenen Liste. Die Daten zeigen an, für welches Element das Lesen und Schreiben aktiviert ist, und geben zusammen mit diesem eine bestimmte ID-Nummer an. Nein, Sie können möglicherweise nicht feststellen, auf welchem ​​bestimmten System die Datei gesperrt ist. Mit den bereitgestellten Tools können Sie diesen Benutzer jedoch von der Datei trennen. Hier ist eine Schritt-für-Schritt-Anleitung, um mein Geschwafel zu vereinfachen.

1) Führen Sie auf dem Dateiserver mit Administratorrechten Start> Ausführen> CMD [ENTER] aus.

2) CD Desktop [ENTER] (Sie werden bald sehen, warum.)

3) openfiles/query/v> file.txt [ENTER] (Dadurch wird eine Datei auf dem Desktop mit einer Liste aller geöffneten Dateien auf dem Server erstellt.)

4) Öffnen Sie die Datei file.txt und suchen Sie nach der Zeile, die sowohl Ihren Dateinamen als auch die Lese- und Schreibberechtigungen enthält.

5) Notieren Sie sich die ID-Nummer in dieser Zeile und kehren Sie zu Ihrer Befehlskonsole zurück.

6) OpenFiles/Disconnect/ID [ID-Nummer hier eingeben] [ENTER]

Solange Sie über Administratorrechte auf dem Dateiserver verfügen, wird das System von der Datei getrennt. Wenn Ihr System automatisiert ist, sollten sich die Dinge nach Bedarf weiterentwickeln.

Referenzen: openfiles/query /? openfiles/trennen /?

Wenn Sie ein Skript oder eine programmierte Anwendung benötigen, die auf Ihr System zugeschnitten ist, können Sie dies gerne kommentieren. Ich werde Ihnen Kontaktinformationen zu einem sehr niedrigen Preis zusammen mit technischen Informationen zur Verfügung stellen. Unterstützung für meine Bewerbung.

5
Thomas

Bei meinem Versuch, RobWs Problem zu beheben und eine alternative Lösung bereitzustellen, konnte ich seine Frage nicht beantworten.

Ich glaube, die Lösung, nach der Sie suchen, besteht darin, Überwachungsrichtlinien auf diesem System einzurichten und diese Datei dann so einzustellen, dass der Zugriff dieses bestimmten Benutzers überprüft wird. Die Schritte, um dies durchzuführen, können je nach Netzwerkeinrichtung variieren. Ich verweise Sie daher auf den Technet-Link von Microsoft, wie Sie verschiedene Systeme für die Überwachung einrichten.

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

Nachdem Sie dies eingerichtet haben und sichergestellt haben, dass Sie die zu überwachende Datei einrichten, indem Sie das Benutzerkonto als Auditor anhängen, sollten Sie bereit sein.

Überprüfen Sie in Zukunft einfach Ihre Sicherheitsereignisprotokolle, und obwohl jedes System aufgelistet wird (da alle denselben Benutzernamen verwenden), sollte es nicht schwierig sein, zu sortieren und zu ermitteln, welches System derzeit Lese- und Schreibzugriff auf die Datei hat.

Es kann nützlich sein, das Sicherheitsprotokoll so einzurichten, dass es alle paar Tage gelöscht wird.

Wenn dies nicht funktioniert, müssen Sie das System wahrscheinlich für jeden Hostnamen einrichten, der auf die Datei zugreift, und nicht für den Benutzernamen. Ich glaube, dies wird über die Microsoft Management Console ermöglicht.

Wenn Sie programmieren müssen, bin ich kein Geschäftsmann, der daran interessiert ist, eine Menge Geld für ein kleines Programm zu verwenden. Ich biete qualitativ hochwertige Programme zu einem Preis, vor dem selbst eine Person nicht zurückschrecken würde. Ich hoffe, dies hilft Ihnen bei der Lösung Ihres Problems.

2
Thomas

Ist das Problem, das Sie lösen möchten, das von Ihnen angegebene (dh das Zuordnen des spezifischen Clientcomputers (nicht des Benutzers) zur gesperrten Datei) oder liegt ein Sperrproblem vor, das Sie beheben müssen?

Wenn letzteres helfen würde, würde ich mir zwei Dinge ansehen:

  • Überprüfen Sie den AV, der auf Ihren Clients installiert ist. Ich habe festgestellt, dass mehrere clientseitige AV-Geräte ein ernsthaft unangenehmes anomoles Sperrverhalten für Freigaben verursachen.

  • Versuchen Sie, opportunistisches Sperren zu deaktivieren, indem Sie den Registrierungswert EnableOpLocks auf 0 setzen.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameter EnableOplocks REG_DWORD 0 oder 1 Standard: 1 (aktiviert)

Dies verringert die Leistung etwas, sollte aber nichts beschädigen.

Ich würde gerne sehen, dass jemand Ihre gestellte Frage tatsächlich beantwortet - es ist ein interessantes Problem.

2
Helvick

Wenn möglich, würde ich auch verschiedene Benutzer verschiedenen Kiosken zuweisen - dies könnte Ihnen bei der Analyse anderer Protokolle helfen ...

Wenn dies nicht möglich ist: Überblick über eine mögliche Lösung: Eine Lösung könnte darin bestehen, ein Tool wie sysinternals processmonitor mit einem geeigneten Filter (für die betreffende Datei) auf den Kiosken auszuführen (ich weiß nicht, ob Sie es ausblenden können). Es gibt einige Befehlszeilenoptionen, mit denen Sie spielen können, um die erfassten Daten in einer Datei zu speichern.

Sammeln Sie diese an den verschiedenen Kiosken und importieren Sie sie z. Excel und suchen Sie nach dem, der nicht geschlossen wurde ...

1
reiniero

Ich erinnere mich, dass es in Windows ein grafisches Tool gab, mit dem gebrauchte Freigaben und gesperrte Dateien überprüft werden konnten.

Es sollte sich in den "Systemtools" unter "Computerverwaltung" (~ übersetzt aus dem Französischen ...) unter dem Namen "freigegebene Ordner" befinden.

0
petrus

Ich weiß, dass dies sehr alt ist, aber ADSI bietet die WinNT: // -Schnittstelle, über die Sie auf den LANMANSERVER-Dienst zugreifen und nach Eigenschaften fragen können, die bereits im mmc-Snapin "Freigegebene Ordner" verfügbar sind. Ich suche derzeit nach einer Möglichkeit, einen Host nd einen Benutzer mit einer geöffneten Datei zu verknüpfen.

0
mbrownnyc

Was ist mit dem Befehl netstat, um dies zu bestimmen?

netstat -an | find ":445"

Dies sollte Ihnen die IP-Adressen der angeschlossenen Maschinen geben.

Wenn Sie die Hostnamen anstelle der IP-Adressen verwenden möchten, verwenden Sie

netstat -a | find "Microsoft-ds"

die Ausführung dauert jedoch länger, insbesondere auf ausgelasteten Dateiservern oder Domänencontrollern, da viele Host-Suchvorgänge durchgeführt werden müssen.

Beachten Sie außerdem, dass die Ergebnisse eingehende, ausgehende und inaktive Abhörports anzeigen.

Eingehende Verbindungen zeigen Folgendes an: 445 in der linken Spalte, ausgehende Verbindungen in der rechten Spalte.

Sie können alle Ergebnisse mit dem Status "LISTENING" sowie alle Zeilen, in denen nur lokale IP-Adressen (z. B. 0.0.0.0 oder 127.0.0.1) oder der Hostname des Computers angezeigt werden, ignorieren, wenn Sie die Option -n nicht verwenden.

Zum Beispiel:

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

Der einzige verbundene Host hier ist 192.168.16.87. Die Verbindungen zu 192.168.16.24 sind ausgehend. Alle anderen Verbindungen sind lokale Verbindungen.

0
Bryan