blowdow
Goto Top

Netzlaufwerk abfragen und in einer Variable speichern

Hallo zusammen

Mein Ziel ist es, nach einem bestimmten Netzlaufwerk auf einem Client zu suchen. Dabei soll es mir in eine Variable das aktuelle Netzlaufwerk speichern.

Und jetzt noch ein bisschen verständlicher ausgedrückt face-smile :

Auf jedem Client ist ein Netzlaufwerk mit dem Buchstaben N verbunden. Jeder Client kann aber unter dem Laufwerkbuchstaben N mit einem anderen Netzlaufwerk verbunden sein.

Mögliche Netzlaufwerke sind z.B.:

S123456
S987654
S565656
S919191
usw...

Beim Client soll es nun abfragen, welches Netzlaufwerk hinter dem Laufwerkbuchstaben N liegt. Dabei kann ich z.B. die cmd-Abfrage (net use) machen. So listet es mir alle Laufwerkbuchstaben aus.

Ich sehe hier z.B.:

Status Local Remote Network
O: \S987654\DFS Microsoft Windows Network
N: \\S123456\UserID$ Microsoft Windows Network


Nun sehe ich ja von blossem Auge, dass der User mit dem Netzlaufwerk S123456 verbunden ist. Jetzt komme ich aber nicht mehr weiter. Ich möchte anhand "net use" dann nur das gefundene Netzlaufwerk in eine Variable speichern (S123456). Ich weiss aber leider nicht, wie ich das anstellen soll.

Vielleicht kennt ihr ja noch einen besseren Befehl als net use, um das Netzlaufwerk herauszufinden und in eine Variable zu speichern?

Freundliche Grüsse

Content-Key: 210934

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

Printed on: April 25, 2024 at 04:04 o'clock

Member: colinardo
colinardo Jul 09, 2013 updated at 11:39:25 (UTC)
Goto Top
Hallo blowdow,
könntest du z.B. so machen:
set LWN=
for /f "tokens=2,3" %%k IN ('net use ^| findstr "N:"') DO @(if "%%k" == "N:" set LWN=%%l)  
LWN enthält dann den Freigabepfad.

wenn du nur die ersten 7 Zeichen des Pfads brauchst -->(S123456) nimm dies:
@echo off & setlocal ENABLEDELAYEDEXPANSION
set LWN=
for /f "tokens=2,3" %%k IN ('net use ^| findstr "N:"') DO @(  
	if "%%k" == "N:" (  
		set lw=%%l
		set LWN=!lw:~2,7!
	)
)
echo !LWN!
Grüße Uwe
gelöste Beitrage bitte auch als solche markieren.Danke
Member: blowdow
blowdow Jul 09, 2013 at 13:17:09 (UTC)
Goto Top
Hey Uwe

Perfekt! Das klappt ja auf anhieb! face-smile

Herzlichen Dank für deine schnelle Hilfe!

Gruss
Member: blowdow
blowdow Jul 09, 2013 at 14:06:02 (UTC)
Goto Top
Oooops, ich hab den Thread leider schon als Erledigt markiert, jedoch ist mir noch was eingefallen...

Mit dem Befehl "set N" erscheint folgendes im cmd:

HOMEDRIVE=N:
HOMEPATH=\
HOMESHARE=\\S123456\UserID$

Wäre cool, wenn ich da auch wieder nur die Nummer (S123456) als Variable nehmen könnte. Würde mich über eure Hilfe sehr freuen.

Grüsse
Member: colinardo
colinardo Jul 09, 2013 updated at 15:00:14 (UTC)
Goto Top
echo %HOMESHARE%
Member: bastla
bastla Jul 09, 2013 at 14:55:34 (UTC)
Goto Top
@ colinardo
Und wenn Du, anstatt "%VAR%" zu ermitteln, einfach "%HOMESHARE%" verwendest? face-wink

Grüße
bastla
Member: colinardo
colinardo Jul 09, 2013 at 14:58:56 (UTC)
Goto Top
@bastla
...Brett vorm Kopf face-wink
Member: blowdow
blowdow Jul 09, 2013 at 15:15:45 (UTC)
Goto Top
face-smile face-smile

echo %HOMESHARE% klappt ja noch besser! face-smile

Nur, wie kriege ich jetzt noch das (S123456) aus dem:

\\S123456\UserID$

Danke euch und Gruss
Member: colinardo
colinardo Jul 09, 2013 updated at 15:20:25 (UTC)
Goto Top
set VAR=%HOMESHARE:~2,7%
Member: blowdow
blowdow Jul 10, 2013 at 06:01:17 (UTC)
Goto Top
Ihr seid die Besten und auch die Schnellsten!!! face-smile

Top!!

Gruss und schönen Tag allen

blowdow
Member: Anon-Anubis
Anon-Anubis Aug 30, 2013 at 22:47:35 (UTC)
Goto Top
Probier es mal damit!

wmic netuse

oder mit:

@echo off &setlocal enabledelayedexpansion
for /F "tokens=2 delims==" %%i in ('wmic netuse get name /value') do (
set /a counter+=1
set "Name!counter!=%%i"
)

echo %Name1%
echo %Name2%

Damit wurde mir vor kurzem durch Ndoro weitergeholfen!

MFG
Anon-Anubis
Member: blowdow
blowdow Sep 03, 2013 at 09:23:31 (UTC)
Goto Top
Hallo Anon-Anubis

Genau das habe ich gesucht, das klappt super!

Herzlichen Dank und Grüsse