Powershell CSV에서 AD 계정 생성 - 사용자 복사 문제

Powershell CSV에서 AD 계정 생성 - 사용자 복사 문제

CSV 파일에서 AD에 새 사용자 계정을 생성하는 스크립트를 작성했지만 사용자 복사 부분에 몇 가지 문제가 있습니다. 따라서 모든 신규 사용자에게 복사 사용자가 있을 때 작동하지만 복사 사용자를 제공하지 않고 이 항목을 비워두면 변수를 생성하지 못하고 이전 행의 사용자 복사 변수를 사용하게 됩니다. csv 파일에 사용자 복사 셀이 채워져 있는 경우 사용자 복사 부분만 실행하도록 이를 수정하는 방법에 대한 아이디어가 있습니까?

$ADUsers = Import-Csv "C:\Bulk 새 사용자 생성\New Users.csv"
ForEach($ADUsers의 $User)
{
    $Server = "도메인 컨트롤러"
    $FirstName = $User.FirstName
    $Surname = $User.Surname
    $ExtraCharacter = $User.ExtraCharacter
    $EmailSuffix = $User.EmailSuffix
    $BusinessUnit = $User.BusinessUnit
    $JobTitle = $User.JobTitle
    $Description = $User.Description
    $회사 = $User.회사
    $Office = $User.Office
    $OU = $User.OU
    $Password = $User.Password
    $CopyUser = Get-ADUser -Identity $User.CopyUser -Properties MemberOf
    $IntranetGroup = $User.IntranetGroup
    $DisplayName = $User.DisplayName
    $Username = $User.사용자 이름
    $Email = $User.Email
    New-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} -경로 $OU -SamAccountName $Username -성 $Surname -직위 $JobTitle -UserPrincipalName $Email
    Set-ADUser -Server $Server -Identity $Username - @{proxyAddresses ="SMTP:" + $Email} 추가
    추가-ADPrincipalGroupMembership -서버 $Server -ID $Username -MemberOf "표준", "구성원", "그룹"

#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}

답변1

  1. 속성이 .CopyUser비어 있는지 확인
  2. Get-ADUser다음에 대한 항목을 반환했는지 확인하세요 .$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}
   ...
}

관련 정보