As I mentioned in the comment, you can to add them into some array or arraylist, whatever, something like bellow.
Btw I guess csv is probably the most comfort way how to do it.
Notice- because I dont know how to make some objects in the single PS script, I have used standard object with custom properties
#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
}
Other way can be eg. to store each data separately, like in example from @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
}
The second solution is let me say little messy, because there is no data integrity (you can very simply eg. swap some values, or make some missing, etc.) between these variables, but first one is seriously longer code