Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I tried to create user using New-QADUser cmdlet. I know this cmdlet has -HomeDrive switch. But the problem is that cmdlet is just applying path string to user's account and not creating user's home directory on the fileserver like it happens when you use ADUC console. How can I do it corerctly?

share|improve this question

Does the script that is creating the user account have administrative access to the file server as well?

Why not let the script create the home drive? very simple example:

$user = read-host -prompt "Enter Username"
$share = "usershare$"
New-QADUser -name $user etc..
newitem -path \\$\$share -name $user -itemtype directory

The only gotcha here is then setting the ACLs on the folder, that could possibly be done with set-acl. A bit more info on ACLS here..

The nice thing about scripting it in this way is being able to then output what it is doing to a log file for script auditing purposes. Of course, it doesn't necessarily give you the 1-step nicety the MMC console does.

share|improve this answer
Thanks a lot! Your advice was totally helpful. – Maximus Mar 12 '10 at 7:13
up vote 2 down vote accepted

Resulting code for creating and connecting home drive to user with $Sam sam account name:

$HomeDir = "<Path>"
$Sam = "<User's Sam Account Name>"
$User = Get-QADUser -SamAccountName "$Sam"
New-Item -Path $HomeDir -Name $Sam -ItemType Directory
$UserDir = "$HomeDir\$Sam"
$Rights = [System.Security.AccessControl.FileSystemRights]::FullControl
$Inherit=[System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("$Sam",$Rights,$Inherit,$Propogation,$Access)
$ACL = Get-Acl $UserDir
Set-Acl $UserDir $ACL 
Set-QADUser -Identity $User -HomeDirectory "$UserDir" -HomeDrive "Z:"
share|improve this answer

powershell setfolderpermission.ps1
download from

Function CreateHomeFolder {
  $homeserver = '\\homeserver'
  $HomeFolderRoot = "\home\'
  Mkdir ($homeserver + $HomeFolderRoot + $userinfo['AccountName'])

Function UpdateHomeDirRights2 {
  $homeserver = '\\taz'
  $HomeDrive = "S"
  $HomeFolderRoot = "\home\'
  $HomeDirectory = $homeserver + $HomeFolderRoot + $userinfo[*'AccountName'*]
  ./SetFolderPermission.ps1 -path $HomeDirectory -Access  $userinfo[*'UserPrincipalName'*] -Permission FullControl
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.