Prüfen ob Laufwerk in Verwendung ist
Hi,
ich muss Abfragen ob auf ein Laufwerk zugegeriffen wird. Z.B. wenn momentan ein Programm darauf zugreift.
Ich benötige es für ein Script das ein LW nach 10 min. aushängt, wenn es gerade nicht verwendet wird.
Gibt es ein Befehl/Skript mit dem man das machen kann?
Als Beispiel:
ich muss Abfragen ob auf ein Laufwerk zugegeriffen wird. Z.B. wenn momentan ein Programm darauf zugreift.
Ich benötige es für ein Script das ein LW nach 10 min. aushängt, wenn es gerade nicht verwendet wird.
Gibt es ein Befehl/Skript mit dem man das machen kann?
Als Beispiel:
Mount Z:
Warte 10 min.
Prüfe ob LW in Verwendung.
Wenn nicht: unmount Z:
Ansonsten: warte 10 min. ...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 188186
Url: https://administrator.de/forum/pruefen-ob-laufwerk-in-verwendung-ist-188186.html
Ausgedruckt am: 22.04.2025 um 04:04 Uhr
10 Kommentare
Neuester Kommentar
Handle kann Dir die File Handles der Programme auslesen.
Siehe http://technet.microsoft.com/de-de/sysinternals/bb896655.aspx
Damit könnte man sehen, ob noch jemand was im Zugriff habt.
Wenn es ein Netzwerkshare ist, dann sieht es etwas anders aus:
Siehe http://technet.microsoft.com/de-de/sysinternals/bb896655.aspx
Damit könnte man sehen, ob noch jemand was im Zugriff habt.
handle -a | find "z:\" /i
if errorlevel 1 goto KeinZugriff
Wenn es ein Netzwerkshare ist, dann sieht es etwas anders aus:
handle -a | find "\Device\LanmanRedirector\;Z:" /i
if errorlevel 1 goto KeinZugriff
Hallo Quijote!
Ich würde das ab Zeile 5 eher so versuchen:
Ev sollten auch noch "X:\$Extend\$ObjId" und "X:\System Volume Information\tracking.log" ignoriert werden - dann als Zeile 2:
Die Erklärung für die zusätzlichen "\" findest Du übrigens mit "
Grüße
bastla
Ausgeben tut die Kommandozeile beides, also "derzeit kein Zugriff" und "Laufwerk ist besetzt".
Das ist zumindest für den Fall, dass ein Zugriff erfolgt, klar - hast Du Dir überlegt, was nach Zeile 10 in weiterer Folge passiert?Ich würde das ab Zeile 5 eher so versuchen:
set "LW=X:"
handle "%LW%\ | findstr /i "%LW%\\" && (
echo Zugriff
) || (
echo Kein Zugriff
)
handle %LW%\|findstr /ivc:"%LW%\\System Volume Information\\tracking.log" /c:"%LW%\\\$Extend\\\$ObjId"|findstr /i "%LW%\\" && (
findstr /?
" ...Grüße
bastla