rankor
Goto Top

Mitgeben von Benutzername und Passwort bei UNC-Pfaden

Hallo zusammen,

da Ihr mit bisher immer super gut helfen konntet, wende ich mich mit diesem Problem auch an Euch.
Und da es für Euch schlauen Köpfe bestimmt ein super einfaches Problem ist hoffe ich, dass ich Euch damit nicht nerve -.-°

Ich habe zum ersten mal eine Batch geschrieben. *Yippi*

Hintergrund: Ich habe x UNC-Pfade. Diese soll ich nacheinander öffnen und die entsprechenden Verzeichnis darunter auf Dateien überprüfen.
Soweit so gut...

Teilweise klappt das auch. Nur bei manchen UNC-Pfaden kriege ich die Fehlermelung: ""Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort"".
Ich bin nun seit 2 Tagen wie ein doofer am Googlen, finde aber wenn nur Info's zu "net use" oder ähnlichem. Aber nichts konkretes um jetzt bei einem UNC-Pfad ein Benutzername und Kennwort mit zu übergeben. Wenn ich das richtig verstehe, mounte ich ja mit "net use" ein Laufwerk. Aber ich möchte ja nur kurz drauf zugreifen und gut ist.

Bisher sieht meine Batch dementsprechend klein und beschämend aus :D

Inhalt meiner WatchDir.bat =)

@echo off

dir \\UNC-Pfad1 /O:G/S/B > C:\WatchDirFiles.txt
dir \\UNC-Pfad2 /O:G/S/B >> C:\WatchDirFiles.txt
dir \\UNC-Pfad3 /O:G/S/B >> C:\WatchDirFiles.txt
...


Meine Idee war, wie bei "net use":
@echo off

dir \\UNC-Pfad1 /benutzername /passwort /O:G/S/B > C:\WatchDirFiles.txt


Aber irgendwie war das wohl nicht die Lösung :'(

Ich hoffe Ihr könnt einem Neuling helfen.
Danke für Euch im voraus.

Gruß
Rankor aka. Johannes

Content-Key: 122914

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

Printed on: April 24, 2024 at 22:04 o'clock

Mitglied: 60730
60730 Aug 17, 2009 at 14:53:36 (UTC)
Goto Top
Servus,

das wird so nix...

denn wenn du die Usernamen und passwörter in eine Batch bauen mußt, dann ist das alles andere als sicher und sinnig.

Die Frage sollte sein, warum:

kommt denn die Abfrage nach dem password des users?
(keine Domain / keine rechte des Users auf die Freigabe)

Und dann noch ganz wichtig:

@echo off

ist die Sahnehaube für eine fix & fertige saubere Batch - solange die den Status "alpha/beta" hat - fehlen dir die infos, die du zum deguggen brauchst.


Gruß

Ansonsten

  • net use
  • pipen in datei
  • net use /delete
Member: Rankor
Rankor Aug 17, 2009 at 15:12:27 (UTC)
Goto Top
Hallo TimoBeil,

danke schonmal für Deine schnell Antwort.

Warum die Abfrage kommt, verstehe ich ja eben nicht. Wenn ich den Pfad so in den explorer eingebe, muss ich nicht extra User und Passwort eingeben.

Die Frage ist aber nun, wie kann bzw. wie muss ich es machen um Benutzer und Passwörter mitzugeben? Oder sollte man das lieber ganz lassen in einer Batch? Und ist sowas sehr schwer zu schreiben?

Wenn ich "net use" benutzen würde. Wielange braucht der dann ca. um das Laufwerk zu mounten und ist es schwer es wieder zu unmounten??

Und was meinst Du mit "pipen in datei" ?

Sorry für die dummen Fragen face-sad Aber ich möchte es ja wirklich verstehen & lernen!!

MfG
Rankor aka. Johannes
Member: miniversum
miniversum Aug 17, 2009 at 16:00:18 (UTC)
Goto Top
Er hats dir ja im prinzip schon vorgegeben.
1. Mit net use den Pfad inem Laufwerksbuchstaben zuordnen, und dabei eben Benutzername und Passwort mit angeben.
2. Den inhalt des Laufwerks auflisten (mit dir) und die Ausgabe in eine Datei umleiten (das was du schon hast und das was er als "pipen" bezeichnet.
3. Die Zuordnung wieder aufheben.
Das ganze dann für jeden Pfad nach einander. Vielleicht ja auch als Schleife? Die Zuordnung und das Aufheben geht schnell und ist in der Hilfe zu net use (net use /?) erklärt.
Dennoch ist es, wie schon erwähnt wurde, ncith wirklich gut Passwörter in Klartext ind er Batch zu haben.
Mitglied: 60730
60730 Aug 17, 2009 at 16:31:18 (UTC)
Goto Top
Servus,

Aber ich möchte es ja wirklich verstehen & lernen!!

dann vielleicht erstmal ganz einfach face-wink

UNC Pfad bedeutet nichts anderes, als "irgendeine" Maschine - meistens ein Server hat eine Freigabe.

Von daher - wäre ein Weg - nicht am Client zu suchen, sondern am "Server"

Oder andersherum:

Was genau (wobei genau) sehr genau meint - hast du denn vor?

Meistens fallen uns viel nettere Wege ein, um zum Ziel zu kommen - aber dazu müßten wir halt wissen - was am Ende das Ziel ist.

Gruß
Member: bodyparts
bodyparts Aug 17, 2009 at 18:41:32 (UTC)
Goto Top
vertel uns mal wie die Umgebung aussieht....

sonst muss ich meine Glaskugel putzen

also Server Windows 2k oder 2003.. ist fast egal aber Input tut gut... und welche Clients XP / NT ... Win3.11 oder das gute alte DOS.... ( geht auch noch )

und ja man kann direkt ein User und Passwort mitgeben, aber die große Frage wäre .... "was darf der User, der vorm PC sitzt ...??? ", wenn dieser User das darf sollte es überhaupt keine Probleme geben... net use, gucken, und net use /d..... fertig...


aber das ist halt so aus der Glaskugel
Member: Rankor
Rankor Aug 18, 2009 at 06:30:03 (UTC)
Goto Top
Huhu,

Danke Euch echt für Eure Hilfe!!

@timobeil
Also Ziel ist, dass ich nachher 2 mal am Tag die Batch ausführe und somit alle angegebenen UNC-Pfade auf liegengebliebene Dateien überprüfe. Würden nämlich Dateien liegenbleiben, sprich nicht von einem Programm verarbeitet werden, würden uns große Kosten entstehen. Deswegen soll ich eine zusätzliche "Überwachung" mit dieser Batch bieten.

@bodyparts
Also Umgebung sieht halt so aus, dass ich aus einer VM auf einem Server von uns mit der Batch auf andere Server in unserem eigenen Netz ( wo "keiner" (ohne großen Aufwand) von draußen zugreifen kann ) zugreifen und Verzeichnisse überwachen möchte. >> Hoffentlich versteht Ihr den Satz xD << Es sind alles WinXP Clients auf die ich zugreifen möchte.

@miniversum
Danke für die Erklärung vom pipen face-smile

Hmm OK das mit dem Passwort in Klartext stimmt wohl. Man müsste das irgendwie verkrypten können. Aber glaube sowas gibt es in Batch nicht oder??

MfG
Rankor aka. Johannes
Member: Destry
Destry Aug 18, 2009 at 09:27:15 (UTC)
Goto Top
Hi Rankor,

was Du zuerst brauchst ist ein Nutzerkonto welches auf alle UNC-Pfade die Du lesen willst auch die Rechte hat dieses zu tun.
Normalerweise kann das das Konto des Domänenadministrators. Besser wäre es aber dafür ein eigenes Konto mit den entsprechenden Rechten anzulegen. Vielleicht auch eine Kopie des Domänenadministrators, muss aber nicht sein.

Dann schreibst Du Deine Batch. Deine "dir's" mögen vielleicht nicht elegant aussehen, aber sie reichen für's erste völlig.
Tipp: Schreibe nicht alle Ergebnisse in eine einzige Watchlist-Datei. Wenn die Anzahl der zu prüfenden Maschinen und Verzeichnisse zunimmt wird die Datei schnell unübersichtlich. Ich empfehle dir die Watchlist-Datei mit dem Namen der Maschinen zu versehen die Du prüfst. So behälst Du besser den Überblick.
Ausserdem solltest Du nicht alles unter "C" ablegen. Sondern vielleicht dafür eigene Verzeichnisse bauen.

Also z.B. so:
dir \\UNC-Pfad1_Maschine1 /O:G/S/B > C:\Logdateien\WatchDirFiles\Maschine1_WatchDirFiles.txt
dir \\UNC-Pfad1_Maschine2 /O:G/S/B > C:\Logdateien\WatchDirFiles\Maschine2_WatchDirFiles.txt
dir \\UNC-Pfad1_Maschine3 /O:G/S/B > C:\Logdateien\WatchDirFiles\Maschine3_WatchDirFiles.txt
...

Bitte achte darauf das ich jetzt nur noch ein einzelnes Umlenkungszeichen (>) benutzt habe. Die Dateien werden also jeden Tag neu geschrieben.
Wenn Du auf der gleichen Maschine mehrere Pfade prüfen willst, musst Du das Skript umschreiben, z.B. so:

dir \\UNC-Pfad1_Maschine1 /O:G/S/B > C:\Logdateien\WatchDirFiles\Maschine1_WatchDirFiles.txt
dir \\UNC-Pfad2_Maschine1 /O:G/S/B >> C:\Logdateien\WatchDirFiles\Maschine1_WatchDirFiles.txt
dir \\UNC-Pfad1_Maschine2 /O:G/S/B > C:\Logdateien\WatchDirFiles\Maschine2_WatchDirFiles.txt
dir \\UNC-Pfad1_Maschine3 /O:G/S/B > C:\Logdateien\WatchDirFiles\Maschine3_WatchDirFiles.txt
...

Wenn Du alles zusammen hast prüfst Du Dein Skript indem Du Dich mit der oben genannten "Kann-alles-lesen-Kennung" an einer Maschine Deiner Wahl anmeldest, ein Kommandozeilenfenster aufrufst und die Batch testest - ob, bzw. bis sie geht.

Wenn alles funktioniert lässt Du das Skript von der Maschine Deiner Wahl automatisch zweimal am Tag ausführen.
Das geht über das Programm "Geplante Tasks", oder englisch "Scheduled Tasks", welches überall vorhanden ist.
In diesem Programm kannst Du eine Aufgabe erstellen welche zu einem bestimmten Termin eine Datei, nämlich Deine Batch, ausführt.
Du kannst dieser Aufgabe auch einen Intervall mitgeben, z.B. alle 12 Stunden, und andere Dinge mehr. Notfalls erstellst Du dieselbe Aufgabe zweimal mit unterschiedlichen Ausführungszeiten.

Das beste aber ist das Du der Aufgabe ein Konto und ein Passwort (verschlüsselt) mitgeben kannst unter der sie arbeiten soll. Genau hier kommt die "Kann-alles-lesen-Kennung" zum Zuge.

Einmal als "Geplanter Tasks" eingetragen wird die Aufgabe sogar ausgeführt wenn niemand an der Maschine angemeldet ist. Die Maschine muss dafür nur online sein.

Weitere Hinweise sind:

    • Beachte das bei der "Kann-alles-lesen-Kennung" eventuell das Passwort abläuft. Falls ja muss es im geplanten Task angepasst werden.
    • Versuche Teile der UNC-Pfade und der Watchlist-Namen in Variable zu stellen. Erste Anlaufstelle dafür ist der "set"-Befehl.
    • Falls Du alles von Deiner Maschine ausführst, denke darüber nach alles von einem Server aus ausführen zu lassen und so auch anderen die Möglichkeit zu geben die Watchlist-Dateien zu prüfen.

Das war's erstmal. Viel Erfolg.

Destry
Member: Rankor
Rankor Aug 18, 2009 at 12:46:15 (UTC)
Goto Top
Hallo Destry,

erstmal vielen vielen Dank für Deinen Beitrag!
Ich werde das nachher, wenn ich alle weiteren Supports durch habe, mal ausprobieren.

Ich bin Euch allen echt Dankbar das Ihr mir so gut Helft und nicht gleich anfangt zu motzen: "OMG was bist Du denn fürn depp!". Leider schon alles erlebt.

Ich melde mich so schnell wie möglich wieder und geb bescheid ob ichs geschafft habe.

MfG
Rankor aka. Johannes
Mitglied: 60730
60730 Aug 18, 2009 at 13:07:05 (UTC)
Goto Top
Zitat von @Rankor:
Huhu,

Danke Euch echt für Eure Hilfe!!

@timobeil
Also Ziel ist, dass ich nachher 2 mal am Tag die Batch ausführe und somit alle angegebenen UNC-Pfade auf liegengebliebene Dateien
überprüfe. Würden nämlich Dateien liegenbleiben, sprich nicht von einem Programm verarbeitet werden, würden uns
große Kosten entstehen. Deswegen soll ich eine zusätzliche "Überwachung" mit dieser Batch bieten.


Servus,

eigentlich "reicht dir dann doch auf dem Server, der die Freigabe hält ein simples:


Wobei der Befehl "Title" nur der Ansatz wäre und dort ein goto oder ähnliches weiterführen würde.
echo test der nix findet
dir %systemroot%\..\123.txt /s |find "Datei nicht gefunden" && echo wie auch  
echo Test der was findet >%systemroot%\..\123.txt
dir %systemroot%\..\123.txt /s |find "1 Datei(en)" && echo eine ist jetzt da  

del %systemroot%\..\123.txt

Das ganze läßt sich noch viel weiter spinnen und dient nur dem Lerneffekt.

Gruß
Mitglied: 81825
81825 Aug 18, 2009 at 13:58:08 (UTC)
Goto Top
@timbeil
Auch bei einem Lerneffekt sollten die Beispiele schon möglichst korrekt sein.
Sieh dir doch deine Zeile 02 nochmal genau an. face-wink
Member: Rankor
Rankor Aug 18, 2009 at 14:09:42 (UTC)
Goto Top
Zitat von @60730:
> echo test der nix findet
> dir %systemroot%\..\123.txt /s |find "0 Datei(en)"  
> && echo wie auch
> echo Test der was findet >%systemroot%\..\123.txt
> dir %systemroot%\..\123.txt /s |find "1 Datei(en)"  
> && echo eine ist jetzt da
> 
> del %systemroot%\..\123.txt
> 

Huhu,

was macht denn dieser "|find" Befehl?? Dachte dieses " | " bedeutet etwas pipen. Oder bin ich da jetzt falsch?

Edit:
Ach ich depp :D mit |find suchst Du nach dem bestimmten suffix ne??

Gruß
Rankor aka. Johannes
Mitglied: 60730
60730 Aug 18, 2009 at 14:19:47 (UTC)
Goto Top
@petergrey..

jaja meine Augen sind auch schon müde - merci für den Tipp auf den Bock face-wink

Zitat von @Rankor:
Huhu,

was macht denn dieser "|find" Befehl??
Servus in einer Dosbos mal Find /? eingeben

Dachte dieses " | " bedeutet etwas pipen.
Nein
oder bin ich da jetzt falsch?
Ja
> pipen
|zweiter Befehl

wobei in den anderen Zeilen

"früher gabs noch kein Dir /p - da hat man immer dir |more gemacht...(was das gleiche ist)


Edit:
Ach ich depp :D mit |find suchst Du nach dem bestimmten suffix ne??

Nein - mit Find "suche/finde "ich" nach einem Inhalt face-wink Aber da vorher per dir nach diesem bestimmten Suffx gesucht wurde face-wink


Gruß
Rankor aka. Johannes
Member: Rankor
Rankor Aug 18, 2009 at 14:34:13 (UTC)
Goto Top
Zitat von @60730:
> Edit:
> Ach ich depp :D mit |find suchst Du nach dem bestimmten suffix
ne??

Nein - mit Find "suche/finde "ich" nach einem Inhalt
face-wink Aber da vorher per dir nach diesem bestimmten Suffx gesucht wurde
face-wink

Wo suchst/findest Du einen Inhalt??
Mitglied: 81825
81825 Aug 18, 2009 at 14:36:38 (UTC)
Goto Top
Zitat von @60730:
Servus in einer Dosbos mal Find /? eingeben

Ich würde den Rat von TimoBeil einfach mal befolgen.
Member: miniversum
miniversum Aug 18, 2009 at 16:33:38 (UTC)
Goto Top
Bei einzelnen Dateien reicht auch ein:
dir %systemroot%\..\123.txt /s >NUL 2>NUL && echo Datei vorhanden
bzw. ein
Member: Rankor
Rankor Aug 19, 2009 at 06:23:22 (UTC)
Goto Top
Zitat von @81825:
> Zitat von @60730:
> Servus in einer Dosbos mal Find /? eingeben

Ich würde den Rat von TimoBeil einfach mal befolgen.


Moin grey,

habe ich gemacht. Ich habe auch wirklich versucht es zu verstehen. Mal gucken obs stimmt :D
Also:
FIND /C/N/I \\UNC-Pfad2\..\.\*.*

Man komme mir so doof vor >_<°
Kommt immer nur eine Fehlermeldung das der FIND-Befehl wäre ungültig. face-sad

Wenn ich wie im ersten Versuch von mir einfach nur:
dir \\UNC-Pfad2\..\.\*.* /O:G/S/B > C:\WatchDirFiles.txt
eingebe, klappts auch soweit... Dann besteht nur wieder mein Problem mit Benutzername / Passwort >_<°.

Was ich halt komisch finde ist, dass ich von der Virtuellen Maschine aus mit dem explorer auf die Verzeichnisse OHNE Benutzername / Passworteingabe drauf zugreifen kann. Das Leben hasst mich glaube ich.

Wie gebe ich denn nur um mal zu testen einen Benutzernamen / Passwort bei dem "dir" Befehl mit??
Wäre das so richtig??
dir \\UNC-Pfad2\..\ /O:G/S/B /Benutzername /Passwort > C:\WatchDirFiles.txt

MfG
Rankor aka. Johannes
Member: Destry
Destry Aug 19, 2009 at 07:48:06 (UTC)
Goto Top
Hi,

der find-Befehl sucht nach einer Zeichenfolge in einer Datei. Die Suche nach der Datei ist nur ein "Abfallprodukt".
Wo in Deinem Befehl ist die Zeichenfolge nach der Du suchst?
Zum Suchen nach Dateien eignet sich der dir-Befehl oder eine if-exist-Abfrage.

Was Dein Nutzername/Passwort-Problem angeht solltest Du unbedingt mal die Berechtigungen prüfen.
Ausserdem haben ich Dir weiter oben erklärt wie Du das beheben kannst.

Bei Deinem Wissensstand würde ich Dir empfehlen zuerst mal Deine "einfache" Batch mit dem dir-Befehl ans Laufen zu bringen und nicht gleich wieder neue Fehlerquellen zu öffnen.
Wie gesagt, Deine Batch ist vielleicht nicht elegant aber funktional. Wenn Du noch das Zugriffsproblem löst kannst Du damit arbeiten.

Anschließend hast Du immer noch Zeit genug das Ding im Detail zu verbessern.
Und orientiere Dich dabei "noch" nicht an den "Ich-packe-alles-in-eine-Zeile-Befehl-Cracks". Das ist dann schon die höhere Kunst.

Denk dran: Erst gehen lernen, bevor Du rennen willst.

Gruss,
Destry
Mitglied: 60730
60730 Aug 19, 2009 at 08:27:07 (UTC)
Goto Top
Servus,

ich gebs zu - dir "lernbatch" ist schon für große Jungs gedacht....

gib mal
cd ..
in einer Dosbox ein - das gleiche ist mein
%systemroot%\..\123.txt
ich hätte das auch banal hart verdrahten können mit
c:\123.txt


Und nochmal - lass die Batch auf dem Server laufen - der den anderen den UNC Pfad bereiststellt.....


Gruß
Member: Rankor
Rankor Aug 19, 2009 at 08:58:38 (UTC)
Goto Top
Hallo TimoBell,

ich habe die batch aufm dem Server nun laufen lassen wie Du es meintest, und es läuft eins a durch >_<. Es lag wohl wirklich an den Berechtigungen. Tut mir echt Leid, dass ich das nicht direkt ausprobiert habe und Euch weiter genervt habe face-sad

Ich Danke Euch allen für Eure Hilfe mit den Batch-Befehlen usw. und Eurer Geduld mit mir face-smile
Ich werde mal weiter versuchen kleinere Batches zu schreiben und arbeite mich bissl rauf.

Danke Euch!!

MfG
Rankor aka. Johannes
Hotly discussed
gleixnerdCheck of ZFW Firewallgleixnerd - 5 CommentsjstrickerWireguard VPN on UDM Pro behind Fritzbox - Handshake did not completejstricker - 3 Comments