Umgebung:
Windows XP SP3, Windows 2003 Server
Problem:
Wir haben mehrere Dutzend Kioskcomputer mit jeweils demselben Anmeldenamen, die gelegentlich und kurz eine Datei auf einer Freigabe speichern. Die Rate ist mehrere Sperren und gibt eine Minute frei.
In letzter Zeit hat einer der Clients eine Datei exklusiv gesperrt und die Datei dann nicht freigegeben.
Wir können die Datei schließen, wenn dies passiert, aber es vergehen mehrere Minuten oder länger, und dies ist ein inakzeptabler Ausfall.
Das Problem mit der unveröffentlichten Sperre ist im letzten Monat mehrmals aufgetreten. Ich habe nach dem Kioskgerät gesucht, das für das Sperren verantwortlich ist, und um es schnell zu erkennen, 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 Tools sehen:
-Welche Dateien sind geöffnet und gesperrt. (viele Möglichkeiten)
-Welche Anmeldung hat eine bestimmte Datei geöffnet oder gesperrt. (viele Möglichkeiten) -
Auf einem bestimmten Computer ist im Allgemeinen eine Datei geöffnet. (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 dorthin?
Vielen Dank -
rauben
Antworten:
Schauen Sie sich dieses kleine Freeware-Programm ( ShareWatch ) an. Ich denke, es wird das tun, wonach Sie suchen.
Eine der aufgelisteten Funktionen: "Zeigt die Benutzer und Computer an, die mit jeder Freigabe verbunden sind, und welche Dateien geöffnet sind."
quelle
Geben Sie die Befehlszeile (CMD) ein,
Geben Sie dann Folgendes ein: openfiles / query ip der Netzwerkfreigabe
Und der Benutzername und das Passwort können erforderlich sein.
Weitere Informationen zu Openfiles finden Sie hier .
quelle
Ich glaube, Sie werden auf Sky100's Post zurückgreifen wollen, da er korrekt ist, und Ihnen nicht das zur Verfügung stellen, was Sie gefragt haben, sondern das, was Sie zur Lösung Ihres Problems benötigen. Sie müssen die gesperrte ID-Nummer über den Befehl "openfile / query / v" (verbose) referenzieren, da er Ihnen die benötigten Daten liefert. Suchen Sie in der angegebenen Liste nach dem Dateinamen. Die Daten zeigen an, bei welchem Element das Lesen und Schreiben aktiviert ist, und geben Sie 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 gleich sehen, warum.)
3) openfiles / query / v> file.txt [ENTER] (Dies erstellt eine Datei auf dem Desktop mit einer Liste aller auf dem Server geöffneten Dateien.)
4) Öffnen Sie die Datei file.txt und suchen Sie nach der Zeile, die sowohl Ihren Dateinamen als auch die Lese- und Schreibrechte 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 eintragen] [ENTER]
Solange Sie über Administratorrechte auf dem Dateiserver verfügen, wird dieses System von der Datei getrennt, und vorausgesetzt, Ihr System ist automatisiert, sollte es den Dingen ermöglichen, sich bei Bedarf weiterzubewegen.
Referenzen: openfiles / query /? openfiles / disconnect /?
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 dann Kontaktinformationen zu einem sehr günstigen Preis zusenden. Unterstützung bei meiner Bewerbung.
quelle
Ist das Problem, das Sie lösen möchten, das von Ihnen angegebene (dh ordnen Sie den bestimmten Client-Computer (nicht den Benutzer) der gesperrten Datei zu), oder liegt ein zu lösendes Sperrproblem vor?
Wenn Letzteres helfen würde, würde ich zwei Dinge betrachten:
Überprüfen Sie das auf Ihren Clients installierte AV. Ich habe festgestellt, dass mehrere clientseitige AV ein ernsthaft unangenehmes anomolöses Sperrverhalten für Freigaben verursachen.
Deaktivieren Sie das opportunistische Sperren, indem Sie den Registrierungswert EnableOpLocks auf 0 setzen.
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters 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.
quelle
Bei meinem Versuch, das Problem von RobW 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 einzurichten, dass jeder Zugriff von diesem bestimmten Benutzer überwacht wird. Die dazu erforderlichen Schritte können je nach Netzwerkeinrichtung variieren. Ich verweise Sie daher auf den Technet-Link von Microsoft, um zu erfahren, wie Sie verschiedene zu prüfende Systeme einrichten.
http://technet.microsoft.com/en-us/library/cc787268(WS.10).aspx
Nachdem Sie dies eingerichtet haben, müssen Sie sicherstellen, dass Sie die spezifische Datei, die Sie überwachen möchten, durch Anhängen des Benutzerkontos als Auditor einrichten. Dann sollten Sie bereit sein.
Überprüfen Sie einfach Ihre Sicherheitsereignisprotokolle in der Zukunft, 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, dass dies über die Microsoft Management Console möglich ist.
Auch wenn Sie programmieren müssen, bin ich kein Geschäftsmann, der viel Geld für ein winziges Programm ausgeben möchte. Ich biete qualitativ hochwertige Programme zu einem Preis, vor dem sich auch ein Einzelner nicht scheuen würde. Ich hoffe, dies hilft Ihnen bei der Lösung Ihres Problems.
quelle
Wenn möglich, würde ich auch verschiedenen Kiosken unterschiedliche Benutzer zuweisen - dies könnte Ihnen bei der Analyse anderer Protokolle helfen ...
Wenn dies nicht möglich ist: Lösungsvorschlag: 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 (Sie wissen nicht, ob Sie ihn ausblenden können). Es gibt einige Befehlszeilenoptionen, mit denen Sie die erfassten Daten in einer Datei speichern können.
Sammeln Sie diese an den verschiedenen Kiosken, importieren Sie sie zB in Excel und suchen Sie die, die nicht geschlossen wurde ...
quelle
Was ist mit dem Befehl netstat, um dies zu bestimmen?
Dies sollte Ihnen die IP-Adressen der angeschlossenen Maschinen anzeigen.
Wenn Sie die Hostnamen anstelle der IP-Adressen verwenden möchten, verwenden Sie
Die Ausführung dauert jedoch länger, insbesondere auf ausgelasteten Dateiservern oder Domänencontrollern, da viele Hostsuchvorgänge erforderlich sind.
Bedenken Sie auch, dass die Ergebnisse eingehende, ausgehende und inaktive Abhörports anzeigen.
Bei eingehenden Verbindungen wird in der linken Spalte: 445 und bei ausgehenden Verbindungen in der rechten Spalte: 445 angezeigt.
Sie können alle Ergebnisse mit dem Status 'LISTENING' ignorieren 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, wenn Sie die Option -n nicht verwenden.
Beispielsweise:
Der einzige hier verbundene Host ist 192.168.16.87. Die Verbindungen zu 192.168.16.24 sind ausgehend. Alle anderen Verbindungen sind lokale Verbindungen.
quelle
Ich erinnere mich, dass es in Windows ein grafisches Tool gab, mit dem verwendete Freigaben und gesperrte Dateien überprüft werden konnten.
Es sollte sich in den "System-Tools" unter "Computerverwaltung" (~ übersetzt aus dem Französischen ...) unter dem Namen "freigegebene Ordner" befinden.
quelle
Ich weiß, dass dies sehr alt ist, aber ADSI bietet die WinNT: // - Schnittstelle, mit der Sie auf den LANMANSERVER-Dienst zugreifen und Eigenschaften abfragen können, die bereits im MMC-Snapin "Freigegebene Ordner" verfügbar sind. Ich recherchiere derzeit nach einer Möglichkeit, einen Host und einen Benutzer mit einer offenen Datei zu verknüpfen .
quelle
Wenn ich es wäre und ich Zugriff auf einen Linux-Computer im selben Subnetz hätte ... würde ich einen tcpdump auf dem fraglichen Share-Port an der Box ausführen, auf der die Datei geöffnet ist.
Wenn Sie nicht über Unix verfügen, können Sie tcpdump weiterhin verwenden, müssen es jedoch installieren.
von Linux ... Ich würde so etwas tun: tcpdump -ieth0 -s0 -X Hostname Port 1234 | grep -i "nameoffile"
Ich weiß, dass der größte Teil der Nutzlast binär ist ... Allerdings würde ich gut wetten, dass der anfängliche Header für die Aushandlung der Authentifizierung für den Zugriff auf die Datei im Klartext vorliegt.
Dies zeigt Ihnen jeden entfernten Host, der eine Verbindung zu dieser Box herstellt, und wo sich der Dateiname in den Paketdaten befindet (falls nicht verschlüsselt oder binär).
Viel Glück! Nach meiner Erfahrung sollte jedoch Folgendes verwendet werden:
1) Geteilte Dateien sind eine schlechte Idee! Insbesondere mit Remote-Systemen, bei denen eine Datei gesperrt bleibt, wenn die Verbindung unterbrochen wird oder langsame Verbindungen bestehen.
2) Der Zugriff auf die gemeinsam genutzte Datei führt zu einer Wettlaufsituation zwischen den Clients. Vergeuden Sie wertvolle Tick-Zeit.
3) Wenn Sie eine gemeinsam genutzte Datei verwenden MÜSSEN ... Erstellen Sie unterschiedliche Benutzernamen für jede entfernte Site, damit Sie das Debuggen ordnungsgemäß durchführen können.
Bestes Szenario: Entfernen Sie die Datei und führen Sie sie in SQL ein oder erstellen Sie einen Webservice, mit dem die Clients auf die Datei oder die Daten zugreifen können.
++ Todd
quelle