Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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
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, 7698 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 ..
Ähnliche Inhalte
Windows Server
Status RDP Session via Webseite abfragen (2)

Frage von NetMare zum Thema Windows Server ...

VB for Applications
gelöst VBScript und OR (5)

Frage von Invisan zum Thema VB for Applications ...

Microsoft Office
gelöst Outlook VBScript (4)

Frage von Nebellicht zum Thema Microsoft Office ...

Windows 7
gelöst VBScript - HTML Probleme mit Schriftgröße (5)

Frage von MedicalAd zum Thema Windows 7 ...

Neue Wissensbeiträge
Humor (lol)

Taschenrechner in IOS kaputt!

(5)

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

Sicherheit

Kanadischer Geheimdienst veröffentlicht erstmals Sicherheitssoftware

(3)

Information von BassFishFox zum Thema Sicherheit ...

Virtualisierung

Docker Monitoring und Steuerung per "sen"

Tipp von Frank zum Thema Virtualisierung ...

Heiß diskutierte Inhalte
Windows 7
Abbruch bei Brennvorgang (19)

Frage von Simulant zum Thema Windows 7 ...

Router & Routing
Externe IP von innen erreichbar machen (16)

Frage von Windows10Gegner zum Thema Router & Routing ...

Firewall
WIndows 7 RDP Massen Angriff (14)

Frage von Motte990 zum Thema Firewall ...