Powershell: AD-Konten aus CSV erstellen – Problem mit dem Kopieren von Benutzern

Powershell: AD-Konten aus CSV erstellen – Problem mit dem Kopieren von Benutzern

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

  1. Überprüfen Sie, ob die Immobilie .CopyUserleer ist
  2. Überprüfen Sie, ob Get-ADUserSie 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}
   ...
}

verwandte Informationen