45521
Goto Top

VBScript MappedLogicalDisk-Klasse zeigt Pfade nicht an

Hallo,

ich habe bis vor kurzem noch mit der Win32_NetworkConnection-Klasse die gemappten Laufwerke ausgelesen. Jetzt habe ich mein Script über Netzwerk und Remote-Zugriff laufen lassen und da konnte ich über die Klasse die gemappten Laufwerke auf den Remote-Computern nicht auslesen (lokal ging es jedes Mal).

Dann bin ich auf die Klasse Win32_MappedLogicalDisk umgestiegen (die kannte ich vorher nicht und da bin ich mehr oder weniger zufällig drauf gestoßen). Problem ist nur, daß ich über die Methode ProviderName nur bei einem von 4 Laufwerken an den Serverpfad (also wo das Laufwerk bzw. der Ordner eigentlich liegt, z.B. \\Server\Bla) komme.

Ich habe schon vermutet, daß es vielleicht daran liegt, daß die Pfade die nicht gefunden werden versteckt sind, also mit einem $ hinter dem Ordner, aber das ist nur bei 2 der 4 Laufwerke so -> er findet aber nur einen Pfad.

Kann mir da jemand weiterhelfen? Ggf. auch schreiben, wie ich die Daten auslesen kann? Ich brauche nur jeweils den Namen des gemappten Laufwerks und den Pfad.

Danke und Grüße,

Marc

Content-Key: 56704

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

Printed on: April 26, 2024 at 12:04 o'clock

Member: bastla
bastla Apr 16, 2007 at 12:06:28 (UTC)
Goto Top
Hallo Meanmachine!

Vielleicht bleibst Du doch besser bei "Win32_LogicalDisk" - zB:
strComputer = "."   
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")   
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_LogicalDisk",,48)   
For Each objItem in colItems 
    If objitem.DriveType = 4 Then
        WScript.Echo objItem.Name & " = " & objItem.ProviderName  
    End If
Next

Grüße
bastla
Mitglied: 45521
45521 Apr 16, 2007 at 12:13:20 (UTC)
Goto Top
Hi bastla,

danke für die Antwort!

Leider habe ich auch da das Problem, daß die gemappten Laufwerke remote nicht abgefragt werden (können?).

Gibt es vielleicht irgendeinen Trick/eine Möglichkeit, die Netz-Laufwerke per Remotezugriff auszulesen?

Danke und Grüße,

Marc
Member: bastla
bastla Apr 16, 2007 at 12:23:02 (UTC)
Goto Top
Hallo Meanmachine!

Nur interessehalber: Was liefert Dir denn folgende Batch-Zeile (direkt von der Commandline)?
for /f "skip=4 tokens=1-3" %i in ('net use^|find /v "ausgeführt."') do @echo %j=%k  
Zur Not ließe sich die auch aus einem Script heraus verwenden (wie zB hier gezeigt) ...

Grüße
bastla

[Edit] @ ergänzt [/Edit]
Mitglied: 45521
45521 Apr 16, 2007 at 12:34:14 (UTC)
Goto Top
Hi bastla,

also die Laufwerke auf meinem PC bekomme ich damit angezeigt.

Folgende Ausgabe bekomme ich:
H:\> echo H:=\\server\ordner1$
H:=\\server\ordner1$

H:\> echo \\server2\ordner2
\\server2\ordner2 (komischerweise ohne Laufwerksbuchstaben)

H:\> echo T:=\\server\ordner3
T:=\\server\ordner3

H:\> echo W:=\\server4\ordner1$
H:=\\server4\ordner1$

H:\> echo command = competed
command=completed

Also die lokalen findet er. Wo muß ich denn die IP des Computers anpassen/einfügen? Weil auf meinem PC kann ich es ja auch per WMI auslesen, aber Remote soll es ja gemacht werden...

Danke und Grüße,

Marc
Member: bastla
bastla Apr 16, 2007 at 12:43:47 (UTC)
Goto Top
Hallo Meanmachine!

Sorry - Deinen Wunsch, remote auszulesen, hatte ich bis jetzt konsequent überlesen. face-sad Die Woche fängt ja gut an ...

Die Batchzeile (übersichtlicher wird's übrigens, wenn Du vor das "echo" noch ein "@" setzt - ich korrigiere das mal oben) ließe sich etwa mit PsExec remote ausführen, die direkte Weiterverarbeitung habe ich aber noch nicht getestet.

Ansonsten fällt mir momentan leider nichts Vernünftiges ein ...

Grüße
bastla
Mitglied: 45521
45521 Apr 16, 2007 at 13:07:28 (UTC)
Goto Top
Hi bastla,

danke, das werde ich auf jeden Fall mal versuchen. Je nachdem was meine "Chefs" (mache im Moment mein 1.Praktikumssemester und meine Chefs sind die, für die ich das mache) meinen, ob man eine Zusatz-Software dafür "installieren" soll.

Ansonsten baue ich das ganze um, daß es per Logon-Script läuft (außer ich finde vielleicht doch noch eine Möglichkeit).

Angeblich soll man das aus der Session des jeweiligen Users auslesen können (habe ich mittlerweile in einem englischsprachigen Forum gelesen; aber wie ich die Session auslese habe ich noch nicht soooo den Plan ;) ).

Vielen Dank nochmals und Grüße,

Marc