
42687
28.01.2008, aktualisiert am 20.03.2008
Schülerordner per Namenseingabe mappen
Hallo, ich verwalte ein kleines Schulnetzwerk und da wir keinen Server und keine servergespeicherten Benutzerprofile, haben alle Recher ein Konto welches heißt Schueler_1 usw. bis acht. so nun wollen wir nicht auf jedem Rechner jedes Benutzerkontoanlegen, nur damit die Schueler ihr Laufwerk bekommen. Ich dachte das das vlt. in einem Script geht das die Schueler erst du Klasse eingeben und dann den Namen. Am besten wäre eine Listbox oder wie das heißt, wo eine Auswahl steht. Das dateisystem ist Folgendermaßen aufgebaut:
\\Lehrer1\Klassenordner\%klasse%\%schuelername%
änderungen sind aber möglich
das Laufwerk soll dann den Buchstaben H:\ haben
es würde auch gehen, das alle schuelerordner in einem Ordner wären und die Eingabe das Klasse entfällt.
Danke.
\\Lehrer1\Klassenordner\%klasse%\%schuelername%
änderungen sind aber möglich
das Laufwerk soll dann den Buchstaben H:\ haben
es würde auch gehen, das alle schuelerordner in einem Ordner wären und die Eingabe das Klasse entfällt.
Danke.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 79342
Url: https://administrator.de/forum/schuelerordner-per-namenseingabe-mappen-79342.html
Ausgedruckt am: 07.04.2025 um 22:04 Uhr
26 Kommentare
Neuester Kommentar
Bitteschön:
Das ganze mit Klassen- und Namenseingabe:
Hinweis:
Bei einem Schreib / Tippfehler im Namen in der Klasse wird ein neuer Ordner erstellt !!
Sprich der Schüler und die Klasse hat möglicherweise 2 od. mehrere Ordner.
Würd ich dir nicht empfehlen, alle Schueler in einem Ordner ist sicher die übersichtlichere Lösung.
Wie du denn Hinweis mit dem letzten Login hinbekommst kannst du hier nachlesen:
Letzten Login anzeigen - Auswertung einer Logdatei
lg,
@echo off
set /p schuelername="Bitte Namen eingeben..."
if not exist "\\schueler\"%schuelername%" mkdir "\\schueler\"%schuelername%"
net use h: "\\schueler\"%schuelername%" /persistent:no
echo %date% am %time% >> \\schueler\"%schuelername%"\logfile.log
echo %computername% >> \\schueler\"%schuelername%"\logfile.log
echo ------------------------------------------ >> \\schueler\"%schuelername%"\logfile.log
Das ganze mit Klassen- und Namenseingabe:
@echo off
set /p klasse="Bitte Klasse eingeben..."
set /p schuelername="Bitte Namen eingeben..."
if not exist "\\Lehrer1\Klassenordner\%klasse%" mkdir "\\Lehrer1\Klassenordner\%klasse%"
if not exist "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" mkdir "\\Lehrer1\Klassenordner\%klasse%\%schuelername%"
net use h: "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" /persistent:no
echo %date% am %time% >> "\\Lehrer1\Klassenordner\%klasse%\%schuelername%\logfile.log"
echo %computername% >> "\\Lehrer1\Klassenordner\%klasse%\%schuelername%\logfile.log"
echo ------------------------------------------ >> "\\Lehrer1\Klassenordner\%klasse%\%schuelername%\logfile.log"
Hinweis:
Bei einem Schreib / Tippfehler im Namen in der Klasse wird ein neuer Ordner erstellt !!
Sprich der Schüler und die Klasse hat möglicherweise 2 od. mehrere Ordner.
Würd ich dir nicht empfehlen, alle Schueler in einem Ordner ist sicher die übersichtlichere Lösung.
Wie du denn Hinweis mit dem letzten Login hinbekommst kannst du hier nachlesen:
Letzten Login anzeigen - Auswertung einer Logdatei
lg,
Hallo nochmal,
hoffe es passt dir so:
Ausgangslage:
Die musst alle Klassen und deren Schüler einmalig anlegen. Wenn der Schueler nicht existiert wird das Laufwerk H: auch nicht gemapped. Sollte das von dir nicht gewünscht sein, musst du den Code von oben (mkdir) verwenden.
1. Kriterium - wenn es die KLASSE nicht gibt, muss er die Eingabe der Klasse wiederholen
2. Kriterium - wenn es den SCHÜLERNAMEN nicht gibt, muss er die Eingabe des SCHÜLERNAMENS wiederholen
Wenn du noch fragen hast, melde dich !
hoffe es passt dir so:
Ausgangslage:
Die musst alle Klassen und deren Schüler einmalig anlegen. Wenn der Schueler nicht existiert wird das Laufwerk H: auch nicht gemapped. Sollte das von dir nicht gewünscht sein, musst du den Code von oben (mkdir) verwenden.
1. Kriterium - wenn es die KLASSE nicht gibt, muss er die Eingabe der Klasse wiederholen
2. Kriterium - wenn es den SCHÜLERNAMEN nicht gibt, muss er die Eingabe des SCHÜLERNAMENS wiederholen
@echo off
:s1
set /p klasse="Bitte Klasse eingeben..."
if not exist == "\\Lehrer1\Klassenordner\%klasse%" echo Klasse nicht vorhanden !! & goto s1
:s2
set /p schuelername="Bitte Namen eingeben..."
if not exist == "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" echo Schueler nicht vorhanden !! & goto s2
net use h: "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" /persistent:no
echo %date% am %time% >> "\\Lehrer1\Klassenordner\%klasse%\%schuelername%\logfile.log"
echo %computername% >> "\\Lehrer1\Klassenordner\%klasse%\%schuelername%\logfile.log"
echo ------------------------------------------ >> "\\Lehrer1\Klassenordner\%klasse%\%schuelername%\logfile.log"
Wenn du noch fragen hast, melde dich !
Hallo Peter !
ad 1.)
Auch hier das selbe Spiel, ähnlich wie bereits oben:
ad 2.)
Ein adaptiertes Script ermöglicht dem Lehrer nach Eingabe von Klasse und Schülername den Zugriff über den Explorer auf desen Verzeichniss - natürlich auch zum kopieren.
Falls du dich doch zu Verknüpfungen entscheidest:
Verknüpfungen erstellen
ad 1.)
Auch hier das selbe Spiel, ähnlich wie bereits oben:
if exist == "h:\" net use h: /del /yes
.....
ad 2.)
Ein adaptiertes Script ermöglicht dem Lehrer nach Eingabe von Klasse und Schülername den Zugriff über den Explorer auf desen Verzeichniss - natürlich auch zum kopieren.
Falls du dich doch zu Verknüpfungen entscheidest:
Verknüpfungen erstellen
:s1
set /p klasse="Bitte Klasse eingeben..."
if not exist == "\\Lehrer1\Klassenordner\%klasse%" echo Klasse nicht vorhanden !! & goto s1
:s2
set /p schuelername="Bitte Namen eingeben..."
if not exist == "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" echo Schueler nicht vorhanden !! & goto s2
explorer "\\Lehrer1\Klassenordner\%klasse%\%schuelername%"
Hallo guter Peter,
jetzt sei mir mal nicht böse, aber die täglich ändernden Wünsche sind grad noch so zu befriedigen.
Die eierlegende Wollmilchsau, die du da haben willst, die einem die Arbeit zu 100% abnimmt werd es NIE geben.
Von eueren 9 Wochen Urlaub sollte doch noch etwas Energie übergeblieben sein, ist ja auch noch nicht so lange her.
Firmen würden dafür schon wieder ein Menge Zeit od. Geld investieren:
Da ich hier im Forum als Privatperson agiere, habe ich einen Vorschlag:
Häng in "deinen" Klassenräumen einfach das Foto vom Präsidenten (ist zumindest in A so üblich, ab und stattdessen meines auf, dann sind wir quitt.
Aber gehens wir mal an:
(Das ganze ungetestet)
(inkl. der Variante mit Verlinkung, den Link hatte ich ja gepostet, hat dich aber scheinbar nicht gejuckt). Desktop ist aber heute nicht im Angebot - spezifizierter Ordner muss es auch tun.
Wer online ist kannst du dir unter: \\Lehrer1\PC\online anschauen.
Wer an welchem Rechner wann angemeldet war: \\Lehrer1\PC\LOG\
Wie du folgende batch-Datei so einrichten kannst, das sie beim abmelden gestartet wird, erfährst du hier:
Nach Abmeldung per Task Batch starten
Du kannst ja zusätzlich delage32 als Task um Mitternacht drüberlaufen lassen, damit er eventuell nicht gelöscht Einträge vom vorigen Tag löscht.
jetzt sei mir mal nicht böse, aber die täglich ändernden Wünsche sind grad noch so zu befriedigen.
Die eierlegende Wollmilchsau, die du da haben willst, die einem die Arbeit zu 100% abnimmt werd es NIE geben.
Von eueren 9 Wochen Urlaub sollte doch noch etwas Energie übergeblieben sein, ist ja auch noch nicht so lange her.
Firmen würden dafür schon wieder ein Menge Zeit od. Geld investieren:
Da ich hier im Forum als Privatperson agiere, habe ich einen Vorschlag:
Häng in "deinen" Klassenräumen einfach das Foto vom Präsidenten (ist zumindest in A so üblich, ab und stattdessen meines auf, dann sind wir quitt.
Aber gehens wir mal an:
(Das ganze ungetestet)
(inkl. der Variante mit Verlinkung, den Link hatte ich ja gepostet, hat dich aber scheinbar nicht gejuckt). Desktop ist aber heute nicht im Angebot - spezifizierter Ordner muss es auch tun.
@echo off
del c:\user.txt
:s1
set /p klasse="Bitte Klasse eingeben..."
if not exist == "\\Lehrer1\Klassenordner\%klasse%" echo Klasse nicht vorhanden !! & goto s1
:s2
set /p schuelername="Bitte Namen eingeben..."
if not exist == "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" echo Schueler nicht vorhanden !! & goto s2
net use h: "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" /persistent:no
rem --------------------------------------------------------------------------------------------
setlocal
zielpfad=\\Lehrer1\PC\online
set "progtitel=%schuelername%"
set "progdir="%windir%"
set "progexe=explorer.exe /e,"\\Lehrer1\Klassenordner\%klasse%\%schuelername%"
set "beschreibung=Erklärung eigentlich unnötig ..."
echo Set objShell=WScript.CreateObject("Wscript.Shell")>%temp%\MakeShortCut.vbs
echo Set objShortcut=objShell.CreateShortcut("%zielpfad%\%progtitel%.lnk")>>%temp%\MakeShortCut.vbs
echo objShortcut.TargetPath="%progdir%\%progexe%">>%temp%\MakeShortCut.vbs
echo objShortcut.Description="%beschreibung%">>%temp%\MakeShortCut.vbs
echo objShortcut.WorkingDirectory="%progdir%">>%temp%\MakeShortCut.vbs
echo objShortcut.Save>>%temp%\MakeShortCut.vbs
cscript //nologo %temp%\MakeShortCut.vbs
del %temp%\MakeShortCut.vbs
rem ---------------------------------------------------------------------------------------------
echo %schuelername% >> \\Lehrer1\PC\LOG\%computername%.log
echo LOGIN am %date% um %time% >> \\Lehrer1\PC\LOG\%computername%.log
echo SCHUELERNAME:%schuelername% > c:\user.txt
Wer an welchem Rechner wann angemeldet war: \\Lehrer1\PC\LOG\
Wie du folgende batch-Datei so einrichten kannst, das sie beim abmelden gestartet wird, erfährst du hier:
Nach Abmeldung per Task Batch starten
@echo off
set file="c:\user.txt"
FOR /F "skip=2 tokens=1 delims=" %%i in ('find /N "SCHUELERNAME:" %file%') do (
call:auslesen %%i
pause
)
:auslesen
set "USER="
set /a offset=%1-1
FOR /F "tokens=1* delims=:" %%a in ('more +%offset% %file%') do if not defined SCHUELERNAME set SCHUELERNAME=%%b
rem ---------------------------------------------------------------------------------------------
if exist == "h:\" net use h: /del /yes
rem ---------------------------------------------------------------------------------------------
echo LOGOFF am %date% um %date% >> "\\Lehrer1\PC\LOG\%computername%.log"
echo --------------------------------- >> "\\Lehrer1\PC\LOG\%computername%.log"
del "\\Lehrer1\PC\online\%SCHUELERNAME%.lnk"
del c:\user.txt
nur durch das auslesen wird hinter die
Variable Klasse noch eine Leerzeichen setzt
was ich in den ordner nicht umsetzten kann.
Variable Klasse noch eine Leerzeichen setzt
was ich in den ordner nicht umsetzten kann.
Nicht mehr lange und wir schaffen einen Satz ohne irgendwelches Wirwar.
Ich würd mir mal die Werte in c:\class.txt ansehen, ob die das zusätzliche Leerzeichen enthalten, wenn nicht hast du irgendwo beim auslesen ein Leerzeichen zuviel. (bzw. laut deinem Script wird die Verknüpfung ja kopiert und nicht neu erstellt anhand von Varible %klasse%. Und tu mir einen Gefallen, halt das Script so einfach und kurz wie möglich, das ist ja mittlerweile ein Schmöker für ein paar einfache Funktionen.
if exist erfordert keine "=="
set locpath="C:\Dokumente und Einstellungen\" würde dir einiges an Zeilen sparen.
Wie mit eine Verknüpfung RICHTIG anlegt, steht ja bereits weiter oben, eine bestehende Verknüpfung zu kopieren ist zwar simpel aber nicht unbedingt sauber.