2017-04-20 9 views
0

ホームディレクトリを含む新しいユーザーアカウントを作成するためのスクリプトがあります。アカウントの設定はうまくいきますが、ホームディレクトリにアクセス許可を割り当てようとすると、ユーザーが見つからないことを指定してSet-ACLコマンドでエラーが発生します。私たちは複数のドメインコントローラーを持っているので、私はDCがどのようにユーザーの作成時にヒットするのか理解できますが、もう1つはパーマを引き出そうとしますが、スクリプトの最上部では、 "Set-ADServerSettings-PreferredServer"に。私はこの問題を解決することを期待していましたが、喜びはありませんでした。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 

希望がこれを助けます。

関連する問題