2017-02-03 80 views
0

我有OU上有以下形式:有更多的OU如何使用PowerShell创建Active Directory用户并将其置于Organization Unit下?

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

等。我想要做的是我想在每个A和B OU下批量创建用户。在每个A和B中,我想要有10个用户。我希望他们的名称具有以下格式:Account-100-A-01Account-100-A-02等等。基本上,单词Account后面跟着OU编号,在我的情况下可以是100到200,然后是在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

相关问题