2016-04-06 14 views
0

"HomeDirectory"パラメータに.csvファイルが与えられたユーザーのリストを設定しようとしています。これは私のスクリプトです Urlpowershellを使用してADDS 2008 R2のユーザーのHomeDirectoryパラメータを設定します

$UserList = Import-Csv -Path c:\scripts\Users2.csv; 
foreach ($User in $UserList) { 

$Account = Get-ADUser -Identity $User.SamAccountName 
$Account.HomeDirectory = '\\adminclusterfs\homedir\{0}' -f $Account.SamAccountName; 
$Account.homeDrive = "O:" 
Set-ADUser -Instance $Account -PassThru 
} 

スクリプトは、ほぼ正常に動作...のHomeDirectoryとホームドライブパラメータは、私が変更したスクリプトトレバー・サリバンによって作成され、以下の記事に記載されているを使用しています.csvファイルの各ユーザーに対して正しく設定しますが、は、ファイルサーバー上にフォルダが作成されていません。私は手動でこれらのパラメータを設定するとき

、フォルダにも誰かがこの問題を解決した

作成されますか?

本当にありがとうございます!

+0

リンクを使用しないでください。代わりに、最小限で十分なコード抽出をコピーします。 –

+0

ありがとう@Aurélien –

答えて

0

ここでは、HomeDirectoryとHomeDriveパラメータを設定するために作成した完全なスクリプトを作成し、フォルダを作成してアクセス権を割り当てます。 Trevor SullivanとSean Kearneyに感謝しています。

# Import the user data from CSV 
$UserList = Import-Csv -Path c:\scripts\Users2.csv; 

# For each user ... 
foreach ($User in $UserList) { 
# Get the user's AD account 
$Account = Get-ADUser -Identity $User.SamAccountName 

# Dynamically declare their home directory path in a String 
$Account.HomeDirectory = '\\fileserver\homedir\{0}' -f $Account.SamAccountName; 
$Account.homeDrive = "O:" 

# Set their home directory and home drive letter in Active Directory 
Set-ADUser -Instance $Account 

# Create the folder on the root of the Homedirectory Share 
NEW-ITEM –path $Account.HomeDirectory -type directory -force 

# Set parameters for Access rule 
$IdentityReference = 'Domain\' + $Account.SamAccountName 
$FileSystemAccessRights = [System.Security.AccessControl.FileSystemRights]"FullControl" 
$InheritanceFlags = [System.Security.AccessControl.InheritanceFlags]::"ContainerInherit","ObjectInherit" 
$PropagationFlags = [System.Security.AccessControl.PropagationFlags]"None" 
$AccessControl = [System.Security.AccessControl.AccessControlType]"Allow" 

# Build Access Rule from parameters 
$AccessRule = NEW-OBJECT System.Security.AccessControl.FileSystemAccessRule -argumentlist ($IdentityReference,$FileSystemAccessRights,$InheritanceFlags,$PropagationFlags,$AccessControl) 

# Get current Access Rule from Home Folder for User 
$HomeFolderACL = GET-ACL $Account.HomeDirectory 
$HomeFolderACL.AddAccessRule($AccessRule) 

# Set Access rule to the folder 
SET-ACL –path $Account.HomeDirectory -AclObject $HomeFolderACL 
} 
0

ADユーザーとコンピュータは、アカウントにアクセス権がある場合は、フォルダを作成します。これは、ADサーバー自体ではなく、コンピュータで実行されるユーザーとコンピュータプログラムの機能です。

フォルダを作成するには、スクリプトにコードを追加する必要があります。

+0

ありがとうGabriel、フォルダを作成し、アクセス許可を正しく割り当てるためのすべてのプロセスを説明するいくつかの論文を見つけました。 [link] https://blogs.technet.microsoft.com/heyscriptingguy/2013/06/04/creating-a-home-drive-with-windows-powershell-part-1/ –

関連する問題