Forum: PC-Programmierung Batch: Netzlaufwerk verbinden & trennen


von Matthias S. (da_user)


Lesenswert?

Hi,

kann mir mal jemand bitte unter die Arme greifen?

Ich bräuchte ein paar Windwos-Batch-Zeilen die ein Netzwerkordner als 
Netzlaufwerk auf einen (x-beliebigen) freien Laufwerksbuchstaben mappen 
und mir diesen Laufwerksbuchstaben dann als Variable oder so 
breitstellt, dass mein Skipt dann andere Dinge damit machen kann.
Sollte das Verbinden des Netzlaufwerkes schief gehen, soll das Skript 
mit einer Fehlermeldung beenden.

Und abschließend soll das Netzlaufwerk natürlich noch getrennt werden.

Ich weiß prinzipiell, dass mir da "net use" weiterhilft. Ich weiß aber 
nicht wie ich das dazu bekomme, sich selbst einen Laufwerksbuchstaben zu 
suchen, den Laufwerksbuchstaben bei Erfolg weiterzugeben bzw. wie ich 
bei einem evtl. Fehler abbreche.

VG
da_user

von zero-q2 (Gast)


Lesenswert?


von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Und Du musst zwingend einen Laufwerksbuchstaben verwenden?

Man kann UNC-Pfade auch direkt verwenden, ohne den Umweg über einen 
Laufwerksbuchstaben zu gehen, und (sofern Authentifizierung erforderlich 
ist) fast genauso mit "net use" arbeiten wie bei der Verwendung mit 
Laufwerksbuchstaben.
1
net use \\server\freigabe /user:benutzer password
2
3
del \\server\freigabe\blafusel.txt 
4
5
md \\server\freigabe\geraffel
6
7
echo "blabla" >> \\server\freigabe\geraffel\zeug.txt
8
9
net use \\server\freigabe /del

von x^4 (Gast)


Lesenswert?

CMD.EXE

> kann UNC-Pfade

doch nicht.

P.S.:

Statt "net use" besser mit "pushd" msppen. Der wechselt
dann gleich in das gemappte Verzeichnis...

"popd" loescht das Mapping wieder.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

x^4 schrieb:
> CMD.EXE
>
>> kann UNC-Pfade
>
> doch nicht.

Nur nicht als aktuelles Verzeichnis (mit cd), sonst sehr wohl.

von supergrobi (Gast)


Lesenswert?

> sehr wohl

stell ich mir aber anders vor.

Weil:
> nicht als aktuelles Verzeichnis

Da verzichte ich doch eher dankend und benutze pushd/popd.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn man das unbedingt braucht, muss man halt den Aufriss betreiben.

Kommt halt immer auf das Problem und den individuellen Lösungsansatz an.

Kommt Dein pushd/popd-Ansatz auch mit Authentifizierung zurecht?

von DPA (Gast)


Lesenswert?

Mein Vater hat einen Laptop, bei dem er auf Windows besteht. Alle 
Dokumente, Bilder, etc. sind auf einem Netzlaufwerk, von dem ich dann 
Weder über die Explorer GUI noch über net use habe ich es geschafft, 
dass sich das Netzlaufwerk beim Start zuverlässig verbindet. Sobald man 
es dann im Explorer anklickte, ging plötzlich alles. Am Schluss habe ich 
das ganze dann über einen Symlink gelöst, das funktioniert meiner 
Erfahrung nach am besten:
1
mklink /D C:\Share \\server\freigabe\geraffel

Wenn man dann nach C:\Share navigiert, egal ob mit cd, dem explorer, 
oder sonst was, verhält sich das so ziemlich wie ein normales lokales 
Verzeichnis. Das geht, weil die sogenannten Symlinks von Windows keine 
Symlinks sind, sondern Reparse Points.

von supergrobi (Gast)


Lesenswert?

> Aufriss betreiben

Eigentlich wird alles einfacher:
1
pushd \\server\freigabe
2
3
del blafusel.txt 
4
5
md geraffel
6
7
echo "blabla" >> geraffel\zeug.txt
8
9
popd


> Weder über die Explorer GUI noch über net use habe ich es geschafft

Tja, SMB/CIFS braucht einen Browserdienst.
Der ist in Peer-Umgebungen ohne Domänencontroller eben nicht
gerade zuverlaessig. Eintragen der Hosts in die LMHOSTS *)
mit dem Zusatz #PRE:

192.168.1.1  PC1  #PRE

hilft etwas. Geht natuerlich nur mit statischen Adressen ohne DHCP.




*) c:\WINDOWS\system32\drivers\etc\LMHOSTS

von Walter K. (vril1959)


Lesenswert?

Das unzuverlässige Mappen von Netzshares z.B. in Login-scripten unter 
Windows hat oft auch als Ursache, dass dass beim Start das Script zu 
einem Zeitpunkt ausgeführt wird, zu dem die Netzfunktionen noch nicht 
vollständig gestartet sind.
Da kein Mensch so genau weiß, wann Windows eigentlich mit Booten bzw. 
Starten fertig ist - ist das schlicht und einfach Grütze!

von supergrobi (Gast)


Lesenswert?

> Das unzuverlässige Mappen von Netzshares

Naja, wer auf die "Persistenz" von Mappings des Explorers vertraut,
hat eigentlich schon verloren.

In einem ordentlichen Script, kann man ja den Erfolg pruefen,
und ggfs. ein paar Versuche mehr machen.
(Muss ich ohne DC auch so machen.)

Aber es gibt genug Affen die mit Bananen gefüttert werden.
Bei denen sind die Scripte halt "maximal" einfach und
laufen nur bei Hochdruckwetter und 240 V Netzspannung
ohne Fehler.

von Matthias S. (da_user)


Lesenswert?

DPA schrieb:
> mklink /D C:\Share \\server\freigabe\geraffel
>
> Wenn man dann nach C:\Share navigiert, egal ob mit cd, dem explorer,
> oder sonst was, verhält sich das so ziemlich wie ein normales lokales
> Verzeichnis. Das geht, weil die sogenannten Symlinks von Windows keine
> Symlinks sind, sondern Reparse Points.

Hi,
ich glaube der Tipp war Gold wert. Wenn das richtig funktioniert, spare 
ich mir nämlich einiges an wackliges Zeug in meiner Batch-File, auf die 
eher dieses hier zutrifft:

supergrobi schrieb:
> Bei denen sind die Scripte halt "maximal" einfach und
> laufen nur bei Hochdruckwetter und 240 V Netzspannung
> ohne Fehler.

Sollte das nicht klappen habe ich beschlossen das ganze nicht mehr in 
einem Skript zu machen. Das wird zu unübersichtlich, kompliziert und 
überhaupt. Dann schreibe ich mir einfach ein kleines C# Programm, das 
mir die Aufgaben abarbeitet.
Prinzipiell wäre das natürlich auch ein schöner Zeitpunkt, um in die 
PowerShell einzusteigen, leider ist die standardmässig nicht aktiviert 
auf unseren Firmenrechnern.

von supergrobi (Gast)


Lesenswert?

Ich will deinen Optimismus ja nicht dämpfen, aber wenn das
Netzlaufwerk mal nicht zur Vefügung steht, handelt man sich
damit eher neue Probleme, wie nicht reagierende Explorerfenster,
Filedialoge von Applikation u.ä. ein.

Und wenn bei ihm ein "net use" immer erfolglos war, dann
ist bei ihm wohl eher noch was anderes faul.

von supergrobi (Gast)


Lesenswert?

> zu unübersichtlich, kompliziert und überhaupt.

Wenn dir so triviale Dinge wie ein Netzwerkmapping durchzufuehren,
auf Erfolg zu pruefen und ggfs. das ganze n-mal zu wiederholen
schon s.o. sind, solltest du vielleicht Baecker werden.

C# und Powershell bedienen sich schlussendlich der selben
schlechten Mechanismen die darunter liegen und bringen
dahingehend ueberhaupt keine Verbesserung.

von Matthias S. (da_user)


Lesenswert?

supergrobi schrieb:
> C# und Powershell bedienen sich schlussendlich der selben
> schlechten Mechanismen die darunter liegen und bringen
> dahingehend ueberhaupt keine Verbesserung.

Also sorry, ein C#-Programm kann ich doch von Grund auf übersichtlicher 
gestalten, als eine Batch-File.
Zudem sollte aus meinen Posting hervorgegangen sein, dass ich mehr 
machen will, als einfach nur ein Netzlaufwerk verbinden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.