Basisordner via PowerShell setzen
Hallo Zusammen,
ich habe ein Problem mit dem erstellen des Basisordners unter Server 2008 r2.
Den Basisordner setze ich bei allen Benutzern mit dem Befehl:
Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet 14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST" -ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\$($_.Samaccountname)"}
Das ganze wird auch korrekt im AD-Konto angezeigt:
Jedoch wird der Ordner nicht unter \\Server\vol2\home\ mit dem vn.nn des Benutzers erstellt.
Gehe ich jetzt ins AD-Konto des Users rein, und klicke hier nochmal auf den Basisordner und verändere ein Zeichen und klicke auf übernehmen wird der Ordner unter \\Server\vol2\home\vn.nn angelegt ...
Jemand eine Idee ob es hier noch einen Befehl gibt damit der Ordner auch gleich angelegt wird mit Vollzugriff für den jeweiligen Benutzer?
Vielen Dank schonmal!
ich habe ein Problem mit dem erstellen des Basisordners unter Server 2008 r2.
Den Basisordner setze ich bei allen Benutzern mit dem Befehl:
Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet 14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST" -ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\$($_.Samaccountname)"}
Das ganze wird auch korrekt im AD-Konto angezeigt:
Jedoch wird der Ordner nicht unter \\Server\vol2\home\ mit dem vn.nn des Benutzers erstellt.
Gehe ich jetzt ins AD-Konto des Users rein, und klicke hier nochmal auf den Basisordner und verändere ein Zeichen und klicke auf übernehmen wird der Ordner unter \\Server\vol2\home\vn.nn angelegt ...
Jemand eine Idee ob es hier noch einen Befehl gibt damit der Ordner auch gleich angelegt wird mit Vollzugriff für den jeweiligen Benutzer?
Vielen Dank schonmal!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 228669
Url: https://administrator.de/forum/basisordner-via-powershell-setzen-228669.html
Ausgedruckt am: 22.12.2024 um 22:12 Uhr
18 Kommentare
Neuester Kommentar
Hallo r00t-1337,
der Befehl an sich funktioniert so. Ich habe in meiner Schatzkiste nachgesehen und einen Link aus dem technet von MS gefunden.
http://blogs.technet.com/b/heyscriptingguy/archive/2013/06/06/creating- ...
Mit diesen Informationen habe ich damals ein Tool programmiert, welches über ein WebGui Benutzer anlegen kann. Hier hat auch das mit dem Homelaufwerk gepasst.
Falls du noch Infos brauchst, immer melden.
Grüße
Lenny Linux
der Befehl an sich funktioniert so. Ich habe in meiner Schatzkiste nachgesehen und einen Link aus dem technet von MS gefunden.
http://blogs.technet.com/b/heyscriptingguy/archive/2013/06/06/creating- ...
Mit diesen Informationen habe ich damals ein Tool programmiert, welches über ein WebGui Benutzer anlegen kann. Hier hat auch das mit dem Homelaufwerk gepasst.
Falls du noch Infos brauchst, immer melden.
Grüße
Lenny Linux
Hi,
wenn du anstatt den Usernamen in deinem Befehl aufzulösen, die Variable %username% im Homepfad verwendest, sollte der Ordner von Windows normalerweise automatisch angelegt werden.
http://blog.alekel.de/homeverzeichnis-und-profil-automatisch-anlegen/
Grüße Uwe
wenn du anstatt den Usernamen in deinem Befehl aufzulösen, die Variable %username% im Homepfad verwendest, sollte der Ordner von Windows normalerweise automatisch angelegt werden.
http://blog.alekel.de/homeverzeichnis-und-profil-automatisch-anlegen/
"\\Server\vol2\home\%username%"}
Zitat von @r00t-1337:
Es steht dann zwar im jeweligen AD-Konto der Pfad so drinnen. \\Server\vol2\home\%username%
jedoch wird der Ordner immer noch nicht angelegt. Erst wenn ich ins Konto gehe, etwas verändere und auf OK klicke legt er Ihn entsprechend an.
Wird erst beim ersten Anmelden des Users an der Domäne erstellt ...Es steht dann zwar im jeweligen AD-Konto der Pfad so drinnen. \\Server\vol2\home\%username%
jedoch wird der Ordner immer noch nicht angelegt. Erst wenn ich ins Konto gehe, etwas verändere und auf OK klicke legt er Ihn entsprechend an.
Habe mal gebastelt:
Die Variablen $UserName; $HomePath musst du nur entsprechend anpassten.
Bsp: $UserName = "testuse" $HomePath = "\\Server\vol2\home\
New-Item -Name $UserName -ItemType Directory -Path $HomePath | Out-Null
Set-ADUser $UserName -HomeDirectory "$HomePath\$UserName" -HomeDrive P:
getestet auf einem WindowsServer 2k8 r2 mit powershell 1.2
Die Variablen $UserName; $HomePath musst du nur entsprechend anpassten.
Bsp: $UserName = "testuse" $HomePath = "\\Server\vol2\home\
New-Item -Name $UserName -ItemType Directory -Path $HomePath | Out-Null
Set-ADUser $UserName -HomeDirectory "$HomePath\$UserName" -HomeDrive P:
getestet auf einem WindowsServer 2k8 r2 mit powershell 1.2
Zitat von @r00t-1337:
Was meinst du mit "Die Variablen $UserName; $HomePath musst du nur entpsrechen anpassen ... ? Wie würde denn das mit
deinem Vorschlag dann in diesem Befehl lauten?:
Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet
14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST"
-ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\$($_.Samaccountname)"}
oder in diesem:
Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet
14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST"
-ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\%username%"}
Was meinst du mit "Die Variablen $UserName; $HomePath musst du nur entpsrechen anpassen ... ? Wie würde denn das mit
deinem Vorschlag dann in diesem Befehl lauten?:
Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet
14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST"
-ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\$($_.Samaccountname)"}
oder in diesem:
Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet
14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST"
-ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\%username%"}
was dir fehlt ist der Befehl zum anlegen des Directorys im FileSystem. Deswegen ist der Ordner auch nicht da.
Uwe hat schon recht, dass die Erstellung des Ordners bei erstmaliger Anmeldung an der Domäne stattfindet. Wenn das nicht so sein soll, musst den Ordner mit dem Befehl
New-Item -Name $UserName -ItemType Directory -Path $HomePath | Out-Null
extra anlegen.
Ich hoffe ich konnte dir helfen.
das würde ich lieber lassen, dann ist nämlich nicht der User der Besitzer des Ordners sondern der Account mit dem das Script ausgeführt wurde ... wenn schon dann bitte mit Set-ACL und Konsorten die Rechte richtig setzen.
wenn man es wie oben schon gesagt macht wird der Ordner automatisch beim ersten Anmelden des Users erstellt und die Rechte sitzen entsprechend korrekt !
wenn man es wie oben schon gesagt macht wird der Ordner automatisch beim ersten Anmelden des Users erstellt und die Rechte sitzen entsprechend korrekt !
Zitat von @colinardo:
das würde ich lieber lassen, dann ist nämlich nicht der User der Besitzer des Ordners sondern der Account mit dem das
Script ausgeführt wurde ... wenn schon dann bitte mit Set-ACL und Konsorten die Rechte richtig setzen.
das würde ich lieber lassen, dann ist nämlich nicht der User der Besitzer des Ordners sondern der Account mit dem das
Script ausgeführt wurde ... wenn schon dann bitte mit Set-ACL und Konsorten die Rechte richtig setzen.
Hallo Uwe,
das ist natürlich klar. Die Berechtigungen müssen entsprechend mitgegeben werden.
Sollte kein Pfusch werden nur eine Hilfestellung.
$users = Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN"
foreach($user in $users){
Set-ADUser $user -StreetAddress "Teststreet 14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST" -ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\%username%"
# Ordner anlegen
$folder = new-item -Path "\\Server\vol2\home\$($user.Samaccountname)" -ItemType Dir -Force
# ACL des Ordners holen
$acl = get-acl $folder.FullName
# Neue Access Rule erstellen und dem Ordner hinzufügen
$objACE = New-Object System.Security.AccessControl.FileSystemAccessRule($user.UserPrincipalName,"FullControl","ContainerInherit,ObjectInherit","None","Allow")
$acl.AddAccessRule($objACE)
# Besitzer des Ordners setzen
$acl.SetOwner([System.Security.Principal.NTAccount]"$($user.UserPrincipalName)")
# neue ACL des Ordners speichern
Set-Acl $folder.FullName -AclObject $acl
}