如何使用PowerShell创建Active Directory用户并将其置于Organization Unit下?

时间:2017-02-03 22:36:36

标签: powershell active-directory

我的OU有以下形式:

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

等等有更多的OU。我想要做的是我想在每个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;
   }
}

1 个答案:

答案 0 :(得分:2)

像......这样的东西:

import re
import sys

from collections import deque

def main():
    n,l=map(int,raw_input().split())
    #print n
    #print l

    r = 0
    p = 0
    q = 0

    b = sys.stdin.read(l)

    b = deque(b.rsplit(' ',4000000))
    n = len(b)
    while n == 4000001:
        c = b.popleft()
        b = map(int,b)
        for i in xrange(n-2,0,-1):
            r += b[i] ^ b[i-1]

        m = b[0]
        b = deque(c.rsplit(' ',3999999))
        b.append(m)
        n = len(b)


    b = map(int,b)
    for i in xrange(n-1,0,-1):
        r += b[i] ^ b[i-1]

    print r
main()