Thanquol 10 Geschrieben 29. September 2003 Melden Teilen Geschrieben 29. September 2003 Hallo Leute! Ich hab hier folgendes Problem bei dem ich hänge: Status: 1Win2k3 Terminal Server 1Win2k3 Datenbank Server 11Client PCs (9*WinNT,2*Win2k) ~20User Die User wechseln ihren Arbeitsplatz ständig so das immer fast alle Pcs belegt sind. Nun ist es für eine Steuersoftware wichtig das Lokale(vom TerminalPC also nicht vom Server) Diskettenlaufwerk anzusprechen! Und das auf einem bestimmten Laufwerksbuchstaben! Unter win2k3 ist es im terminal zwar möglich die lokalen laufwerke zu verbinden aber leider ohne Buchstaben! Also konkret: Der User 1 geht an den PC A, loggt sich dabei ein im Terminalmodus, dann soll per Batchdatei das A-Laufwerk(natürlich freigegeben) auf der TerminalEmulation z.B. als X: mappen! meine Lösungsidee: net use X: \\lokalerpcname\A da lokalerpcname aber eben leider nicht immer das gleiche ist: net use X: \\%computername%\A das Problem: %computername% ist auf der Terminalemulation eben leider der Name des Terminalservers und nicht der des client-pcs! gibts denn sonst irgeneine Variable oder Möglichkeit den namen des PC's auszulesen von dem aus man sich an den server verbindet? Ich hoffe ich hab mein kleines Problem hier veständlich ausgedrückt und bedanke mich schonmal für Lösungsvorschläge und Anregungen! Mfg, Florian Zitieren Link zu diesem Kommentar
auer 10 Geschrieben 29. September 2003 Melden Teilen Geschrieben 29. September 2003 Definiere dir irgendeine zusätzliche Umgebungsvariable, die für jeden Client eindeutig ist und verwende diese. Irgendwie müssen sich die verschiedenen Clients ja voneinander unterscheiden lassen, wenn das klappen soll. ---------------- Gruß, Auer Zitieren Link zu diesem Kommentar
Thanquol 10 Geschrieben 29. September 2003 Autor Melden Teilen Geschrieben 29. September 2003 hmm klingt gut, nur wie mache ich das? Zitieren Link zu diesem Kommentar
torstenbeck 10 Geschrieben 29. September 2003 Melden Teilen Geschrieben 29. September 2003 Hi, ich würde es folgendermaßen lösen: Vorraussetzung: Ein User bezogenes Verzeichnis, und ein Login Script, ein wenig Scripting Vorgehen: Bei der Anmeldung des Users an seinem Arbeitsplatz schreibt das Login Script in das Userverzeichnis eine Datei mit dem Computernamen, an dem er angemeldet ist. Bei der Anmeldung am TS liest das Login Script den Rechnernamen aus dieser Datei aus und mapt ein Laufwerk darauf. Gruß Torsten Zitieren Link zu diesem Kommentar
auer 10 Geschrieben 29. September 2003 Melden Teilen Geschrieben 29. September 2003 Mein Vorschlag basiert 'bloß' auf der Idee, daß der einzelne Rechner beim Start des Terminalmodus irgendwelche lokalen, für ihn spezifischen Variablen mitübergeben kann. Allerdings ist das eine Vermutung, da ich solche Terminalemulationen mangels Gelegenheit praktisch nicht kenne. Falls dies stimmt, erhält der lokale Rechner eine neu zu definierende System-Umgebungsvariable (System - Erweitert - Umgebungsvariablen), die einfach das als Wert erhält, was für deine net use \\... - Konstruktion notwendig ist. Damit müßte diese Variable auch in einem Batch verfügbar sein und kann genutzt werden. Beim Vorschlag von @torstenbeck ist der erste Schritt überflüssig, da der Rechner ja ohnehin unabhängig vom aktuellen Benutzer einen festen Namen hat. Beim zweiten Schritt ist mir nicht klar, ob das LogonScript einer Terminalemulation das Recht hat, auf den lokalen Rechner zuzugreifen. Falls ja, kann man auch gleich auf jedem Rechner eine solche Datei mit dem Rechnernamen statisch anlegen und verwenden. ------------ Gruß, Auer Zitieren Link zu diesem Kommentar
Thanquol 10 Geschrieben 29. September 2003 Autor Melden Teilen Geschrieben 29. September 2003 Hi! also mit der Idee von torstenbeck ist die Lösung schon fast erreicht! nur, wie funktioniert es? annahme: ich schreibe in eine datei auf dem Client den PC-name und gebe den Server frei: wie lese ich dann den inhalt aus? also in: \\pc-name\freigabe\pcname.txt aber wie binde ich das nun in ein script ein? also Möglichkeit 1: net use X: \\<lese name aus pcname.txt>\\A Möglichkeit 2: setze %pcname% auf den Inhalt von \\pc-name\freigabe\pcname.txt und danach: net use X: \\%pcname%\freigabe\A Wenn ihr mir dabei noch helfen könnt ist das des Rätsels lösung! :D Vielen dank schonmal an euch 2!!! Grüße, Flo Zitieren Link zu diesem Kommentar
auer 10 Geschrieben 29. September 2003 Melden Teilen Geschrieben 29. September 2003 Dafür gibt es mindestens zwei Möglichkeiten. 1. Das LogonScript kann einen lokalen Batch ausführen, etwa c:\Computer.cmd, dann enthält diese nur eine Zeile set my_computername=pc_a dann steht im folgenden %pc_a% zur Verfügung. 2. Oder mit for /f, siehe for /?, etwa: Datei c:\computer.txt enthält eine Zeile pc_a for /f %%i In ('type c:\computer.txt') do set my_computername=%%i Literatur zu Batchs unter Tipps & Links ---------------- Gruß, Auer Zitieren Link zu diesem Kommentar
Thanquol 10 Geschrieben 30. September 2003 Autor Melden Teilen Geschrieben 30. September 2003 Original geschrieben von auer Dafür gibt es mindestens zwei Möglichkeiten. 1. Das LogonScript kann einen lokalen Batch ausführen, etwa c:\Computer.cmd, dann enthält diese nur eine Zeile set my_computername=pc_a dann steht im folgenden %pc_a% zur Verfügung. hmm das ganze sieht schon sehr gut aus.. nur 1. heisst es nich genau andersrum? set pc_a=my_computername ? so funktioniert es zmindest 2. wenn ich es in der Batchdatei aufrufe bleibt es aber nicht permanent, also wenn ich danach die mapping.bat aufrufe ist der Wert %pc_a% wieder leer Zitieren Link zu diesem Kommentar
Thanquol 10 Geschrieben 30. September 2003 Autor Melden Teilen Geschrieben 30. September 2003 ok, des Rätsels lösung heisst ganz einfach: CALL :) Vielen dank an euch! Zitieren Link zu diesem Kommentar
Apotheker 10 Geschrieben 30. September 2003 Melden Teilen Geschrieben 30. September 2003 Habe zwar nur einen W2K TS, aber da funktioniert: net use x: \\%clientname%\floppy wobei floppy der Freigabename des Diskettenlaufwerkes auf dem lokalen (TS-Client) PC ist. MfG Apotheker Zitieren Link zu diesem Kommentar
auer 10 Geschrieben 30. September 2003 Melden Teilen Geschrieben 30. September 2003 Tja - oben habe ich mich vertan. Bei set my_computername=pc_a steht im folgenden natürlich %my_computername% zur Verfügung. Der Aufruf dieses Batches kann in der mapping.bat mit Call erfolgen. --------- Gruß, Auer Zitieren Link zu diesem Kommentar
Thanquol 10 Geschrieben 13. Oktober 2003 Autor Melden Teilen Geschrieben 13. Oktober 2003 Vielen Dank apotheker!! das war genau das was ich verzweifelt gesucht habe!!! %clientname% ergibt genau das was ich brauche! Problem gelöst! Thanquol happy! Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.