Ich habe ein Skript zusammengestellt, um neue Benutzerkonten in AD aus einer CSV-Datei zu erstellen, habe aber ein paar Probleme mit dem Teil zum Kopieren von Benutzern. Es funktioniert also, wenn jeder neue Benutzer einen Kopierbenutzer hat, aber wenn er keinen Kopierbenutzer angibt und dieses Feld leer lässt, schlägt die Erstellung der Variable fehl und es wird die Kopierbenutzervariable aus der vorherigen Zeile verwendet. Irgendwelche Ideen, wie ich dies ändern könnte, um den Teil zum Kopieren von Benutzern nur auszuführen, wenn die Zelle zum Kopieren von Benutzern in der CSV-Datei ausgefüllt ist?
$ADUsers = Import-Csv "C:\Massenerstellung neuer Benutzer\Neue Benutzer.csv"
FürJeden ($Benutzer in $ADUsers)
{
$Server = "Domänencontroller"
$Vorname = $Benutzer.Vorname
$Nachname = $Benutzer.Nachname
$ExtraCharacter = $Benutzer.ExtraCharacter
$EmailSuffix = $Benutzer.EmailSuffix
$Geschäftseinheit = $Benutzer.Geschäftseinheit
$JobTitle = $Benutzer.JobTitle
$Beschreibung = $Benutzer.Beschreibung
$Unternehmen = $Benutzer.Unternehmen
$Office = $Benutzer.Office
$OU = $Benutzer.OU
$Password = $Benutzer.Passwort
$CopyUser = Get-ADUser -Identity $User.CopyUser -Properties MemberOf
$IntranetGroup = $Benutzer.IntranetGroup
$DisplayName = $Benutzer.DisplayName
$Benutzername = $Benutzer.Benutzername
$Email = $Benutzer.Email
Neuer ADUser -Server $Server -Name $DisplayName -AccountPassword (ConvertTo-SecureString -AsPlainText $Password -Force) -Company $Company -Description $Description -DisplayName $DisplayName -EmailAddress $Email -Enabled $True -GivenName $FirstName -Office $Office -OtherAttributes @{'extensionAttribute10'=$Email;'mailNickname'=$Username} -Path $OU -SamAccountName $Username -Surname $Surname -Title $JobTitle -UserPrincipalName $Email
Set-ADUser -Server $Server -Identity $Username -Add @{proxyAddresses ="SMTP:" + $Email}
Add-ADPrincipalGroupMembership -Server $Server -Identity $Username -MemberOf "Standard", "Mitglied", "Gruppen"
#Copy membership groups from the copy user to the new user & then remove the Equitrac group
$CopyToNewUser = Get-ADUser -Server $Server -Identity $UserName -Properties MemberOf
$CopyUser.MemberOf | Where-Object {$CopyToNewUser.MemberOf -notcontains $_} | Add-ADGroupMember -Server $Server -Members $CopyToNewUser
Remove-ADPrincipalGroupMembership -Server $Server -Identity $UserName -MemberOf "Equitrac Print Users" -Confirm:$False}
Antwort1
- Überprüfen Sie, ob die Immobilie
.CopyUser
leer ist - Überprüfen Sie, ob
Get-ADUser
Sie etwas zurückgegeben haben für$User.CopyUser
$ADUsers = Import-Csv "C:\Bulk Create New Users\New Users.csv"
ForEach ($User in ($ADUsers|Where {$_.CopyUser -ne ''}) ) {
if(!($CopyUser = Get-ADUser -Identity $User.CopyUser -Properties MemberOf)){continue}
...
}