minimalwerk
Goto Top

Kann man per Powershell Benutzer-Ordner aus vorhandenen AD Konten erzeugen?

Hallo liebe Community,

folgende Aufgabenstellung liegt mir vor:

Unternehmen A hat 78 Mitarbeiter. Alle sind sauber im AD (Server 2012 R2) mit Vor -und Nachname angelegt.

Nun möchte die GF, dass alle Mitarbeiter auf dem FileServer einen eigenen User Ordner mit 10GB Platz bekommen. Den Ressourcen Manager habe ich bereits installiert und auch ein Kontigent erstellt. Zudem wurde auf dem FileServer eine neue Freigabe erzeugt. Die Berechtigung wurde für die Domänen-Benutzer so angelegt, dass nur der jeweilie User-Ordner angezeigt wird. Somit können Domänen-Benutzer keine Unterordner sehen oder anlegen. Dies ist so gewollt, da der Benutzer auf keine fremden Ordner zugreifen soll.

Damit die Benutzer auf ihren persönlichen Ordner Zugriff erhalten, muss ich ja zunächst unterhalb des neu erzeugten Freigabe Ordner für jeden Mitarbeiter einen eigenen Ordner anlegen und dort die Berechtigung nur für diesen Ordner setzen. Bei 78 Mitarbeitern ist dies eine zeitraubene Arbeit... zumindest wenn dies manuell für jeden einzelnen erfolgen wird :D

Gibt es vielleicht eine Möglichkeit dies über ein Powershell Script zu lösen?

Folgendes stelle ich mir vor:

- Vor -und Nachname der Domänen-Benutzer aus dem AD auslesen
- Daraus dann einen Ordner erzeugen der wie folgt lautet "Vorname.Nachname"
- Den jeweiligen AD Domänen-Benutzer die Berechtigung "Ändern" zulassen für seinen Ordner erteilen


Lieben Gruß,
Frank

Content-Key: 253916

Url: https://administrator.de/contentid/253916

Printed on: April 16, 2024 at 23:04 o'clock

Member: GuentherH
GuentherH Nov 05, 2014 at 13:44:08 (UTC)
Goto Top
Bei 78 Mitarbeitern ist dies eine zeitraubene Arbeit

Wenn 2 Minuten zeitraubend ist, dann ja face-wink

Benutzer- und Computer (das.msc), alle Benutzer markieren, rechte Maustaste -> Eignschaften -> Register Profil und bei Basisorder \\servername\freigabe\%username% eintragen.
Mit Klick auf OK werden die Ordnernamen mit entsprechender Berechtigung für den User angelegt.

LG Günther
Member: minimalwerk
minimalwerk Nov 05, 2014 updated at 15:21:38 (UTC)
Goto Top
super, vielen lieben Dank!
Werden die Ordner dann beim nächsten Login der Mitarbeiter erstellt? Denn mit Klick auf OK sind erstmal keine erzeugt worden.

Dieser Ordner hat aber dann nichts mit dem umbiegen der "Eigenen Dateien" zu tun, korrekt? Es soll nur ein reiner Speicherort auf dem Server sein, welchen ich dann noch auf den Clients einbinden will.

Dann noch einen Hinweis. Ich musste auf dem DC erst der Freigabe ein Laufwerk zuordnen und dann beim Basisiordner U:\%username% eintragen.
Mit \\srv3\user\%username% bekam ich immer die Fehlermeldung: "Der eingegebene Pfad ist ungültig. geben Sie einen gültigen Pfad mit dem Format Laufwerkbuchstabe:\Verzeichnis ein."

Im Explorer funktioniert dieses smb Aufruf jedoch ohne Probleme.

LG
Member: colinardo
Solution colinardo Nov 05, 2014, updated at Nov 27, 2014 at 17:37:47 (UTC)
Goto Top
Hallo Frank,
Zitat von @minimalwerk:
Werden die Ordner dann beim nächsten Login der Mitarbeiter erstellt? Denn mit Klick auf OK sind erstmal keine erzeugt worden.
Sollten sie aber eigentlich, überprüfe die Rechte des Root-Ordners (siehe dazu den Link unten)
Dieser Ordner hat aber dann nichts mit dem umbiegen der "Eigenen Dateien" zu tun, korrekt? Es soll nur ein reiner Speicherort auf dem Server sein, welchen ich dann noch auf den Clients einbinden will.
Wenn keine Umleitung per GPO vorgenommen wird wird er erst mal nur erzeugt.
Dann noch einen Hinweis. Ich musste auf dem DC erst der Freigabe ein Laufwerk zuordnen und dann beim Basisiordner U:\%username% eintragen.
Hier steht genau welche Voraussetzungen für das Rootverzeichnis geschaffen sein müssen:
http://blogs.technet.com/b/askds/archive/2008/06/30/automatic-creation- ...


Ansonsten lässt sich das mit einem kleinen Powershell-Script realisieren ...was etwa so aussieht:
Import-Module ActiveDirectory
$rootPath = '\\Server\Share\MyUsers'  
$users = Get-Aduser -Filter * | ?{$_.Surname -ne $null -and $_.Givenname -ne $null}

foreach($user in $users){
    $userFolder = "$rootPath\$($user.GivenName).$($user.Surname)"  
    if (!(Test-Path $userFolder)){
        Write-Host "Erstelle Ordner für User '$($user.SamAccountName)' ($userfolder)" -ForegroundColor Green  
        md $userFolder -Force | Out-Null
        $acl = Get-Acl $userFolder
        $objACE = New-Object System.Security.AccessControl.FileSystemAccessRule($user.SamAccountName,"FullControl","ContainerInherit,ObjectInherit","None","Allow")  
        $acl.SetAccessRule($objACE)
        set-acl -Path $userFolder -AclObject $acl
    }else{
        write-host "Ordner für User '$($user.SamAccountName)' existiert schon" -ForegroundColor DarkYellow  
    }
}

Grüße Uwe
Member: minimalwerk
minimalwerk Nov 05, 2014 at 17:49:28 (UTC)
Goto Top
Ok, ich lese mir das morgen dann nochmal durch und gebe ein Feedback.
Danke schonmal face-smile

LG