我试图通过多次使用不同的用户名编写脚本来添加多个用户。有可能重复这行代码以不同的方式添加多个用户名吗?哪个更有效,更容易,而不是导入csv文件。
New-ADUser -Name "Test Eksamen" -GivenName "Test" -Surname Eksamen -SamAccountName Olf -UserPrincipalName [email protected] -path "OU=powershell, DC=test, DC=local"
抱歉,我无法发表评论,因为我没有足够的声誉。对我来说有点不清楚csv导入有什么问题,你用“更简单的方法”是什么意思。在我看来,导入csv是最方便的方式。
您可以使用带有名称和姓氏的数组。
$names = @("Neil","Albert", "Nikola")
$surnames = @("Degrasse", "Einstein", "Tesla")
foreach ($user in (0.. ($names.Length -1))){
$user_name = $names[$user]
$user_surname = $surnames[$user]
New-ADUser -Name "$user_name $user_surname" -GivenName $user_name -Surname $user_surname -SamAccountName "$user_name.$user_surname" -UserPrincipalName "[email protected]" -Path "OU=powershell, DC=test, DC=local"
}
我再次感到抱歉,如果这不是你想要的,我只是因为缺乏声誉而无法发表评论。
正如我在评论中提到的,你可以将它们添加到某些数组或arraylist中,无论如何,像bellow。
顺便说一下,我猜csv可能是最舒服的方式。
注意 - 因为我不知道如何在单个PS脚本中创建一些对象,所以我使用了具有自定义属性的标准对象
#your record New-ADUser -Name "Test Eksamen" -GivenName "Test" -Surname Eksamen -SamAccountName Olf -UserPrincipalName [email protected] -path "OU=powershell, DC=test, DC=local"
#custom object definition-example of 1 member
$member= New-Object System.Object
$member | Add-Member -type NoteProperty -name cName -value "Test Eksamen"
$member | Add-Member -type NoteProperty -name cGivenName -value "Test"
$member | Add-Member -type NoteProperty -name cSurname -value "Eksamen"
$member | Add-Member -type NoteProperty -name cSamAccountName -value "Olf"
$member | Add-Member -type NoteProperty -name cUserPrincipalName -value "[email protected]"
$member | Add-Member -type NoteProperty -name cpath -value "OU=powershell, DC=test, DC=local"
#add into some list
$memberList = New-Object System.Collections.ArrayList
$memberList.Add($member)
#iteration and adding each
foreach($actMember in $memberList){
New-ADUser -Name $actMember.cName -GivenName $actMember.cGivenName -Surname $actMember.cName -SamAccountName $actMember.cSurname -UserPrincipalName $actMember.cUserPrincipalName -path $actMember.cpath
}
其他方式可以是例如。分别存储每个数据,例如来自@Tesla Great的示例
$names = @("Neil","Albert", "Nikola")
#should be exactly the same
#$names = "Neil","Albert", "Nikola"
$givenNames= @("Degrasse", "Einstein", "Tesla")
#..... other params
#and iterate
For ($i=0; $i -le ($names.Length -1); $i++) {
New-ADUser -Name $names[i] -GivenName $givenNames[i] ... etc
}
第二个解决方案是让我说有点凌乱,因为这些变量之间没有数据完整性(你可以非常简单地,例如。交换一些值,或者做一些丢失等),但第一个是严重的代码
你也可以随机创建用户user1.2..3等
$names=1..1000
$x="user"
Foreach($name in $names){
$nm=$x + "$name"
$Password = (ConvertTo-SecureString -AsPlainText 'P@ssw0rd@123' -Force)
New-ADUser -GivenName $x -Surname $name -Name $nm -Enabled $true -AccountPassword $password -SamAccountName $nm -WhatIf
}