maxlantha
Goto Top

Datei automatisch schließen.

Hallo Administrator Community,
ich brauch eure Hilfe. Nämlich geht es darum eine öffentliche Datei auf dem Server schließen zu lassen.
Heißt: Eine Datei von allen Mitarbeitern geöffnet wird, muss um z.B. 10 Uhr bei allen automatisch geschlossen werden, weil sie aktualisiert wird. Und deshalb eben geschlossen sein muss.
Ansätze wie UnLocker oder andere Programme find ich bisschen hart für so ne Nuss. Im Grunde soll ja nur die Datei bei allen abgeschossen werden.
Am besten wäre ein Script via cmd oder eine Batch Datei.
btw. der Befehlt Net File scheidet schon direkt aus, da ich ja die ID der Datei dafür brauche. Weiters wird diese ja verändert wenn jemand die Datei öffnet und wieder schließt. Deshalb meine Frage ob sich hier jemand auskennt und mir weiterhelfen könnte.
Nochmal:
Ich weiß nur Datei Namen und Pfad. Die Datei muss automatisch bei allen Benutzern des Netzwerkes automatisch geschlossen werden und möglichst automatisch.
MfG MaxLantha

Content-ID: 211519

Url: https://administrator.de/forum/datei-automatisch-schliessen-211519.html

Ausgedruckt am: 23.12.2024 um 18:12 Uhr

templier
templier 15.07.2013 um 16:07:15 Uhr
Goto Top
Zitat von @MaxLantha:
Ansätze wie UnLocker oder andere Programme find ich bisschen hart für so ne Nuss. Im Grunde soll ja nur die Datei bei allen abgeschossen werden.
Ist das m.E. nicht das gleiche?
templier
templier 15.07.2013 um 16:10:05 Uhr
Goto Top
Ich würde hier vielleicht mit einem VBS-Script ansetzen, die die Datei, oder den Prozess, "sauber" beendet. So ein Problem hatten wir auch mal in einem Projekt - Aber ich bin da im VBS zu unfit (reicht für den Hausgebrauch) um jetzt zu sagen, wie das damals in der Firma gelöst wurde.

Viele Grüsse
Ralph
MaxLantha
MaxLantha 15.07.2013 um 16:18:28 Uhr
Goto Top
Naja, VBS hab ich leider nie gelernt. Es geht um eine PDF Datei, noch nebenbei (sollte es jemanden intressieren). Mit dem Unlocker hab ich gemeint, eigens ein Programm installieren ist schon herb. Das muss dann auch erst automatisch gestartet werden usw. Deshalb wäre mir ein CMD Befehlt, Batch Datei oder ähnliches lieber.. MfG MaxLantha
colinardo
colinardo 15.07.2013 um 16:23:39 Uhr
Goto Top
Hallo MaxLantha,
sie meinen Kommentar in diesem Post: Offene Sitzungen auf einer Datei beenden

Grüße Uwe
templier
templier 15.07.2013 um 16:29:27 Uhr
Goto Top
Gut, das das in VBS geht, das weiss ich, da ich immer mein Outlook sauber beenden lasse bevor ich das Backup (mit Robocopy) von meinen PC´s mache. Und wenn es sich in im Systray "versteckt" übersehe ich es manchmal. Ist nicht viel Textcode.

In wie weit so etwas in einer CMD möglich ist - Keine Ahnung, aber es gibt hier sehr viele die darin recht Fit sind und sich bestimmt zu dem Thema melden werden.

Viele Grüsse
Ralph
MaxLantha
MaxLantha 15.07.2013 um 16:45:20 Uhr
Goto Top
Ich habe mir das Tool heruntergeladen. Jetzt heißt es zu verstehen wie es funktioniert. Bzw. will es nicht so wie ich glaube.. Ich werde mich evtl morgen weiters nochmal melden.
Wie funktioniert es den jetzt nun, dass der Task gekillt wird. Bei mir öffnet sich die CMD nur kurz und schließt sich automatisch, was ich nicht verstehe wieso. Egal mal schauen ob es geht.
colinardo
colinardo 15.07.2013 um 16:49:51 Uhr
Goto Top
Zitat von @MaxLantha:
Ich habe mir das Tool heruntergeladen. Jetzt heißt es zu verstehen wie es funktioniert. Bzw. will es nicht so wie ich
glaube.. Ich werde mich evtl morgen weiters nochmal melden.
Wie funktioniert es den jetzt nun, dass der Task gekillt wird. Bei mir öffnet sich die CMD nur kurz und schließt sich
automatisch, was ich nicht verstehe wieso. Egal mal schauen ob es geht.
lesen kannst du doch oder ?
http://technet.microsoft.com/en-us/sysinternals/bb897552.aspx
Auf dem Server das hier ausführen lassen...
psfile "DeineDatei.pdf" -c  
colinardo
colinardo 15.07.2013, aktualisiert am 31.10.2013 um 13:53:17 Uhr
Goto Top
via VBS kannst du folgendermaßen bestimmte geöffnete Resourcen von den Usern auf dem Server schließen:
(in Zeile 1 und 2 noch an deine Umgebung anpassen)
COMPUTERNAME="SERVERNAME"  
NAME_DES_FILES = "Name deines PDFs oder inklusive Pfad"  

Set objShell = CreateObject("WScript.Shell")  
Set objConnection = GetObject("WinNT://" & COMPUTERNAME & "/LanmanServer")  
Set colResources = objConnection.Resources

For Each objResource in colResources
    if Instr(1,LCase(objResource.Path),LCase(NAME_DES_FILES),1) > 0 then
	    wscript.echo "Schließe Resource mit der ID: " & objResource.Name & " von User: " & objResource.User  
	    objShell.Run "net file """ & objResource.Name & """ /close"  
    end if
Next
dann das VB-Script in der Batch so ausführen:
cscript //NOLOGO script.vbs

face-wink Uwe
76109
76109 15.07.2013 um 18:37:06 Uhr
Goto Top
Hallo Uwe!

Der InStr-Funktion könnte man eventuell noch ein 'vbTextCompare' spendieren?face-wink
if Instr(1, objResource.Path, NAME_DES_FILES, vbTextCompare) > 0 then 

Gruß Dieter
MaxLantha
MaxLantha 19.07.2013 um 15:54:29 Uhr
Goto Top
Ich kenn mich damit leider nicht so gut aus, aber wenn ich die Datei als .vbs speicher und über die Konsole mit dem Befehl: cscript //NOLOGO script.vbs ausführe, tut sich schon etwas. Das geöffnete Dokument bleibt aber weiterhin aktiv und schließt sich nicht. Ich habe jetzt nur Lokal auf meinem PC probiert. Also meinen PC Namen "COMPUTERNAME="SERVERNAME" " hier eingetragen. Und das PDF auch mittels Pfad. Etwas scheint hier leider nicht zu funktionieren. Oder mach ich etwas falsch? Vielen Dank inzwischen.
MfG MaxLantha
colinardo
colinardo 19.07.2013 aktualisiert um 16:16:31 Uhr
Goto Top
Das Script muss auf dem Server ausgeführt werden auf dem die Datei im Netzwerk freigegeben ist !
Auch wenn das Programm beim Client geöffnet bleibt heißt das nicht das die Datei noch geöffnet ist im Hintergrund ist die Session durchaus schon geschlossen, und beim Client wird eine gecachte Version angezeigt.