Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

VBScript Status eines Netzlaufwerkes abfragen

Frage Entwicklung VB for Applications

Mitglied: 0cool

0cool (Level 2) - Jetzt verbinden

08.06.2011 um 13:50 Uhr, 7264 Aufrufe, 8 Kommentare

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
Mitglied: vossi31
08.06.2011 um 15:15 Uhr
Hallo Ocool,

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

Henning
Bitte warten ..
Mitglied: TsukiSan
08.06.2011 um 15:15 Uhr
Hallo Ocool,

würde dir dies genügen?
01.
aktIp = "192.168.0.69" ' oder "PC-Name" 
02.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
03.
If objFSO.FolderExists("\\" & aktIp & "\MeineFreigabe" ) Then 
04.
    				Wscript.echo  "Netzwerkpfad ist online." 
05.
Else 
06.
    				Wscript.echo  "Netzwerkpfad ist offline." 
07.
End If
Gruss
Tsuki
Bitte warten ..
Mitglied: 0cool
08.06.2011 um 15:31 Uhr
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
Bitte warten ..
Mitglied: Friemler
08.06.2011 um 15:32 Uhr
Hallo 0cool,

evtl. nutzt die Eigenschaft IsReady des Drive-Objekts etwas:
01.
strDrvPath = "T:" 
02.
 
03.
Set objFSO   = CreateObject("Scripting.FileSystemObject") 
04.
Set objDrive = objFSO.GetDrive(strDrvPath) 
05.
 
06.
If objDrive.IsReady Then 
07.
  strMsg = strDrvPath & "-Drive is Ready." 
08.
Else 
09.
  strMsg = strDrvPath & "-Drive is not Ready." 
10.
End If 
11.
 
12.
WScript.Echo strMsg
Gruß
Friemler
Bitte warten ..
Mitglied: TsukiSan
09.06.2011 um 03:25 Uhr
... 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
01.
Dim Start 
02.
Start = 1 
03.
 
04.
do while Start = 1 
05.
strMachines = "192.168.0.11;PC-Name1;PC-Name2;192.168.99" 
06.
aMachines = split(strMachines, ";") 
07.
  
08.
For Each machine in aMachines 
09.
    Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._ 
10.
        ExecQuery("select * from Win32_PingStatus where address = '"_ 
11.
            & machine & "'") 
12.
    For Each objStatus in objPing 
13.
        If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then  
14.
            WScript.Echo("Computer " & machine & " ist offline")  
15.
        Else 
16.
	    WScript.Echo("Computer " & machine & " ist online") 
17.
	End If 
18.
    Next 
19.
Next 
20.
Wscript.Sleep 60000 
21.
Loop
Gruss
Tsuki
Bitte warten ..
Mitglied: 0cool
09.06.2011 um 08:16 Uhr
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
Bitte warten ..
Mitglied: Friemler
09.06.2011 um 16:20 Uhr
Hallo 0cool,

teste mal folgende WMI-Abfrage jeweils bei Netzlaufwerk auf online/offline geschaltet:
01.
strComputer = "." 
02.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
03.
 
04.
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OfflineFilesItem WHERE ItemType=2",,48) 
05.
 
06.
For Each objItem In colItems 
07.
  Wscript.Echo "ItemName                     : " & objItem.ItemName 
08.
  Wscript.Echo "ItemPath                     : " & objItem.ItemPath 
09.
  Wscript.Echo "ItemType                     : " & objItem.ItemType 
10.
 
11.
  If Not IsObject(objItem.ConnectionInfo) Then 
12.
    Wscript.Echo "ConnectionInfo: <NULL>" 
13.
  Else 
14.
    Wscript.Echo "ConnectionInfo.ConnectState  : " & objItem.ConnectionInfo.ConnectState 
15.
    Wscript.Echo "ConnectionInfo.OfflineReason : " & objItem.ConnectionInfo.OfflineReason 
16.
  End If 
17.
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
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
Bitte warten ..
Mitglied: 0cool
08.02.2012 um 21:52 Uhr
Danke für eure Antworten.

Das Skript von Friemler hilft mir.

Gruß

0cool
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Entwicklung
gelöst Get ip from external txt file and use in vbscript (5)

Frage von thankusomuch zum Thema Entwicklung ...

LAN, WAN, Wireless
Cisco AccessPoint 1131 - Status LED Red Radio LED blinkt rot (9)

Frage von 1x1speed zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...