Beim Login auf Unterverzeichnis im Benutzerverzeichnis prüfen und dieses ggf. anlegen
Wir haben unsere Druck- und Kopiertechnik ausgetauscht und durch netzwerkfähige Geräte ersetzt. Diese können auch auf eine Netzwerkfreigabe scannen. Um nicht für zig Benutzer ein Scan-Verzeichnis von Hand einzurichten, möchte ich per Loginscript bei der Benutzeranmeldung prüfen, ob im Benutzerverzeichnis ein Unterverzeichnis "scan" existiert, dieses ggf. anlegen und einem Scan-Benutzer auf dieses Verzeichnis Schreibrechte geben.
Hallo allerseits.
Die Zielstellung habe ich oben bereits geschildert.
Die Anwendungsumgebung ist eine Win2k8R2-Domäne mit W2k3 Server und W2k8R2 Server als Fileserver und WXPPro und Win7Pro als Clientsysteme.
Die Benutzerverzeichnisse sind die im AD hinterlegten Basisverzeichnisse, welche bei der Anmeldung des Users als Laufwerk Z gemappt werden.
Mein grundlegendes Problem ist, dass ich nicht einfach per Loginscript (Batch) prüfen kann, ob ein Verzeichnis "\\SERVER\Benutzerverzeichnisse\%username%\scan" existiert, da das Benutzerverzeichnis (Basisordner im AD) nicht zwangsläufig "\\SERVER\Benutzerverzeichnisse\%username%" ist.
Ich müsste also auf den AD-Eintrag für das Basisordner zugreifen können, nur erschließt sich mir nicht, wie ich das anstellen kann. Per Batch fällt wohl aus. Meine Vorstellung wäre per kix, vbs oder AutoIT. Mit kix hab ich einige Erfahrung, nur wüsste ich nicht ob und wie ich den Basisordner des Users damit ermitteln kann. Mit vbs oder AutoIT lässt sich soetwas sicher realisieren, nur fehlt mir da wiederum die Erfahrung.
Hat wer eine ähnliche Lösung implementiert, oder eine Idee diesbezüglich, und/oder ein Code-Schnipsel das mir weiterhilft? Vielleicht denke ich ja auch zu kompliziert
Vielen Dank schon mal.
VG mhard666
Hallo allerseits.
Die Zielstellung habe ich oben bereits geschildert.
Die Anwendungsumgebung ist eine Win2k8R2-Domäne mit W2k3 Server und W2k8R2 Server als Fileserver und WXPPro und Win7Pro als Clientsysteme.
Die Benutzerverzeichnisse sind die im AD hinterlegten Basisverzeichnisse, welche bei der Anmeldung des Users als Laufwerk Z gemappt werden.
Mein grundlegendes Problem ist, dass ich nicht einfach per Loginscript (Batch) prüfen kann, ob ein Verzeichnis "\\SERVER\Benutzerverzeichnisse\%username%\scan" existiert, da das Benutzerverzeichnis (Basisordner im AD) nicht zwangsläufig "\\SERVER\Benutzerverzeichnisse\%username%" ist.
Ich müsste also auf den AD-Eintrag für das Basisordner zugreifen können, nur erschließt sich mir nicht, wie ich das anstellen kann. Per Batch fällt wohl aus. Meine Vorstellung wäre per kix, vbs oder AutoIT. Mit kix hab ich einige Erfahrung, nur wüsste ich nicht ob und wie ich den Basisordner des Users damit ermitteln kann. Mit vbs oder AutoIT lässt sich soetwas sicher realisieren, nur fehlt mir da wiederum die Erfahrung.
Hat wer eine ähnliche Lösung implementiert, oder eine Idee diesbezüglich, und/oder ein Code-Schnipsel das mir weiterhilft? Vielleicht denke ich ja auch zu kompliziert
Vielen Dank schon mal.
VG mhard666
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 178924
Url: https://administrator.de/forum/beim-login-auf-unterverzeichnis-im-benutzerverzeichnis-pruefen-und-dieses-ggf-anlegen-178924.html
Ausgedruckt am: 26.04.2025 um 00:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo mhard666!
Wenn doch ohnehin für alle Benutzer Laufwerk Z: gilt, sollte doch eigentlich
bzw wenn der Batch sichtbar ablaufen sollte
genügen ...
Als Alternative (zum Testen in der CMD-Shell, daher nur "%i" anstatt "%%i"):
Fall es doch serverseitig sein sollte, könnte das etwa (als Direkteingabe in der CMD-Shell und ebenfalls mit einem "Sicherheits-
wobei anstelle von "
Grüße
bastla
Wenn doch ohnehin für alle Benutzer Laufwerk Z: gilt, sollte doch eigentlich
md Z:\Scan
md Z:\Scan 2>nul
Als Alternative (zum Testen in der CMD-Shell, daher nur "%i" anstatt "%%i"):
for /f "tokens=3" %i in ('net use^|findstr "Z:"') do @echo md "%i\Scan"
echo
" vor dem "md
") so gehen:for /f "tokens=2*" %i in ('dsquery * domainroot -filter "(&(objectCategory=Person)(objectClass=User))" -attr sAMAccountName distinguishedName homeDirectory -limit 0') do @if "%~j" neq "" echo @md "%~j\Scan"
domainroot
" natürlich auch eine bestimmte OU als Startpunkt festgelegt werden kann ...Grüße
bastla
Hallo mhard666,
eine Skizze für eine VBS-Lösung:
Hier eine Auflistung der Attribute für AD User (Windows 2000 / Windows 2003)
Gruß,
gemini
eine Skizze für eine VBS-Lösung:
Set objSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://objSysInfo.UserName")
Set objFSO = CreateObject("Scripting.FileSystemObject")
strHomeDirectory = objUser.homeDirectory
If Not objFSO.FolderExists(strHomeDirectory & "\Scan") Then objFSO.CreateFolder(strHomeDirectory & "\Scan")
Hier eine Auflistung der Attribute für AD User (Windows 2000 / Windows 2003)
Gruß,
gemini