VBScript Status eines Netzlaufwerkes abfragen
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 167691
Url: https://administrator.de/contentid/167691
Ausgedruckt am: 25.11.2024 um 10:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo 0cool,
evtl. nutzt die Eigenschaft
Gruß
Friemler
evtl. nutzt die Eigenschaft
IsReady
des Drive
-Objekts etwas:strDrvPath = "T:"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDrive = objFSO.GetDrive(strDrvPath)
If objDrive.IsReady Then
strMsg = strDrvPath & "-Drive is Ready."
Else
strMsg = strDrvPath & "-Drive is not Ready."
End If
WScript.Echo strMsg
Gruß
Friemler
... 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
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
Dim Start
Start = 1
do while Start = 1
strMachines = "192.168.0.11;PC-Name1;PC-Name2;192.168.99"
aMachines = split(strMachines, ";")
For Each machine in aMachines
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
ExecQuery("select * from Win32_PingStatus where address = '"_
& machine & "'")
For Each objStatus in objPing
If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
WScript.Echo("Computer " & machine & " ist offline")
Else
WScript.Echo("Computer " & machine & " ist online")
End If
Next
Next
Wscript.Sleep 60000
Loop
Gruss
Tsuki
Hallo 0cool,
teste mal folgende WMI-Abfrage jeweils bei Netzlaufwerk auf online/offline geschaltet:
Die Codes für
Die Codes für
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
teste mal folgende WMI-Abfrage jeweils bei Netzlaufwerk auf online/offline geschaltet:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OfflineFilesItem WHERE ItemType=2",,48)
For Each objItem In colItems
Wscript.Echo "ItemName : " & objItem.ItemName
Wscript.Echo "ItemPath : " & objItem.ItemPath
Wscript.Echo "ItemType : " & objItem.ItemType
If Not IsObject(objItem.ConnectionInfo) Then
Wscript.Echo "ConnectionInfo: <NULL>"
Else
Wscript.Echo "ConnectionInfo.ConnectState : " & objItem.ConnectionInfo.ConnectState
Wscript.Echo "ConnectionInfo.OfflineReason : " & objItem.ConnectionInfo.OfflineReason
End If
Next
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
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