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-ID: 210934

Url: https://administrator.de/forum/netzlaufwerk-abfragen-und-in-einer-variable-speichern-210934.html

Ausgedruckt am: 24.12.2024 um 01:12 Uhr

colinardo
colinardo 09.07.2013 aktualisiert um 13:39:25 Uhr
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
blowdow
blowdow 09.07.2013 um 15:17:09 Uhr
Goto Top
Hey Uwe

Perfekt! Das klappt ja auf anhieb! face-smile

Herzlichen Dank für deine schnelle Hilfe!

Gruss
blowdow
blowdow 09.07.2013 um 16:06:02 Uhr
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
colinardo
colinardo 09.07.2013 aktualisiert um 17:00:14 Uhr
Goto Top
echo %HOMESHARE%
bastla
bastla 09.07.2013 um 16:55:34 Uhr
Goto Top
@ colinardo
Und wenn Du, anstatt "%VAR%" zu ermitteln, einfach "%HOMESHARE%" verwendest? face-wink

Grüße
bastla
colinardo
colinardo 09.07.2013 um 16:58:56 Uhr
Goto Top
@bastla
...Brett vorm Kopf face-wink
blowdow
blowdow 09.07.2013 um 17:15:45 Uhr
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
colinardo
colinardo 09.07.2013 aktualisiert um 17:20:25 Uhr
Goto Top
set VAR=%HOMESHARE:~2,7%
blowdow
blowdow 10.07.2013 um 08:01:17 Uhr
Goto Top
Ihr seid die Besten und auch die Schnellsten!!! face-smile

Top!!

Gruss und schönen Tag allen

blowdow
Anon-Anubis
Anon-Anubis 31.08.2013 um 00:47:35 Uhr
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
blowdow
blowdow 03.09.2013 um 11:23:31 Uhr
Goto Top
Hallo Anon-Anubis

Genau das habe ich gesucht, das klappt super!

Herzlichen Dank und Grüsse