Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Prüfen ob Laufwerk in Verwendung ist

Frage Entwicklung Batch & Shell

Mitglied: Quijote

Quijote (Level 1) - Jetzt verbinden

17.07.2012 um 19:19 Uhr, 2897 Aufrufe, 10 Kommentare

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:

01.
Mount Z: 
02.
Warte 10 min. 
03.
Prüfe ob LW in Verwendung. 
04.
 
05.
Wenn nicht: unmount Z: 
06.
Ansonsten: warte 10 min. ...


Mitglied: AndreasHoster
18.07.2012 um 15:11 Uhr
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.
01.
handle -a | find "z:\" /i 
02.
if errorlevel 1 goto KeinZugriff
Wenn es ein Netzwerkshare ist, dann sieht es etwas anders aus:
01.
handle -a | find "\Device\LanmanRedirector\;Z:" /i 
02.
if errorlevel 1 goto KeinZugriff
Bitte warten ..
Mitglied: Quijote
20.07.2012 um 17:31 Uhr
Danke für die Hilfe, aber das klappt leider nicht.

Wenn ich die Errorlevel mit If abfrage, kommt sowohl 1 als auch 0 dabei raus.
Ich habe das mit echo ausprobiert.
Bitte warten ..
Mitglied: AndreasHoster
23.07.2012 um 10:00 Uhr
Der Errorlevel kann nicht gleichzeitig 0 und 1 sein.
Könntest Du mal näher erläutern was Du da meinst, bzw. am Besten den Code posten, mit dem Du abfragst?
Bitte warten ..
Mitglied: Quijote
27.07.2012 um 22:12 Uhr
Tut mir leid, hat etwas gedauert.

Mein Testscript ist folgendes:

01.
start LW_X.bat 
02.
 
03.
timeout /T 5 /NOBREAK 
04.
 
05.
handle -a | find "X:\" /i 
06.
if errorlevel 1 goto KeinZugriff 
07.
if errorlevel 0 goto Zugriff 
08.
 
09.
:KeinZugriff 
10.
echo derzeit kein Zugriff 
11.
 
12.
:Zugriff 
13.
echo Laufwerk ist besetzt 
14.
 
15.
 
16.
PAUSE
Ausgeben tut die Kommandozeile beides, also "derzeit kein Zugriff" und "Laufwerk ist besetzt". Egal ob ich jetzt darauf zugreife oder nicht.
Bitte warten ..
Mitglied: bastla
27.07.2012, aktualisiert um 23:56 Uhr
Hallo Quijote!
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:
01.
set "LW=X:" 
02.
handle "%LW%\ | findstr /i "%LW%\\" && ( 
03.
    echo Zugriff 
04.
) || ( 
05.
    echo Kein Zugriff 
06.
)
Ev sollten auch noch "X:\$Extend\$ObjId" und "X:\System Volume Information\tracking.log" ignoriert werden - dann als Zeile 2:
handle %LW%\|findstr /ivc:"%LW%\\System Volume Information\\tracking.log" /c:"%LW%\\\$Extend\\\$ObjId"|findstr /i "%LW%\\" && ( 
Die Erklärung für die zusätzlichen "\" findest Du übrigens mit "findstr /?" ...

Grüße
bastla
Bitte warten ..
Mitglied: Quijote
28.07.2012 um 11:17 Uhr
Hi bastla!

Ich habe zwar nicht alles vom Code verstanden, aber wenn ich den so übernehme bekomme ich am Ende immer die Meldung "Kein Zugriff". Unabhängig davon ob ich darauf zugreife oder nicht.

Gruß
Quijote
Bitte warten ..
Mitglied: bastla
28.07.2012, aktualisiert um 11:32 Uhr
Hallo Quijote!

In die Zeile 2 ist ein Anführungszeichen reingerutscht - sollte besser so aussehen:
handle %LW%\ | findstr /i "%LW%\\" && (
Ich habe zwar nicht alles vom Code verstanden
Mein Ansatz macht eigentlich nix anderes, als Du mit den "if errorlevel"-Abfragen versucht hast (Verknüpfung mit "&&" entspricht "Errorlevel = 0" und mit "||" Errorlevel <> 0) - Du kannst das auch mit Deinem ursprünglichen
handle -a | find "X:\" /i
kombinieren ...

Grüße
bastla
Bitte warten ..
Mitglied: Quijote
29.07.2012 um 14:34 Uhr
Zitat von bastla:
In die Zeile 2 ist ein Anführungszeichen reingerutscht - sollte besser so aussehen:
handle %LW%\ | findstr /i "%LW%\\" && (

Habe ich eben ausprobiert, aber bekomme trotzdem immer die Meldung "Kein Zugriff". Funktioniert das denn bei dir?

Vielen Dank und Grüße

Quijote
Bitte warten ..
Mitglied: bastla
29.07.2012 um 17:52 Uhr
Hallo Quijote!
Funktioniert das denn bei dir?
Ja; allerdings benötigt "handle" Admin-Rechte - wenn Du also nicht mit einem Admin-User testest, würde das Dein Ergebnis erklären ...

Grüße
bastla
Bitte warten ..
Mitglied: Quijote
31.07.2012 um 15:41 Uhr
Leider bringt das auch nichts. Habe es nochmal mit einem USB-Stick gestestet (vielleicht liegts ja am Laufwerk) aber klappt auch nicht.
Bitte warten ..
Ähnliche Inhalte
Peripheriegeräte
Verwendung von drei SATA 3 LAufwerken 5,25 Zoll
gelöst Frage von Novum23Peripheriegeräte6 Kommentare

Guten Abend, ich habe derzeit drei ungenutzte Laufwerke 5,25 Zoll (alle SATA) rumliegen, ich würde diese gern in ein ...

Switche und Hubs
Verwendung Twinax
gelöst Frage von Philipp711Switche und Hubs5 Kommentare

Hallo, dies ist eine Anschlussfrage an folgenden Eintrag: Kurzfassung: Wir planen einen neuen Hyper-V-Cluster mit 3 Nodes und einem ...

Windows Server
Verwendung lokal angeschlossener Geräte
Frage von raba34Windows Server17 Kommentare

Liebe Gemeinde, ich möchte in einer RDP-Sitzung (PC mit Windows 10 Pro -> Windows Server 2012 R2) die Verwendung ...

Batch & Shell
Stringsoperation unter Verwendung von Variablen
gelöst Frage von tegwertBatch & Shell1 Kommentar

Hallo zusammen! Mit folgendem Script verändere ich den Inhalt einer Variable : Das Ergebnis "istein" wird korrekt ausgegeben. Nun ...

Neue Wissensbeiträge
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 13 StundenMikroTik RouterOS4 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 13 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 16 StundenAdministrator.de Feedback9 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin vor 21 StundenVmware

Die VMware-Anwendungen zum Umgang mit virtuellen Maschinen Fusion, Horizon Client und Workstation sowie die Plattform NSX sind verwundbar. Davon ...

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Frage von ahstaxVisual Studio24 Kommentare

Hallo, ich möchte gerne ein vb.net-Tool schreiben, das am Ende eine Outlook-E-Mail erzeugt. Grundsätzlich ist mir klar, wie das ...

Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server16 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...