2017-02-03 10 views
0

私は、次のような形式持っているのOUがあります。より多くのOUとのActive Directoryユーザーを作成し、PowerShellを使用して組織単位に配置する方法は?

Accounts 
    |->Normal 
     |->100 
      |->A 
      |->B 
     |->101 
      |->A 
      |->B 

そしてそうします。私がしたいのは、それぞれのAとBのOUの下でユーザーを一括して作成したいということです。各AとBでは、10人のユーザーが必要です。そして、私は彼らの名前を次のような形にしたい:Account-100-A-01Account-100-A-02、など。基本的には、単語Accountの後に、私の場合は100から200までのOU番号、次にAまたはBのOU、そして01から10までのアカウント番号が続きます。

私はNew-ADUserコマンドを知っていますが、私の場合はこの一括作成を達成するための最良の方法は何もわかりません。私が望む命名規則に対応するユーザー名を形成し、実際にユーザーを対応するOUに配置するようにします。何か案は?

Import-Module ActiveDirectory 

$count = 1 
for ($i=100; $i -lt 200; $i++) 
{ 
$label = "A" 
for ($j=0; $j -lt 20; $j++) 
{ 
    if($j -ge 10) $label = "B" 

    $username = "Account-$i-$label-(($j%10)+1)" 
    Write-Host "Creating AD user " $count++ ": " $username 

    New-ADUser ` 
    -Name $username ` 
    -AccountExpirationDate 0 ` 
    -PasswordNeverExpires $true` 
    -SamAccountName $username ` 
    -AccountPassword (ConvertTo-SecureString "MyPassword123" -AsPlainText -Force) ` 
    -Enabled $true; 
    } 
} 

答えて

2

のような何か...:

[Int32] $Local:intOUIndex = 0; 
[String[]] $Local:arrSubOUs = @('A', 'B'); 
[Int32] $Local:intUserIndex = 0; 
[String] $Local:strSubOU  = ''; 
[String] $Local:strOUDN  = ''; 
[String] $Local:strUserCN = ''; 

for ($intOUIndex = 100; $intOUIndex -le 200; $intOUIndex++) { 
    foreach ($strSubOU in $arrSubOUs) { 
     $strOUDN = 'OU={0},OU={1:000},OU=Normal,OU=Accounts,DC=yourdomain,DC=com' -f $strSubOU, $intOUIndex; 
     for ($intUserIndex = 1; $intUserIndex -le 10; $intUserIndex++) { 
      $strUserCN = 'Account-{0:000}-{1}-{2:00}' -f $intOUIndex, $strSubOU, $intUserIndex; 

      Write-Host -Object ('Creating account "{0}" in OU "{1}"...' -f $strUserCN, $strOUDN); 

      # Call New-ADUser, e.g.: 

      New-ADUser -Name $strUserCN -Path $strOUDN (Etc.) 

      } #for-userindex 
     } #foreach-subou 
    } #for-intOUIndex 
+0

おかげで、とはどのグループにユーザーがメンバーである必要があり、また指定する方法はありますか? – typos

+0

'Add-ADGroupMember'を使用します。 – Swonkie

関連する問題