stevie72
Goto Top

Ich finde den Fehler in Batch nicht

Hallo Forum,
Ich brauche Hilfe denn ich habe eine Batch die nicht richtig läuft..
Die Passwort Kryptik mit *** habe ich übernommen .. die Funktioniert soweit
Das Programm prüft ob das Netzlauferk gemounted ist. Wenn ja dann Ende - Wenn nein dann user eingabe mit passwort
dann mounten..


echo off

chcp 1252>nul
set ue=ü
set ae=ä
set oe=ö
set Uue=Ü
set Aae=Ä
set Ooe=Ö
set ss=ß

echo.
echo.
echo Netzlaufwerk Mounten
echo.

set quellverzeichnis= \\netzlaufwerk.. bla bla\

If not exist %quellverzeichnis% (
ECHO Laufwerk nicht gemounted. Es wird nun gemounted.
goto not_mounted
) Else (
ECHO Laufwerk ist bereits gemounted
timeout /t 5
goto ende 
)

:not_mounted
setlocal

SET /P %userid%="User: "  
call :ReadPassword passwort="Enter Password: "  

net use %quellverzeichnis% %userid% %passwort% /persistent:no
ECHO Laufwerk ist nun bereit
REM timeout /t 5

IF ERRORLEVEL 1 goto ende
else echo Unbekannter User oder falsches Passwort

:ende

Exit


  

Content-ID: 5206654681

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

Ausgedruckt am: 25.11.2024 um 11:11 Uhr

cse
cse 17.04.2024 um 14:27:42 Uhr
Goto Top
hi,

kommt ja immer auf dein Umfeld an, wenn du einen DC hast, mach das über GPOs und Laufwerksmapping, ist viel smoother.

ansonsten, als ich noch mit Scripten gemappt habe --> einfach nach Zugehörigkeit geguckt (Gruppen) und grundsätzlich bei jedem start: net use Laufwerksbuchstabe %quellverzeichnis% /persistent:YES

weil wie du persistent:NO hast, würde imo bedeuten dass du das ohnehin jedes mal neu mappen musst und du dir so alles an abfragen sparen kannst ;)

ach so dein Script dürfte nicht laufen, weil du keine Laufwerksbuchstaben vergeben hast.

net use %quellverzeichnis% %userid% %passwort% /persistent:no

-->

net use Z: %quellverzeichnis% %userid% %passwort% /persistent:no


greetz
cse
stevie72
stevie72 17.04.2024 aktualisiert um 14:37:43 Uhr
Goto Top
Hallo cse
ja, das hat seine richtigkeit mit dem fehlen des Laufwerk Buchstaben.

net use %quellverzeichnis% %userid% %passwort% /persistent:no

Diesen Code habe ich verwendet. Nur, was nicht klappt - erstmal überprüfen ob das Laufwerk bereits gemounted ist wenn ja weiter - wenn nein dann mounten ...

Würde es evtl. möglich sein zu überprüfen ob ein Laufwerks Buchstabe vergeben ist und dann einen anderen zuweisen?

Grüße Stefan
cse
cse 17.04.2024 aktualisiert um 14:45:15 Uhr
Goto Top
vielleicht stehe ich aufm schlauch aber fasse mal zusammen:

du willst ein Laufwerk verbinden wenn es nicht da ist, gleichzeitig prüfst du aber gar nicht auf das Laufwerk sondern auf einen unc Pfad. später verbindest du weiterhin kein Laufwerk ;)

das kann so nicht funktionieren.

spiel doch mal deine IF durch... du fragst nach Pfad \\serverxyz --> Resultat = ja gibt es --> kein Mapping.


IF EXIST C:\ (GOTO yes) ELSE (GOTO no)
ist dein Freund.

wenn du keine LW Buchstaben vergibst, kannst du auch nicht prüfen ob diese existieren.
und wie gesagt, schenke dir das doch indem du immer (bei jedem ausführen) den net use Befehl samt persistent:yes machst.
stevie72
stevie72 17.04.2024 aktualisiert um 14:54:43 Uhr
Goto Top
Hallo cse,
ich kann doch ein Netzlaufwerk beim Hochfahren des Rechners verbinden.
Dazu muss ich doch nicht unbedingt den laufwerksbuchstaben angeben ..
quasi temporär gemapped
 Temporary Mapped Drive

net use * "\\server\my media" /persistent:no  

In this example, we used the net use command to connect to the my media shared folder
 on a computer named server. The my media folder will be mapped to the highest available 
drive letter [*], which in our example happens to be y:, but we don't want to continue mapping   
this drive every time we log onto the computer [/persistent:no]. 

Grüße, Stefan
cse
cse 17.04.2024 um 15:00:24 Uhr
Goto Top
steht doch da dass er sich einen Buchstaben aussucht, bekommst den höhchsten freien Buchstaben (ggf. Z). Das hilft dir halt nicht weiter weil das je nach PC unterschiedlich ausfallen kann, wenn Z schon in Verwendung ist. Du bekommst also so oder so einen Fehler/dein Script läuft nicht.
Lege also besser einen Buchstaben fest und prüfe auf das Laufwerk, auf einen Pfad bringt nichts. Das geht never.

und ja wenn "no" ist es temporär. Warum dann auf ein gemapptes Laufwerk prüfen, wenn es doch eh nur temp sein soll?

komme nicht so richtig mit was der use case ist ;)
cse
cse 17.04.2024 um 15:02:04 Uhr
Goto Top
ach ja im Script hast du gekonnt den

*

weggelassen bei net use ;)
kpunkt
kpunkt 17.04.2024 um 15:03:51 Uhr
Goto Top
Öhm...wenn es doch sowieso den höchsten nicht verwendeten Laufwerksbuchstaben verwendet, wieso willst du da was abfragen und einen anderen Buchstaben verwenden? Das würde ja nur Sinn machen, wenn du das nicht temporär machen wolltest.

Ich weiß ehrlich nicht so genau, was du denn tatsächlich machen willst.
Ach ja.... +1 für GPO
stevie72
stevie72 17.04.2024 um 15:27:08 Uhr
Goto Top
Vieleicht brigt das etwas Licht ins Dunkle warum ich ein temporäres Laufwerk mappen möchte.
Also, verschiedene Rechner sind im Netzwerk geschaltet. Verwenden unterschiedliche Netzlaufwerke.
Jetzt wäre es fein wenn ich ein Laufwerk ohne Laufwerksbuchstaben mounten könnte.
Danach wieder unmouten und fertig ..
kpunkt
kpunkt 17.04.2024 um 15:39:05 Uhr
Goto Top
Ganz ehrlich....Setz den Usern lieber einen Link mit UNC zur Freigabe auf den Desktop.
cse
cse 17.04.2024 um 15:54:09 Uhr
Goto Top
und das geht eben nicht. machs wie kpunkt schrieb. Verknüpfung auf DT und gut ist.
stevie72
stevie72 17.04.2024 aktualisiert um 15:57:39 Uhr
Goto Top
Mache ich.
Vielen Dank für Eure Hilfe!
Ein schönen Tag noch.
Stefan