53111
Goto Top

Automatisch Home Verzeichnis für Domain Nutzer anlegen

Hallo
ich möchte auf einem Win 2003 server automatisch home verzeichnisse für jeden neu angelegten Domain nutzer anlegen. ist sowas möglich und wie mache ich sowas. die verzeichnisse sollten den selben namen haben wie der bentzername und nur dem benutzer selbst volle zugriffsrechte geben.

gruß saibonaut

Content-ID: 68584

Url: https://administrator.de/forum/automatisch-home-verzeichnis-fuer-domain-nutzer-anlegen-68584.html

Ausgedruckt am: 15.04.2025 um 12:04 Uhr

Logan000
Logan000 13.09.2007 um 11:44:35 Uhr
Goto Top
Unter Basisordner trägst Du einfach ein:
Verbinden von H: mit \\Server\Home\%Username%
53111
53111 13.09.2007 um 11:56:25 Uhr
Goto Top
hat so ein eintrag auswirkungen darauf wer auf den ordner zurgiffsrechte hat? kann ich nicht theoretisch als anderer nutzer auf \\Server\Home\%fremder_Username% zugreifen. ich möchte dass nur der nutzer zugriff hat bei dem der benutzername gleich dem ordnernamen ist.
Logan000
Logan000 13.09.2007 um 12:16:22 Uhr
Goto Top
Der jeweilige User bekommt natürlich Vollzugriff.
Weitere Berechtigungen hängen von der Rechtevererbung des übergeordneten Verzeichnisses ab (hier Home).
53111
53111 13.09.2007 um 13:52:39 Uhr
Goto Top
kann ich das auch irgendwie lösen ohne ein netzlaufwerk einhängen zu müssen. und wie würde ich das jetzt für mehrer nutzer machen. ich müsste ja jeden nutzer anklicken und ihm mitteilen welches sein homelaufwerk ist.


vielleicht auch als erweiterung zu meinem netzlaufwerkscript:

Dim netzobjekt, benutzername, laufwerkarray, arraylaenge, zaehler, g, h, i, j, k 
set netzobjekt=wscript.createobject("wscript.network")  
benutzername = netzobjekt.UserName
rechnername = netzobjekt.ComputerName
Set test = netzobjekt.EnumNetworkDrives
	
'Laufwerknamen + gewünschten Pfad hier einstellen:'  
laufwerkarray = Array(	"Z:",_  
			                  "\\Server2\Home\"&benutzername)  

If rechnername = "SERVER2" Then  

Else
    If test.Count <> 0 Then
          	For h = 0 to UBound(laufwerkarray) - 1 Step 2
            	 For g = 0 to test.Count - 1 Step 2
          		    If laufwerkarray(h) = test.Item(g) And laufwerkarray(h+1) = test.Item(g+1) Then
                  zaehler = zaehler + 1 
                  Else	
          		    End If
               Next
            Next
            
            If zaehler = (UBound(laufwerkarray) + 1) / 2 AND zaehler < 26  Then
            Else
                 call sublaufwerke 
            End If  
            
    Else
       call sublaufwerke 
    End If

End If


Sub sublaufwerke 


      	
      For i = 0 to test.Count - 1 Step 2
      	For j = 0 to UBound(laufwerkarray)			
      		If test.Item(i) = laufwerkarray(j) Then
              netzobjekt.RemoveNetworkDrive laufwerkarray(j), true, true				
      		End If
      	Next
      Next
      
      For k = 0 to (UBound(laufwerkarray)-1) 			
        netzobjekt.mapnetworkdrive laufwerkarray(k), laufwerkarray(k+1), true
      Next


End Sub 
Logan000
Logan000 13.09.2007 um 14:05:10 Uhr
Goto Top
Must du nur noch an geeigneter stelle einbauen (vor dem verbinden).

path = "\\Server\Home\" & benutzername   
Set fso = CreateObject("Scripting.FileSystemObject")  
if not fso.FolderExists(Path) Then
	fso.createfolder Path		
end if
53111
53111 13.09.2007 um 14:18:34 Uhr
Goto Top
dim datenobj
set datenobj=CreateObject("Scripting.FileSystemObject")  
datenobj.CreateFolder("\\Server2\Home\TEST2")  

werde mal testes ob das mit den rechten auch so funktioniert wie ich will
53111
53111 13.09.2007 um 14:25:39 Uhr
Goto Top
leider geht es auf einem normalen benutzeraccount doch nicht. bei einem normalen nutzer kommt die meldung: erlaubnis verweigert. wenn ich nun die rechte des \\Server2\Home verzeichnisses so ändern würde das jeder nutzer darauf schreiben kann ist die ganze geschichte mit dem "PRIVAT" verzeichnis für jeden hinfällig, oder?
53111
53111 13.09.2007 um 14:37:42 Uhr
Goto Top
Alos ich habe das jetzt getestet indem ich jedem nutzer schreibrechte auf //Server2/Home gegeben habe und das skript ausgeführt habe:


Dim netzobjekt, benutzername, laufwerkarray, arraylaenge, zaehler, g, h, i, j, k 
set netzobjekt=wscript.createobject("wscript.network")  
benutzername = netzobjekt.UserName
rechnername = netzobjekt.ComputerName

 dim datenobj
  set datenobj=CreateObject("Scripting.FileSystemObject")  
    'Vorsicht kein Test an schon bestehendem Nutzer ohne "2"'  
    if datenobj.FolderExists("\\Server2\Home\"& benutzername) Then  
  
    Else
        datenobj.CreateFolder("\\Server2\Home\"& benutzername)  
    End If    


Set test = netzobjekt.EnumNetworkDrives
	
'Laufwerknamen + gewünschten Pfad hier einstellen:'  
laufwerkarray = Array(	"Z:",_  
			                  "\\Server2\Home\"&benutzername)  

If rechnername = "SERVER2" Then  

Else
    If test.Count <> 0 Then
          	For h = 0 to UBound(laufwerkarray) - 1 Step 2
            	 For g = 0 to test.Count - 1 Step 2
          		    If laufwerkarray(h) = test.Item(g) And laufwerkarray(h+1) = test.Item(g+1) Then
                  zaehler = zaehler + 1 
                  Else	
          		    End If
               Next
            Next
            
            If zaehler = (UBound(laufwerkarray) + 1) / 2 AND zaehler < 26  Then
            Else
                 call sublaufwerke 
            End If  
            
    Else
       call sublaufwerke 
    End If

End If


Sub sublaufwerke 
    	
      For i = 0 to test.Count - 1 Step 2
      	For j = 0 to UBound(laufwerkarray)			
      		If test.Item(i) = laufwerkarray(j) Then
              netzobjekt.RemoveNetworkDrive laufwerkarray(j), true, true				
      		End If
      	Next
      Next
      
      For k = 0 to (UBound(laufwerkarray)-1) 			
        netzobjekt.mapnetworkdrive laufwerkarray(k), laufwerkarray(k+1), true
      Next


End Sub 


der ordner wird mit dem namen erstellt. allerdings haben auch andere nutzer im netzwerk zugriffsrechte auf den ordner (und nicht nur schreibrechte wie man vermuten könnte!) wie kann ich die rechte eines ordners per vbs nun verstellen? der namen des neu erstellten ordners ist auch der name des nutzers der vollzugriff haben soll!