2017-02-03 7 views
0

У меня есть OUs, которые имеют следующий вид:Как создать пользователей Active Directory и разместить их в разделе «Организация» с помощью PowerShell?

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

И так далее с большим OUs. Что я хочу сделать, так это то, что я хочу, чтобы навалом создавать пользователей под каждым A и B OU. В каждом A и B я хочу иметь 10 пользователей. И я хочу, чтобы их имя имело следующую форму: Account-100-A-01, Account-100-A-02 и т. Д. В основном, слово Account, за которым следует номер OU, который может быть от 100 до 200 в моем случае, тогда подразделение под A или B, а затем номер счета, который будет от 01 до 10.

Я знаю команду New-ADUser, но я не знаю, какой лучший способ добиться этого массового создания в моем случае. Подобно формированию имен пользователей, которые соответствуют соглашению об именах, которое я хочу, и фактически помещать пользователей в их соответствующие подразделения. Есть идеи?

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

 Смежные вопросы

  • Нет связанных вопросов^_^