在Powershell中从数组创建用户

时间:2016-01-15 21:12:28

标签: arrays powershell

您好我现在使用Active Directory一段时间了,我想从数组中创建用户创建脚本以了解它是如何工作的,是的我知道我可以创建一个CSV并导入它并且它像魔术一样工作知道所有这一切,但我想使用Powershell和New-ADUser以及一些数组来使帐户像循环一样

我制作了这段代码,因为我在powershell中太新了,我的技能非常苛刻

$pwd = ConvertTo-SecureString -String "Pa$$w0rd" -AsPlainText -Force
$name = Read-Host -Prompt 'Input username'
$OU = Read-Host -Prompt 'Input OU'
New-ADUser $name -AccountPassword $pwd -ChangePasswordAtLogon $False -PasswordNeverExpires $true -Path "OU=$OU,DC=contoso,DC=com"
Enable-ADAccount -Identity $name

我想知道的是什么,我无法找到很多关于它的信息是如何制作OU的数组以及用户名和OU的数组并使命令滚动5 -10次,我想要这个的原因是要了解更多关于powershell的信息,看看它是如何工作的以及我可以用它去哪里

编辑: 好吧我用powershell和foreach玩了一点,结束了这个

$UserArray = ('Bi','Ba','Bo')
foreach ($user in $userArray) {
New-ADUser $user -SamAccountName $user -AccountPassword $pwd -ChangePasswordAtLogon $False -PasswordNeverExpires $true -Path "OU=labs,DC=contoso,DC=com"
Enable-ADAccount -Identity $user
}

现在怎么样的OU,我如何制作一个命令,让我在数组中添加内容,就像我开始编写名称然后我最终添加我想要的所有名称和什么名称进入什么OU它只是运行这个命令

EDIT2:好的,经过一些工作和实例,我得到了这个 但由于某种原因,它在OU销售中创建了用户测试,我无法理解为什么

$pwd = ConvertTo-SecureString -String "Pa$$w0rd" -AsPlainText -Force
$a = @('Test1','Sales2','Labs3')
$b = @('Testing','Sales','Labs')
$values = $a,$b
$user = $values[0]
$ou = $values[1]

ForEach-Object {
New-ADUser $user -SamAccountName $user -AccountPassword $pwd -ChangePasswordAtLogon $False -PasswordNeverExpires $true -Path "OU=$ou,DC=contoso,DC=com"
Enable-ADAccount -Identity $user
}

并且大多数情况下它为-SamAccountName提供了有关Strings

的错误

1 个答案:

答案 0 :(得分:1)

使用数组或数组哈希集。

使用这样的代码并将其合并到您的项目中。

$newUsersInOU1 = @()
$newUsersInOU1 += "OU=labs,DC=contoso,DC=com", "Ba"
$newUsersInOU1 += "OU=office,DC=contoso,DC=com", "Bb"
$newUsersInOU1 += "OU=hq,DC=contoso,DC=com", "Bc"
$newUsersInOU1 += "OU=labs,DC=contoso,DC=com", "Bd"
$newUsersInOU1 | ft -AutoSize

## or 

$newUsersInOU2 = @()
$newUsersInOU2 += @{OU="OU=labs,DC=contoso,DC=com"; User="Ba"}
$newUsersInOU2 += @{OU="OU=office,DC=contoso,DC=com"; User="Bb"}
$newUsersInOU2 += @{OU="OU=hq,DC=contoso,DC=com"; User="Bc"}
$newUsersInOU2 += @{OU="OU=labs,DC=contoso,DC=com"; User="Bd"}
$newUsersInOU2 | ft -AutoSize

$newUsersInOU2[1].OU
$newUsersInOU2[1].User