VBScript Status eines Netzlaufwerkes abfragen

0cool
Goto Top
Hey Leute,

erst mal Danke für eure Hilfe.

ein paar vorab Infos bevor ich zu meiner frage komme:

OS: Vista
Scriptsprache: Visual Basic Script
Netzlaufwerk: Es dreht sich immer um den gleichen Laufwerksbuchstaben aber bei verschiedenen Anwender. Für das Netzlaufwerk ist die Offline Syncronisation aktiviert


So jetzt meine Frage.

Wie kann ich den Status des Netzlaufwerkes anzeigen. D. H. ich will wissen ob das Netzlaufwerk auf offline oder online geschaltet ist.


Gruß

0cool

Content-Key: 167691

Url: https://administrator.de/contentid/167691

Ausgedruckt am: 29.05.2022 um 06:05 Uhr

Mitglied: vossi31
vossi31 08.06.2011 um 15:15:19 Uhr
Goto Top
Hallo Ocool,

keine Ahnung wie das geht, aber vielleicht kannst du stattdessen die Existenz einer (versteckten) Datei abfragen, die du als Dummy anlegst.

Henning
Mitglied: TsukiSan
TsukiSan 08.06.2011 um 15:15:58 Uhr
Goto Top
Hallo Ocool,

würde dir dies genügen?

Gruss
Tsuki
Mitglied: 0cool
0cool 08.06.2011 um 15:31:04 Uhr
Goto Top
Danke für eure Antworten.

Beide Vorschläge gehen leider nicht, da das Netzlaufwerk, wenn keine Netzwerkverbindung besteht im Offline Modus unter dem selben Laufwerksnamen verfügbar ist.

Wenn das ganze über die WMI verwirklichbar ist, bin ich auch zufrieden.

Gruß

0cool
Mitglied: Friemler
Friemler 08.06.2011 um 15:32:32 Uhr
Goto Top
Hallo 0cool,

evtl. nutzt die Eigenschaft IsReady des Drive-Objekts etwas:

Gruß
Friemler
Mitglied: TsukiSan
TsukiSan 09.06.2011 um 03:25:47 Uhr
Goto Top
... und falls Friemler seine Variante auch nichts hilft was ich nicht glauben möchte
hätte ich noch einen anderen Vorschlag:
Ping doch einfach das Gegenüber in bestimmten Abständen an und finde so heraus, ob's on - oder offline ist

Gruss
Tsuki
Mitglied: 0cool
0cool 09.06.2011 um 08:16:22 Uhr
Goto Top
Danke für eure Antworten, doch leider hilft mir das alles nicht weiter.

In Vista kann bei einer bestehenden Netzwerkverbindung das Netzlaufwerk offlne geschaltet werden, so als wenn die Netzverbindung offlne ist. In diesem Fall greift die offline Syncronisation und ich kann Trozdem auf die Dateine zugreifen.

Genau dies will ich abfangen.

Beim Prüfen des Netzlaufwerkes, soll er ausgeben in welchem Modus (offline / online) das Netzalufwerk ist (egal ob die Netzverbindung steht oder nicht).

Der Hintergrund folgender: Ich habe ein Backup VBScript geschrieben, dass die Daten auf ein Netzlaufwerk sichert. Da das Script bei den Anwendern ausgeführt wird und es schon vorkam das ein Anwender das Netzlaufwerk auf offline geschaltet hat bevor das Script startete. Danach wurde sein rechner platt gemacht. Blöderweise fand beim runterfahren keine Synchronisation statt.
Um so einen Fall abzufangen, bennötige ich die Abfrage über den Status des Netzlaufwerkes.

Gruß

0cool
Mitglied: Friemler
Friemler 09.06.2011 um 16:20:06 Uhr
Goto Top
Hallo 0cool,

teste mal folgende WMI-Abfrage jeweils bei Netzlaufwerk auf online/offline geschaltet:

Die Codes für ItemType in Zeile 4 sind laut MSDN folgendermaßen:
  • File=0
  • Directory=1
  • Share=2
  • Server=3

Die Codes für ConnectState in Zeile 14 laut MSDN:
  • Unknown=0
  • Offline=1
  • Online=2
Es gibt aber noch andere Codes, die auf der MSDN-Seite nicht dokumentiert sind, z.B. 4.

Daraus solltest Du Dir was stricken können.


Mal so nebenbei: Warum erstellst Du das Backup auf einer Netzwerkfreigabe, die die User zum arbeiten brauchen (sonst müsstest Du die Dateien ja nicht offline verfügbar machen)? Evtl. den Prozess ändern, dann kommen solche Fälle garnicht vor.

Gruß
Friemler
Mitglied: 0cool
0cool 08.02.2012 um 21:52:27 Uhr
Goto Top
Danke für eure Antworten.

Das Skript von Friemler hilft mir.

Gruß

0cool