2017-02-03 5 views
0

I OUs haben, die die folgende Form haben:So erstellen Sie Active Directory-Benutzer und ordnen sie mithilfe von PowerShell der Organisationseinheit zu?

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

Und so weiter mit mehr OUs. Was ich tun möchte, ist, dass ich Benutzer unter jeder A- und B-OU in großen Mengen erstellen möchte. In jedem A und B möchte ich 10 Benutzer haben. Und ich möchte ihren Namen die folgende Form haben: Account-100-A-01, Account-100-A-02, und so weiter. Grundsätzlich das Wort Account gefolgt von der OU-Nummer, die in meinem Fall von 100 bis 200 sein kann, dann die OU unter dem, der entweder A oder B ist, und dann die Kontonummer, die von 01 bis 10 ist.

Ich kenne den New-ADUser Befehl, aber ich weiß nicht, was der beste Weg ist, um diese Bulk-Erstellung in meinem Fall zu erreichen. Wie die Benutzernamen, die der von mir gewünschten Namenskonvention entsprechen, und die Benutzer ihren entsprechenden Organisationseinheiten zuordnen. Irgendwelche Ideen?

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; 
    } 
} 

Antwort

2

So etwas wie ...:

[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

Danke, und ist es eine Möglichkeit, auch sollte der Benutzer in den Gruppen angeben Mitglied werden? – typos

+0

Verwenden Sie 'Add-ADGroupMember' – Swonkie

Verwandte Themen