添加多个用户而不进行csv导入

问题描述 投票:0回答:3

我试图通过多次使用不同的用户名编写脚本来添加多个用户。有可能重复这行代码以不同的方式添加多个用户名吗?哪个更有效,更容易,而不是导入csv文件。

New-ADUser -Name "Test Eksamen" -GivenName "Test" -Surname Eksamen -SamAccountName Olf -UserPrincipalName [email protected] -path "OU=powershell, DC=test, DC=local"
powershell csv
3个回答
3
投票

抱歉,我无法发表评论,因为我没有足够的声誉。对我来说有点不清楚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"
    }

我再次感到抱歉,如果这不是你想要的,我只是因为缺乏声誉而无法发表评论。


0
投票

正如我在评论中提到的,你可以将它们添加到某些数组或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
}

第二个解决方案是让我说有点凌乱,因为这些变量之间没有数据完整性(你可以非常简单地,例如。交换一些值,或者做一些丢失等),但第一个是严重的代码


0
投票

你也可以随机创建用户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
}
© www.soinside.com 2019 - 2024. All rights reserved.