2017-04-20 98 views
0

有創建新用戶帳戶的腳本,包括主目錄。帳戶設置工作正常,但是當我嘗試在主目錄上分配權限時,它在Set-ACL命令上出現錯誤,指定找不到該用戶。我們有多個域控制器,所以我可以理解一個DC如何創建用戶,而另一個DC嘗試拉制燙髮,但是在腳本的頂部,我使用「Set-ADServerSettings -PreferredServer」來指定要交談的DC至。我期待這個解決問題,但沒有喜悅。AD使用新用戶帳戶的權限

腳本太大,張貼在這裏,但流程如下:
*負載AD模塊
*用戶信息解析CSV文件
*創建用戶帳戶
*創建的服務器託管主目錄主文件夾
*目錄上設置燙髮-error

用於設置燙髮的代碼片段是:

# get current permissions of the newly created home folder 
$acl = Get-Acl $newHomeFolder 
# allow inherited rules from parent folder 
$acl.SetAccessRuleProtection($False, $True) 

$newAcl = "<domain>\$logonName", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow" 
$objNewAcl = New-Object System.Security.AccessControl.FileSystemAccessRule($newAcl) 
$acl.AddAccessRule($objNewAcl) 

Set-Acl -Path $newHomeFolder -AclObject $acl 

有關如何解決這個問題的任何想法都允許設置權限?

+1

如果在允許DC之間的複製之後等待並運行它,它會工作嗎?只是確認它純粹是一個時間問題,而不是別的。在創建組和在同一腳本中設置ACL時,我遇到了類似的問題。我通過投入20秒左右的開始睡眠來解決它。根據您一次處理的用戶數量,不確定這是否實用。 – Ryan

回答

0

我有一個類似的事情,我正在爲一所學校工作。經過多次試驗和許多錯誤,我來到這裏:

$acl = Get-Acl $newHomeFolder 
$inherit = [system.security.accesscontrol.InheritanceFlags]"ObjectInherit",[system.security.accesscontrol.InheritanceFlags]"ContainerInherit" 
$propagation = [system.security.accesscontrol.PropagationFlags]"None" 
$accessrule = New-Object system.security.AccessControl.FileSystemAccessRule("[domain\$username", "FullControl", $inherit, $propagation, "Allow") 
$acl.AddAccessRule($accessrule) 
set-acl -aclobject $acl $directory 

希望這會有所幫助。