Jump to content

Batch files von netzwerkdrives auslesen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hall zusammen,

 

ich habe ein qurioses problem:

 

ich verwalte ca. 400 benutzer in einer (noch) NT4 domaine, jeder benutzer startet ein sog. startnt.bat. dieses bat ist im netzwer-homedrive des users abgelegt. in diesem bat ist angegeben, welche drives der user mountet.

 

als der einte mountet einen K:\ drive, der andere mountet einen P:\ drive etc.

 

wie kann ich alles batchfiles auslesen, damit ich weiss, welche drives von wem gemountet werden?

 

Herzlich

pfarrer

Link zu diesem Kommentar

war nur so ne frage.

normalerweise verfügt jeder user über eine eigene bat datei (z.B. maier.bat, teo.bat, Verkauf.bat,...). diese wiederum liegt im Netlogon verzeichnis deines NT Servers (\\ntserver).

Wenn du dir dann mal den Benutzer ansiehst (Wo war das nochmal bei NT - Domänenbenutzer) und auf den Reiter Profil gehst dann gibt es dort eine Zeile mit

Anmeldeskript:

 

Wenn der User Maier über eine maier.bat im Netlogonverzeichnis verfügt und diese auch unter Anmeldeskript steht dann wird bei der Anmeldung auch diese ausgeführt.

 

Also wenn du jetzt jedem User sagst er soll seine bat umbenennen und auf ein Public laufwerk legen dann brauchst du sie nur mehr ins Netlogon zu kopieren und dem User unter Profil zuteilen.

 

wie kann ich alles batchfiles auslesen, damit ich weiss, welche drives von wem gemountet werden?

Diese Vorgehensweise sollte dein Problem auch lösen können. Mit übers Netzwerk auslesen - sry - keine Ahnung...

 

lg & berichte dann mal wie du´s gelöst hast

Link zu diesem Kommentar

Hallo,

 

wenn du Lesezugriff auf die Homedrives deiner User hast kannst du folgende Batch am Server ausführen.

Dies hat den Vorteil, dass du sofort alle startnt.bat Files in einem Schlag ausgelesen hast.

 

listallmaps.bat

set pathtobat=D:\Homedrives
set logfile=D:\allmappings.txt

for /f %%i in ('dir "%pathtobat%\startnt.bat" /b /s') do (
>>%logfile% echo %%i
>>%logfile% type "%%i" | find /i "net use"
>>%logfile% echo.
)

Den Pfad zum Homedrive-Verzeichnis bzw. Logfile musst du logischerweise anpassen ... :rolleyes:

 

 

 

@mailkilla

was soll lefg da gross erläutern ? Steht doch alles drin ... :D

Eine solche Konfiguration hab ich bis jetzt auch noch nicht gesehen ... ;)

Link zu diesem Kommentar
könntest das näher erläutern?
Hallo, gerne mache ich das.

 

Separate Batches, eine für jeden Benutzer ist eine aufwendig zu erstellende und zu wartende Sache, auch ein Kostenfaktor.

 

Anfangs erscheint es als die richtige Lösung, später geht der Überblick verloren, wird die Sache arbeitsintensiv. In dem Sinne hat das Mark Minasi auch schon in NT Server 4.0 diskutiert. Ich bin dem damals gefolgt, bin mit einer Batch ausgekommen. Ich habe den Überblick behalten, es gab keine Probleme, die zeitaufwendiger Fehlersuche, Analyse bedurfte.

 

Es handelte sich nicht um eine NT-Domäne in der Grössenordnung von 24, sondern nx24. Es ging auch nicht nur um einen, sondern um mehrere Standorte. Ich habe Standorte übernommen, Struktur dort hereingebracht. Unter anderen j eine eweils singuläre Login.bat.

 

Es ist mir bewusst, Netware bietet dem User selbst eine Möglichkeit, sich ein eigenes Loginskript zu bauen. Ich denke, unsere mit grossen Umgebungen erfahrenen Member werden die daraus resultierenden Auswüchse, die Anrufe beim Helpdesk kennen. Niemand blickt durch, ein Reorganisationsversuch stösst dabei wieder auf Probleme durch Intransparenz.

 

Ich habe schon öfters beobachtet, da wollte jemand ernsthaft mehr als 24 Netzlaufwerke verwenden. In einigen Fällen handelte es sich oft um Mangel an Erfahrung des Administrators, in anderen war es ein Organisationsproblem.

 

Ursprünglich gab es bei uns ein P2P und ein Netware 3.11. Die Tippsen speicherte die Sachen in Homeverzeichnissen. Dann gab es ein Alle und ein Jeder. Die Leute hatten dafür Netzlaufwerke. Alle, jeder, legte die bearbeiteten Ding irgendwo ab nach eigenem Gusto. Nur die bearbeitende Person wusste letzlich, wo das Zeugs war, in welcher Datei in welchem Ordner.

 

Die defekte Datei sei auf K, sagt die Copymaus. Der Helpdesk: Worauf zeigt K bei dem User?

 

Inzwischen wurden transparente Ordnerstrukturen eingeführt, Baum, Wurzel, ... . Netzlaufwerke gibt es einige als definierte Einstiegspunkte in die Ordnerstruktur. Diese Laufwerke sind weitgehend einheitlich für alle User.

 

Eingerichtet wurden auch Netzlaufwerke für die Gruppen (Drive G und Teams (T), für die Abteilungen. Eine Grundstruktur, ausreichend für alle Zwecke.

 

Mit W2k(3) wurde dann umgestellt auf über Gruppenrichtlinien, OUs initialisierte Skripte.

 

Mein Kompliment an master-obi-wan zu seinem Skript.

 

Gruß

 

Edgar

Link zu diesem Kommentar

Hallo pfarrer,

 

ich hab deine PN erhalten. ;)

 

Da das Board dazu da ist, Probleme zu diskutieren, mach ich einfach hier weiter !

Vielleicht interessiert es ja andere auch.

 

vielen dank fuer deine hilfe, doch bin ich mit deinem batch (noch) icht auf einen gruenen zweig gekommen.

 

mache ich was falsch?

 

folgendes habe ich konfiguriert:

 

 

rem listallmaps.bat

 

set pathtobat=H:\config.dos

set logfile=C:\temp\allmappings.txt

 

for /f %%i in ('dir "%pathtobat%\startnt.bat" /b /s') do (

>>%logfile% echo %%i

>>%logfile% type "%%i" | find /i "net use"

>>%logfile% echo.

)

 

 

um die funktionalitaet "local" bei mir auszuprobieren, habe ich obige batch konfiguration laufen lassen.

 

da ich wirklich kein batch guru bin, habe ich leider auch 1000send fragen....

 

die besagte batchdatei "startnt.bat" liegt auf meinem h:\ drive im verzeichnis config.dos

 

und das allmappings.txt file ist im obigen C:\temp\allmappings.txt gespeichert

 

ich klicke den batch an und es geschieht nichts, nada.... :-(

 

haste du als profi noch eine idee?

 

gruesse

pfarrer

 

Nun vielleicht bin ich auch von falschen Voraussetzungen ausgegangen.

 

 

Zum einen bin ich davon ausgegangen, dass

1. (seltsamerweise) jeder Benutzer eine eigene startnt.bat in seinem Homedrive liegen hat.

2. das Laufwerksmapping per "net use" in dieser Batch erfolgt.

3. die Homedrives in einem einheitlichen Verzeichnispfad liegen (Wobei %pathtobat% der "Oberordner" der Homedrives ist ...)

4. die Batch am Server ausgeführt wird.

 

Stimmt das so, oder hab ich hier was falsch verstanden ?

 

Und beim "nachtesten" ist mir aufgefallen, dass ich vergessen habe die Batch "Leerzeichenfest" zu machen ... :rolleyes:

(Vielleicht war das ja schon der Fehler ...)

 

Probiers mal so:

 

set pathtobat=D:\Homedrives
set logfile=D:\allmappings.txt

for /f [color=red]"tokens=*"[/color] %%i in ('dir "%pathtobat%\startnt.bat" /b /s') do (
>>%logfile% echo %%i
>>%logfile% type "%%i" | find /i "net use"
>>%logfile% echo.
)

 

Sach Bescheid !

Link zu diesem Kommentar

Hallo ..... :-)

 

wahnsinn....

 

irgendwie funktioniert das ganze noch nicht so, wie ich es wuensche.

 

also:

 

1: richtig, jeder user hat in seinem homedrive ein sog. startnt.bat

2: stimmt auch, laufwerkmapping mit net use

3: die homedrives sind \\server\verzeichnis1\user\ dann der name des users\config.dos(ist auch ein verzeichnis, das so heisst..... ) \startnt.bat

4: sorry, verstehe ich nicht...... :-(

 

 

ich habe es bei mir lokal auf meinem pc ausgefuehrt, d.h. so wurde das textfile "allmappings.txt" korrekt mit den meinigen batchfile daten gefuellt.

 

wie wird oder wie kann ich dann das eingelesene dem richtigen usernamen zuordnen?

 

dies ist schon ein buch mit sieben siegeln....

 

gruesse

pfarrer

Link zu diesem Kommentar

Hallo,

 

... ich habe es bei mir lokal auf meinem pc ausgefuehrt,

d.h. so wurde das textfile "allmappings.txt" korrekt mit den meinigen batchfile daten gefuellt.

 

tja, mehr als, dass die Logdatei mit Daten gefüllt wird, passiert ja auch nicht ... :D

 

In der ersten Zeile steht der Pfad zur startnt.bat (in dem Pfad ist bei Ausführung am Server der Username drin und somit dem User zuzuordnen !!!)

Die nachfolgenden Zeilen enthalten die "net use" Befehle die in der startnt.bat stehen.

 

So wie du es ausgeführt hast, stehen logischerweise nur die "net use" Befehle im Textfile, die in DEINER startnt.bat aufgeführt sind und in der ersten Zeile "H:\config.dos". Wenn du alle Userverzeichnisse durchforsten willst (und das willst du !) musst du die Batch am Server oder per Admin-Freigabe ausführen (pathtobat könnte bei Admin-Freigabe dann z.B. \\server\D$\verzeichnis1\user\ sein !).

 

Dass du entsprechende Rechte brauchst um die jeweilige startnt.bat lesen zu dürfen, versteht sich nehme ich an, von selbst. ;)

Link zu diesem Kommentar

Hallo,

 

mich interessiert doch mal der Sinnn. der tatsächliche Hintergrund der Geschichte.

 

Wie wäre es, die User per Mail zu bitten, ihr Mapping mitzuteilen?

 

Wird denn die Batch von Master-Obi-Wan auf jedem Rechner nach Durchführung des Mappungs ausgeführt, wird die Batch tatsächlich bearbeitet von der For-Schleife, die NetUse Zeile gefunden und ins Protokoll geschreiben?

 

Gruß

 

Edgar

Link zu diesem Kommentar

Guten Morgen,

 

mich interessiert doch mal der Sinnn. der tatsächliche Hintergrund der Geschichte.

Wie wäre es, die User per Mail zu bitten, ihr Mapping mitzuteilen?

 

ich habe einen "wunderauftrag" in meinem buero gefasst, der lautet: bitte erstelle eine liste jedes einzelnen users, wo man die gemappten drives sieht

 

also, das mit dem email versenden kannste vergessen.... 400 user welche keine ahnung von bat.files etc haben ..... geht nicht. ist also der job von der edv abteilung, eben fuer mich als nobody.

 

die sog. startnt.bat files werden nicht mehr gebraucht, da die drives mit script logic angeschnallt werden. DOCH der einte hat ein sog. R:\ drive, welche applikationsabhaengig genau ein R drive sein muss, der ander hat ein share, der dritte hat......

 

siehste du mein problem?

 

Gruesse

pfarrer

Link zu diesem Kommentar

Guten Morgen Pfarrer,

 

ich denke, ich sehe, verstehe das Problem.

 

Ich denke mal einen anderen Ansatz.

 

Nützt es etwas, die gemappten Laufwerke in Erfahrung zu bringen?

 

Mit der Ausführung von Net use an der Kommandozeile, in einer Batch werden alle Mappings ausgegeben. Ein Umleiten der Ausgabe auf einen Server in eine mit dem Benutzernamen benannte Datei würde in kurzer Zeit eine Dateiensammlung erzeugen. Man kann diese Dateien dan weiterverarbeiten.

 

Das wäre erstmal der Grundgedanke, eine Basis.

 

Nun würde in den dateien wohl einiges mehr stehen als das gwünschte. Reduktion wäre möglich durch Verwendung von Find, wie MOW es schon vorschlug.

 

Falls dieses dan zufriedenstellend funktionert, kommt der nächste Schritt, die Ausgaben in eine Datei.

 

Hilft dir der Ansatz erstmal weiter.

 

Ich schaue heute noch mehrfach rein, so ich zwischendurch Zeit finde. Meine WS ist meist online, ich nicht immer.

 

Viel Erfolg

 

Edgar

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...