hallospencer
Goto Top

Wie kann ich abfragen, ob ein Netzlaufwerk auch mit dem richtigen Share verbunden ist?

Ich möchte ein Script schreiben, welches Berechtigungen setzt. Dazu muss ich abfragen, ob dieses Script auch vom richtigen Netzlaufwerk ausgeführt wird.

Wie kann per cmd oder batch überprüfen, ob ein Netzlaufwert auch mit dem richtigen (\\server\freigabename$) verbunden ist. Ich möchte damit sicherstellen, wenn dieses Script ausgeführt wird, das Netzlaufwerk Y auch mit dem richtigen Server verbunden ist und nicht von dem User getrennt und mit ein anderem verbunden wurde.
Gibt es sowas wie
if net use = \\server\ordner$ goto :OK
echo Das Laufwerk ist falsch

Ich möchte mit diesem Script nur überprüfen und keine Trennung und Verbindung von Netzlaufwerken vornehmen.
Kommentar vom Moderator Biber am May 26, 2009 um 12:39:19 Uhr
Originaltitel "Wie kann ich abfragen, ob ein Netzlaufwerk auch mit dem Richtigen verbunden ist?" bearbeitet.

Content-Key: 116780

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

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

Member: Biber
Biber May 26, 2009 at 08:10:17 (UTC)
Goto Top
Moin hallospencer,

willkommen im Forum.

Wenn Du ein konkretes Netzlaufwerk wie beschrieben prüfen willst (also z.B. das Laufwerk Yface-smile, dann..

net use Y:|FindStr /i "\\server\ordner$" &&  goto :OK  

Grüße
Biber
Member: hallospencer
hallospencer May 26, 2009 at 09:13:16 (UTC)
Goto Top
Leider funktioniert die Syntax bei mir nicht.
Ich habe es so:
net use Y:|FindStr /i "\\server.intra.Firma.de\ordner$" && goto :OK

Leider geht er nicht zu OK obwohl ich das Netzlaufwerk richtig verbunden habe. Ich habe auch schon versucht die \\ wegzulassen was auch nicht geht.
In welcher Variablen ist denn dann der Pfad des Netzwerklaufwerkes? Vielleicht kann ich dann was mit If abfrage realisieren.
Member: Biber
Biber May 26, 2009 at 09:24:22 (UTC)
Goto Top
Moin hallospencer,

lass mal bitte bei dem Suchstring das "$"-Zeichen am Ende weg.
Das gehört ja eigentlich nicht mit zum Netzwerkpfad.
Wenn Du Dich selbst daran herantasten willst, dann führe am CMD-Prompt aus
net use y:

...dann kommt in epischer Breite und ästhetische Vollendung der Ausgabetext, der mit FindStr durchflöht wird.

Eine Variable für den Pfad des Netzwerklaufwerkes ist mir nicht bekannt und mit IF-Abfragen kenn ich mich auch nicht wirklich aus.

Grüße
Biber
Member: hallospencer
hallospencer May 26, 2009 at 10:29:32 (UTC)
Goto Top
Hallo,

also ohne das $ geht es auch nicht.

Also wenn ich nur net use Y: eingebe dann kommt wenn ich @echo on stelle folgendes:
Lokaler Name Y:
Remotename \\server.intra.Firma.de\ordner$
Status OK
Öffnungen 5
Verbindungen 1

Ich muss eigendlich nur den Remotname abfragen.
Wenn ich mit Findstr abfrage, wird dann nicht alles erfragt? Muss ich nicht das Remote dann herausfiltern?
Member: Biber
Biber May 26, 2009 at 10:48:52 (UTC)
Goto Top
Moin hallospencer,

sorry, mein Fehler.

Zuerst zu Deiner letzten Zeile:
Ja. Nee.

Ja, es wird alles abgefragt - die gesamte Ausgabe von "Net use Y:" wird wie eine textdatei behandelt.
Nee - Du musst es in diesem Fall nicht auf die eine Zeile beginned mit "Remote" filtern, denn der Sharename kann definitiv nicht in einer der anderen Zeilen stehen.

Jetzt zu meinem Fehler: der FindStr-Parameter "/C:" [vergleiche den ganzen Text] fehlt noch.
Also der dritte Anlauf:
net use Y:|FindStr /i /C:"\\server.intra.Firma.de\ordner$" && goto :OK  

-oder, da Dir ja nur am Ergebnis, nicht an Details gelegen ist
net use Y:|FindStr /i /C:"\\server.intra.Firma.de\ordner$" >nul 2>nul && goto :OK  
[unterdrückt Ausgabe gefundener Zeilen und evtl. auftauchende Fehlermeldungen.

Das würde der Annäherung an Deine geplante IF-Abfrage wohl am Ehesten entsprechen.

Grüße
Biber
Member: hallospencer
hallospencer May 26, 2009 at 11:46:25 (UTC)
Goto Top
Vielen dank, die erste Syntax funktioniert super.