ampheus
Goto Top

Net use reagiert im script anders als in der Konsole

Ich habe auf dem SMB Server (Synology DS1817+) zwei Benutzer. Sagen wir "ReadWrite" und "Liesmich". Der ein hat volle Berechtigung auf den Freigaben, der andere nur Leserechte.
Ich möchte unter Win10 mir jeweils ein script schreiben, der entweder die Freigaben als "ReadWrite" oder als "Liesmich" verbindet und als Netzlaufwerk zur verfügung stellt. So dass ich mit einer Verknüpfung auf dem Desktop schnell wechseln kann.

Wenn ich in der Konsole folgendes step für step mache funktioniert das prima (natürlich mit passendem PASSWORD):

net use * /delete /yes
net use b: \\SERVER\backup PASSWORD /user:LiesMich /persistent:no
net use * /delete /yes
net use b: \\SERVER\backup PASSWORD /user:ReadWrite /persistent:no

Nach der zweiten Zeile habe ich das Laufwerk verbunden mit Leserechten, nach der vierten Zeile mit Schreibrechten. Wenn ich dann die ersten zwei wieder eingebe, habe ich wieder Leserechte

Wenn ich jetzt die ersten zwei Zeilen in einen Script stecke und die zweiten zwei in einen anderen Script, funktioniert es leider nicht. Das erste mal geht der Script. Wenn ich dann den anderen aufrufe verbindet der zwar, aber nicht den neuen Benutzer. Er scheint Benutzer und Passwort zu ignorieren. Das Verbinden geht auch viel schneller als beim ersten Aufruf (sehe ich, weil ich im Script 10 Freigaben verbinde, nicht nur eine wie hier im Beispiel). Wenn ich dann alles in der CMD Konsole eingebe, funktioniert es.

Einzige Vermutung: Beim zweiten Aufruf kommt nach dem
net use * /delete /yes
Befehl folgende Warnung:

Fortsetzen beendet die Verbindungen.

Entweder sind Dateien geöffnet, oder die Suche in den Verzeichnissen auf B: ist noch nicht abgeschlossen.

Das ist aber unabhängig ob auf Konsole oder Script (das Laufwerk wird in beiden Fällen getrennt). Aber warum verbindet er den richtigen Benutzer nur auf der Konsole aber nicht im Script? Auch Verzögerungen zwischen den Befehlen beheben es nicht. Bin etwas ratlos ob dieses Verhaltens.....

Danke.

Gruß
Thomas.

Content-Key: 343607

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

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

Member: sabines
Solution sabines Jul 17, 2017 at 08:16:24 (UTC)
Goto Top
Moin,

bau' mal PAUSE in Dein Skript und schau Dir die Ausgabe genau an.
Anstelle von PASSWORD könntest Du * eingeben, damit eine Nachfrage nach dem PW eingeleitet wird.

Gruss
Member: Pjordorf
Solution Pjordorf Jul 17, 2017 at 08:22:55 (UTC)
Goto Top
Hallo,

Zitat von @Ampheus:
Wenn ich jetzt die ersten zwei Zeilen in einen Script stecke und die zweiten zwei in einen anderen Script, funktioniert es leider nicht.
Was bedeutet denn funktioniert nicht. Damit kann keiner etwas anfangen. Kommen fehlermeldungen? Was steht in den Ereignissprotokollen deines Clients bzw. was sagt dein Samba bzw. dessen Logs? Immer als der gleiche benutzer angemeldet bzw. wird das Skript immer im gleichen benutzerkontext oder gar mal mit oder ohne erhöhten rechten ausgeführt?

Wenn ich dann den anderen aufrufe verbindet der zwar, aber nicht den neuen Benutzer. Er scheint Benutzer und Passwort zu ignorieren.
Er scheint ist daoch etwas wie hörensagen oder das märchen von Rotkäppchen. Dein Auto scheint auch ab und an nicht zu fahren, oder?

Wenn ich dann alles in der CMD Konsole eingebe, funktioniert es.
?!? Du hast doch alle 4 zeilen in einer Batchdatei drin, oder nicht? hast du gar noch ein @echo Off übrig gehabt?

Einzige Vermutung:
Brauchst nicht Vermuten, steht alles aufm Monitor, musst nur lesen face-smile

Fortsetzen beendet die Verbindungen.
Wie wäre es mit den ganzen Dialogen von A - Z?

Entweder sind Dateien geöffnet, oder die Suche in den Verzeichnissen auf B: ist noch nicht abgeschlossen.
Und? Sind Dateien geöffnet? wie lnage hält Samba da ihre Finger drauf oder dein System, dein W10? mal ein N et File mit erhöhten rechten gemacht?

Warum geht es auf der Konsole aber nicht im Script?
Wer weiß was du dort noch so an Buchstaben in deinSkript hast...

Gruß,
peter
Member: Ampheus
Ampheus Jul 17, 2017 updated at 09:40:01 (UTC)
Goto Top
Habe das Problem lokalisiert. Das Passwort hat ein Sonderzeichen enthalten welches im Script interpretiert wurde (nicht aber in der Kommandozeile). Im Script hat das dann dazu geführt, dass das "/user" nach dem Passwort fehlte, weil das Sonderzeichen auf diesen Teil angewendet wurde. Er hat dann natürlich so verbunden, also ob /user nicht angegeben worden ist, also mit dem letzten bekannten und ohne einen Fehler zu melden. Maskieren des Steuerzeichens im Passwort hat geholfen.

Danke für die Tips.

Gruß
Thomas.
Member: Pjordorf
Pjordorf Jul 17, 2017 at 14:13:23 (UTC)
Goto Top
Hallo,

Zitat von @Ampheus:
Das Passwort hat ein Sonderzeichen enthalten welches im Script interpretiert wurde
Nene, da wird nichts interpretiert. Da wird einfach ein anderer Zeichensatz verwendet wenn dein Skript gespeichert wird. Ergo kommt was anderes beim net Use an. Je nach verwendeten Editor und Speicheroption sowie eingestellten Zeichensatz kommt halt was anderes an. Speicher mal eine Txt Datei mit deutschen Umlauten. Was kommt dann an bzw. was wurde tatsächlich gespeichert? Ein Hex Editor sagt es dir face-smile
.
Gruß,
Peter