Mitgeben von Benutzername und Passwort bei UNC-Pfaden
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-ID: 122914
Url: https://administrator.de/forum/mitgeben-von-benutzername-und-passwort-bei-unc-pfaden-122914.html
Ausgedruckt am: 23.12.2024 um 16:12 Uhr
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:
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
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.
dann vielleicht erstmal ganz einfach
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ß
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
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
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ß