svwg-vs
Goto Top

Laufwerk trennen wenn. Freigabe

Hallo liebe Gemeinde.
Ich bin ganz neu hier und habe eine einfache Frage (denke ich) zu batch-Skript bzw., wie ich mein Problem lösen kann. Leider kenne ich mich mit bat überhaupt nicht aus, bzw. sehr schlecht, fange erst an, es zu lernen. In dem Forum habe ich leider nichts gefunden. Kann mir vielleicht jemand helfen.
Nicht falsch verstehen, ich erwarte nicht, dass jemand mir das fertige Script schreibt. Ich brauche eventuell eine Erklärung wie und wieso.

Und zwar:
Ich möchte auf mehreren Computern per bat-Datei ein evtl. verbundenes Laufwerk trennen, aber nur, wenn das Laufwerk auf eine bestimmte Freigabe zeigt, anderenfalls nicht trennen.
Bsp.:
Wenn Laufwerk „Z:“ existiert und Z: = \\xxx\yyy\zzz, dann löschen, sonst weiter.
Wie ein Laufwerk zu trennen oder zu verbinden ist, weiß ich schon z. B. „IF EXIST Z: NET USE Z: \D \Y“

Im nächsten Schritt möchte ich in derselben batch-Datei weitere Laufwerke verbinden und am Ende den User informieren, ob alles i.O. ist, oder evtl. Fehler aufgetreten ist, weil z.B. ein Buchstabe schon belegt ist.
Zur Info: Die User haben die entsprechenden Berechtigungen, d. h. sie dürfen Bat-Dateien ausführen, Laufwerke trennen und verbinden.
Könnte\möchte mir jemand helfen?
Grüße

Content-Key: 12428554564

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

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

Member: Avoton
Avoton Feb 25, 2024 at 15:27:09 (UTC)
Goto Top
Moin,

Was spricht dagegen, die Laufwerke alle zu trennen und korrekt zu verbinden?
Sparst du dir die Überprüfung.

Gruß,
Avoton
Member: SVWG-VS
SVWG-VS Feb 25, 2024 at 19:16:06 (UTC)
Goto Top
Hallo Avaton,
danke für deine Rückmeldung.
Das ist wirklich schwierig zu erklären. Ich versuche mit einem Beispiel.
Stell dir vor, Du hast 50 User. Jeder hat ein Laufwerk, sagen wir „Z:“
Das Laufwerk „Z:“ wird aber je nach Aufgabe mit unterschiedlichen Freigaben gemappt. (ich weiß, es ist nicht richtig, ist aber so und soll auch so bleiben, es gibt halt einen bestimmten Grund dafür).
Z.B:
Bei einigen Usern ist „Z:\111“, bei den anderen „Z:\222“ und es gibt User, die „Z:\333“ haben...
Jetzt müssen alle User, die ein Laufwerk „Z:\333“ haben, ein Laufwerk „Z:\555“ bekommen.
Deswegen habe ich gefragt, ob es möglich ist, ein Laufwerk zu trennen, aber nur dann, wenn dem Laufwerk eine bestimmte Freigabe zugeordnet ist.
Ich bin der Meinung, dass das möglich ist, da bei „NET USE“ alle Informationen angezeigt werden .(Laufwerkbuchstabe + Freigabe).
Ich hoffe, dass ich jetzt verständlich erklärt habe.
Grüße
Member: Hubert.N
Hubert.N Feb 26, 2024 at 08:57:29 (UTC)
Goto Top
Moin

zwei Ansätze:
- "Quick'nDirty" legst Du in den Freigaben jeweils eine bestimmte und nur lesbare Datei ab, die Du abfragst.
if exist z:\<dateiname> (
    "mache was, wenn das Laufwerk auf die Freigabe zeigt"  
) 
oder
- frage die Freigabe mit net use ab und werte die Ausgabe aus
net use | find /I "Z:        \\xxx\yyy\zzz"  
if %errorlevel% == 0 (
    "mache was, wenn das Laufwerk auf die Freigabe zeigt"  
) 

Gruß
Mitglied: 11078840001
11078840001 Feb 26, 2024 at 10:04:41 (UTC)
Goto Top
Ich würde ja heute kein Batch mehr dafür nehmen aber egal ...

So fragt man die Freigabe einer LogicalDisk unter Batch mittels WMI ab
@echo off
for /f "tokens=2 delims==" %%a in ('wmic logicaldisk where ^(DeviceId^="Z:" AND ProviderName^="\\\\server\\freigabe"^) get DeviceID /value') do set exists=yes  
if "%exists%" == "yes" (  
   rem do something
) else (
  rem do something else
)

Powershell gibts auch mehrere Wege nach Rom für die Abfrage des Shares eines gemappten Laufwerks
if (Get-PSDrive -Name z | ? DisplayRoot -eq '\\server\freigabe'){  
    # do something
}else{
   # do something else
}
oder
if (Get-CimInstance Win32_Mappedlogicaldisk -Filter "DeviceId = 'Z:' AND ProviderName = '\\\\server\\freigabe'"){  
    # do something
}else{
   # do something else
}

🖖
Member: SVWG-VS
SVWG-VS Feb 27, 2024 at 16:30:27 (UTC)
Goto Top
Hallo zusammen
Vielen Dank für euere Tipps bzw. Vorschläge und sorry für die späte Antwort. Ich hatte keine Möglichkeit gehabt, bin die ganze Zeit unterwegs gewesen. Komme erst nächste Woche ins Büro und versuche euere Vorschläge umzusetzen. Ich schreibe dann ob‘s geklappt hat.
Grüße