Netzlaufwerke nur bestimmten Gruppen zuteilen
Hallo,
ich habe folgenes Problem:
Ich habe mehrere Gruppen im Active Directory unter Windows Server 2003 erstellt. Jede Gruppe soll ein Transferlaufwerk erhalten, wo andere keinen Zugriff haben.
Da ich schon viel gefunden habe zu diesem Thema, aber nicht wirklich alles verstanden habe, hoffe ich das Ihr mir helfen könnt bzw. wollt
Gruppen:
Verwaltung:
Service:
Verkauf:
Geschäftsführung
Das Logon Script habe ich unter Eigenschaften Person xy --> Profil und dann den Namen des Sciptes unter Anmeldescript eingegeben.
Jeder Benutzer (sind ungefähr 15)hat sein eigenes Home Laufwerk. Dies habe ich wie folgt realisiert:
Eigenschaften der Person --> Basisordner --> Verbinden von H: und dann das Verzeichnis ausgewählt. ( \\server\home$\%username% )
So und ich habe schon versch. Logon Scripte ausprobiert, habe es aber nicht zum laufen bekommen. Ich würde mich freuen wenn jmd. Vorschläge hat wie ich es am Besten realiseren kann. Vllt. mit einem fertigen Script
Über Kritik/Verbesserung zu meiner Lösung mit den Home Laufwerken würde ich mich auch freuen.
So hoffe das ich nix vergessen hab wenn Fragen bestehn einfach fragen.
Mit freundlichen Grüßen
Cometcola
ich habe folgenes Problem:
Ich habe mehrere Gruppen im Active Directory unter Windows Server 2003 erstellt. Jede Gruppe soll ein Transferlaufwerk erhalten, wo andere keinen Zugriff haben.
Da ich schon viel gefunden habe zu diesem Thema, aber nicht wirklich alles verstanden habe, hoffe ich das Ihr mir helfen könnt bzw. wollt
Gruppen:
Verwaltung:
Service:
Verkauf:
Geschäftsführung
Das Logon Script habe ich unter Eigenschaften Person xy --> Profil und dann den Namen des Sciptes unter Anmeldescript eingegeben.
Jeder Benutzer (sind ungefähr 15)hat sein eigenes Home Laufwerk. Dies habe ich wie folgt realisiert:
Eigenschaften der Person --> Basisordner --> Verbinden von H: und dann das Verzeichnis ausgewählt. ( \\server\home$\%username% )
So und ich habe schon versch. Logon Scripte ausprobiert, habe es aber nicht zum laufen bekommen. Ich würde mich freuen wenn jmd. Vorschläge hat wie ich es am Besten realiseren kann. Vllt. mit einem fertigen Script
Über Kritik/Verbesserung zu meiner Lösung mit den Home Laufwerken würde ich mich auch freuen.
So hoffe das ich nix vergessen hab wenn Fragen bestehn einfach fragen.
Mit freundlichen Grüßen
Cometcola
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 116079
Url: https://administrator.de/forum/netzlaufwerke-nur-bestimmten-gruppen-zuteilen-116079.html
Ausgedruckt am: 08.04.2025 um 03:04 Uhr
5 Kommentare
Neuester Kommentar

Servus,
zum Thema Loginscript gibt es einen ganz klaren "Favorit"
Kixtart Download Und im Kixtart manual sind ganz viele "fix & fertige" Skripte drin.
*ähh* "nur", weil du es "richtig machst, gleich ein Lob kassieren?
Naja wenn sein soll *Super* gemacht
[edit]
und wenn du "Kritik" einstecken kannst ....
Vermeide - wie der Teufel das Weihwasser - Umlaute in Gruppen und Benutzernamen!
[/edit]
Gruß
zum Thema Loginscript gibt es einen ganz klaren "Favorit"
Kixtart Download Und im Kixtart manual sind ganz viele "fix & fertige" Skripte drin.
Über Kritik/Verbesserung zu meiner Lösung mit den Home Laufwerken würde ich mich auch freuen.
*ähh* "nur", weil du es "richtig machst, gleich ein Lob kassieren?
Naja wenn sein soll *Super* gemacht
[edit]
und wenn du "Kritik" einstecken kannst ....
Vermeide - wie der Teufel das Weihwasser - Umlaute in Gruppen und Benutzernamen!
Geschäftsführung
besser wäre GL[/edit]
Gruß
Moin, ich habe hier mal irgendwann ein Script gefunden und dieses dann meinen Bedürnissen angepasst.
Diese habe ich dann den Usern der entprechenden Gruppen zugeordnet.
Ist ein vbs:
' Logon Script
'**
On Error Resume Next
Dim objFSO,objFILE,objShell,objNetwork, strWelcomeMsg, strHelpMsg, iErrorTimeout, blnShowError
Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objShell=CreateObject("Wscript.Shell")
Set objNetwork=CreateObject("Wscript.Network")
Set wshNetwork = WScript.CreateObject( "WScript.Network" )
Const Company = "Durch Firmennamen ersetzen"
strWelcomeMsg="Willkommen " & objNetwork.UserName & ", in der Domain " & objNetwork.UserDomain & "!" & vbCrLf & vbCrLf & "Ihre Systemzeit wurde mit dem Anmeldeserver synchronisiert." & vbCrLf & vbCrLf & "Aktuelles Datum und Uhrzeit: " & vbCrLf & Now()
strHelpMsg=""
iErrorTimeout=60
blnShowError=False
' Zeit Synchronisieren
objShell.Run "net time \\ZEITSERVER /set /yes", 0, True
' Laufwerke löschen
objShell.Run "net use /delete g: /yes", 0, True
objShell.Run "net use /delete i: /yes", 0, True
objShell.Run "net use /delete k: /yes", 0, True
objShell.Run "net use /delete v: /yes", 0, True
objShell.Run "net use /delete m: /yes", 0, True
objShell.Run "net use /delete t: /yes", 0, True
objShell.Run "net use /delete u: /yes", 0, True
objShell.Run "net use /delete z: /yes", 0, True
objShell.Run "net use /delete o: /yes", 0, True
objShell.Run "net use /delete w: /yes", 0, True
objShell.Run "net use /delete q: /yes", 0, True
objShell.Run "net use /delete p: /yes", 0, True
objShell.Run "net use /delete y: /yes", 0, True
' Laufwerke mappen
objShell.Run "net use g: \\HM_srv02\Daten", 0, True
objShell.Run "net use i: \\HM_srv02\Daten2", 0, True
objShell.Run "net use k: \\HM_srv02\Daten3", 0, True
objShell.Run "net use t: \\HM_srv02\Tausch", 0, True
objShell.Run "net use z: \\HM_SRV02\zeiterfassung", 0, True
objShell.Run "net use o: \\Nas\Grafik_Stamm", 0, True
objShell.Run "net use w: \\Nas\intern", 0, True
objShell.Run "net use q: \\Nas\GrafikArchiv", 0, True
objShell.Run "net use v: \\Nas\Verwaltung", 0, True
objShell.Run "net use p: \\Nas\Produktion", 0, True
objShell.Run "net use u: \\Farbserver\GMG_Daten", 0, True
' Homverzeichnis des Users(Ordner=Benutzername)
objShell.Run "net use Y: \\HM_srv02\Tausch\" & objNetwork.Username , 0, True
' Zusammenfassung erstellen
iDisplayTimeout=20 ' Nachricht schließt sich nach 20 Sekunden
strMsg=""
strMsg=strMsg & strWelcomeMsg & VbCrLf
strMsg=strMsg & vbcrlf
strMsg=strMsg & PasswordExpires(objNetwork.Userdomain,objNetwork.Username) & VbCrLf
strMsg=strMsg & vbcrlf
' Netzlaufwerke auflisten
Set objDrives = objNetwork.EnumNetworkDrives
strMsg=strMsg & "Verbindung zu Netzlaufwerk(en):" & vbcrlf
If objDrives.Count = 0 Then
strMsg = strMsg & CRLF & _
"Kein Netzlaufwerk ist verbunden." & CRLF
Else
For i = 0 to objDrives.Count - 1 Step 2
strMsg=strMsg & "Laufwerk " & objDrives.Item(i) & "=" & objDrives.Item(i+1) & vbcrlf
Next
strMsg=strMsg & vbcrlf
End if
' Zusammenfassung zeigen
If strMsg<>"" Then objShell.Popup strMsg,iDisplayTimeout,Company,vbOKOnly+vbInformation
' Ende des Haupscripts
' Benötigte Funktionen
Function PasswordExpires(strDomain,strUser)
On Error Resume Next
Dim objUser
Set objUser=GetObject("WinNT:" & strDomain & "/" & strUser & ",user")
PassExp=INT(objUser.MaxPasswordAge/86400)-INT(objUser.PasswordAge/86400)
If PassExp <0 Then
strPassMsg="Ihr Passwort läuft nie ab."
Else
strPassMsg="Passwort läuft ab in: " & vbCrLf & PassExp & " Tag(en)"
End If
PasswordExpires=strPassMsg
End Function
Function IsAMemberOf(strDomain,strUser,strGroup)
On Error Resume Next
Set objUser=GetObject("WinNT:" & strDomain & "/" & strUser & ",user")
Set objGrp=GetObject("WinNT://" & strDomain & "/" & strGroup & ",group")
If objGrp.IsMember(objUser.ADsPath) Then
IsAMemberOf=True
Else
IsAMemberOf=False
End If
End Function
Sub MapIt(strDrive,strMap)
On Error Resume Next
If objFSO.DriveExists(strDrive) Then objNetwork.RemoveNetworkDrive(strDrive)
objNetwork.MapNetworkDrive strDrive,strMap
If Err.Number <> 0 and blnShowError Then
strMsg="Es ist ein Fehler aufgetreten beim Verbinden von " & UCase(strDrive) & " zu " &_
strMap & VbCrLf & Err.Description
objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation
Err.Clear
End If
End Sub
Du packst das in ne Textdatei und speicherst sie als .vbs
Vorher die Pfade alle anpassen und den Zeitserver eintragen
Diese habe ich dann den Usern der entprechenden Gruppen zugeordnet.
Ist ein vbs:
' Logon Script
'**
On Error Resume Next
Dim objFSO,objFILE,objShell,objNetwork, strWelcomeMsg, strHelpMsg, iErrorTimeout, blnShowError
Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objShell=CreateObject("Wscript.Shell")
Set objNetwork=CreateObject("Wscript.Network")
Set wshNetwork = WScript.CreateObject( "WScript.Network" )
Const Company = "Durch Firmennamen ersetzen"
strWelcomeMsg="Willkommen " & objNetwork.UserName & ", in der Domain " & objNetwork.UserDomain & "!" & vbCrLf & vbCrLf & "Ihre Systemzeit wurde mit dem Anmeldeserver synchronisiert." & vbCrLf & vbCrLf & "Aktuelles Datum und Uhrzeit: " & vbCrLf & Now()
strHelpMsg=""
iErrorTimeout=60
blnShowError=False
' Zeit Synchronisieren
objShell.Run "net time \\ZEITSERVER /set /yes", 0, True
' Laufwerke löschen
objShell.Run "net use /delete g: /yes", 0, True
objShell.Run "net use /delete i: /yes", 0, True
objShell.Run "net use /delete k: /yes", 0, True
objShell.Run "net use /delete v: /yes", 0, True
objShell.Run "net use /delete m: /yes", 0, True
objShell.Run "net use /delete t: /yes", 0, True
objShell.Run "net use /delete u: /yes", 0, True
objShell.Run "net use /delete z: /yes", 0, True
objShell.Run "net use /delete o: /yes", 0, True
objShell.Run "net use /delete w: /yes", 0, True
objShell.Run "net use /delete q: /yes", 0, True
objShell.Run "net use /delete p: /yes", 0, True
objShell.Run "net use /delete y: /yes", 0, True
' Laufwerke mappen
objShell.Run "net use g: \\HM_srv02\Daten", 0, True
objShell.Run "net use i: \\HM_srv02\Daten2", 0, True
objShell.Run "net use k: \\HM_srv02\Daten3", 0, True
objShell.Run "net use t: \\HM_srv02\Tausch", 0, True
objShell.Run "net use z: \\HM_SRV02\zeiterfassung", 0, True
objShell.Run "net use o: \\Nas\Grafik_Stamm", 0, True
objShell.Run "net use w: \\Nas\intern", 0, True
objShell.Run "net use q: \\Nas\GrafikArchiv", 0, True
objShell.Run "net use v: \\Nas\Verwaltung", 0, True
objShell.Run "net use p: \\Nas\Produktion", 0, True
objShell.Run "net use u: \\Farbserver\GMG_Daten", 0, True
' Homverzeichnis des Users(Ordner=Benutzername)
objShell.Run "net use Y: \\HM_srv02\Tausch\" & objNetwork.Username , 0, True
' Zusammenfassung erstellen
iDisplayTimeout=20 ' Nachricht schließt sich nach 20 Sekunden
strMsg=""
strMsg=strMsg & strWelcomeMsg & VbCrLf
strMsg=strMsg & vbcrlf
strMsg=strMsg & PasswordExpires(objNetwork.Userdomain,objNetwork.Username) & VbCrLf
strMsg=strMsg & vbcrlf
' Netzlaufwerke auflisten
Set objDrives = objNetwork.EnumNetworkDrives
strMsg=strMsg & "Verbindung zu Netzlaufwerk(en):" & vbcrlf
If objDrives.Count = 0 Then
strMsg = strMsg & CRLF & _
"Kein Netzlaufwerk ist verbunden." & CRLF
Else
For i = 0 to objDrives.Count - 1 Step 2
strMsg=strMsg & "Laufwerk " & objDrives.Item(i) & "=" & objDrives.Item(i+1) & vbcrlf
Next
strMsg=strMsg & vbcrlf
End if
' Zusammenfassung zeigen
If strMsg<>"" Then objShell.Popup strMsg,iDisplayTimeout,Company,vbOKOnly+vbInformation
' Ende des Haupscripts
' Benötigte Funktionen
Function PasswordExpires(strDomain,strUser)
On Error Resume Next
Dim objUser
Set objUser=GetObject("WinNT:" & strDomain & "/" & strUser & ",user")
PassExp=INT(objUser.MaxPasswordAge/86400)-INT(objUser.PasswordAge/86400)
If PassExp <0 Then
strPassMsg="Ihr Passwort läuft nie ab."
Else
strPassMsg="Passwort läuft ab in: " & vbCrLf & PassExp & " Tag(en)"
End If
PasswordExpires=strPassMsg
End Function
Function IsAMemberOf(strDomain,strUser,strGroup)
On Error Resume Next
Set objUser=GetObject("WinNT:" & strDomain & "/" & strUser & ",user")
Set objGrp=GetObject("WinNT://" & strDomain & "/" & strGroup & ",group")
If objGrp.IsMember(objUser.ADsPath) Then
IsAMemberOf=True
Else
IsAMemberOf=False
End If
End Function
Sub MapIt(strDrive,strMap)
On Error Resume Next
If objFSO.DriveExists(strDrive) Then objNetwork.RemoveNetworkDrive(strDrive)
objNetwork.MapNetworkDrive strDrive,strMap
If Err.Number <> 0 and blnShowError Then
strMsg="Es ist ein Fehler aufgetreten beim Verbinden von " & UCase(strDrive) & " zu " &_
strMap & VbCrLf & Err.Description
objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation
Err.Clear
End If
End Sub
Du packst das in ne Textdatei und speicherst sie als .vbs
Vorher die Pfade alle anpassen und den Zeitserver eintragen

Moin,
definiere "einfach" mal ganz genau
Einfach ist ein Script, das "logisch alles abarbeitet.
Einfach ist, wenn ein User die Abteilung wechselt, den User lediglich in eine andere Gruppe zu schieben und nicht auch noch daran denken zu müssen, sein loginscript umzubiegen
Kixscript:
usw. Wenn du Kixtart nicht nehmen willst - besorg dir das reskit von 2003 und nimm ifmember - aber das nur als Ausnahme - Kix "kann" nicht nur Gruppen abfragen, sondern auch Regkeys usw. usf.
Gruß
edit @ Nappermän - jau ein vbs ist ja natürlich gleich viel viel besser und kostet auch kaum Zeit bei der täglichen Anmeldung - und "kurz" ist es auch noch
/edit
wo hab ich heute nur meine Ironie versteckt?
Immer frei nach dem Motto, kaum meldet sich jemand, mit einer guten Idee, gleich eine schlechte hinterherwerfen
btw: ob es ein Net Use * /delete nicht auch tun würde?

Jetzt weiß alle Welt, das Ihr als Fileserver ein NAS habt - ich hätt ja wenigstens das noch in SAN geändert
definiere "einfach" mal ganz genau
Einfach ist ein Script, das "logisch alles abarbeitet.
Einfach ist, wenn ein User die Abteilung wechselt, den User lediglich in eine andere Gruppe zu schieben und nicht auch noch daran denken zu müssen, sein loginscript umzubiegen
Kixscript:
IF INGROUP ("domain\Verwaltung")
use m:"\\servername\Abteilungen$\Verwaltung"
endif
usw. Wenn du Kixtart nicht nehmen willst - besorg dir das reskit von 2003 und nimm ifmember - aber das nur als Ausnahme - Kix "kann" nicht nur Gruppen abfragen, sondern auch Regkeys usw. usf.
Gruß
edit @ Nappermän - jau ein vbs ist ja natürlich gleich viel viel besser und kostet auch kaum Zeit bei der täglichen Anmeldung - und "kurz" ist es auch noch
wo hab ich heute nur meine Ironie versteckt?
Immer frei nach dem Motto, kaum meldet sich jemand, mit einer guten Idee, gleich eine schlechte hinterherwerfen
btw: ob es ein Net Use * /delete nicht auch tun würde?
Du packst das in ne Textdatei
...und du nicht in Code Blöcke - warum war eigentlich keine Zeit - dein Script zu Antonymisieren drin Jetzt weiß alle Welt, das Ihr als Fileserver ein NAS habt - ich hätt ja wenigstens das noch in SAN geändert