Powershell 从 CSV 创建 AD 帐户 - 复制用户问题

Powershell 从 CSV 创建 AD 帐户 - 复制用户问题

我已经编写了一个脚本,用于从 CSV 文件在 AD 中创建新的用户帐户,但在复制用户部分我遇到了一些问题。因此,当每个新用户都有一个复制用户时,它可以工作,但是当他们不提供复制用户并将其留空时,它无法创建变量并使用上一行中的复制用户变量。有什么想法可以修改它,以便仅在 csv 文件中填写了复制用户单元格时才运行复制用户部分?

$ADUsers = Import-Csv“C:\Bulk Create New Users\New Users.csv”
ForEach($ADUsers 中的 User)
{
    $Server = “域控制器”
    $FirstName = $User.FirstName
    $姓氏 = $用户.姓氏
    $额外字符 = $用户.额外字符
    $EmailSuffix = $User.EmailSuffix
    $业务单位=$用户.业务单位
    $职位名称 = $用户.职位名称
    $描述=$用户.描述
    $公司=$用户.公司
    $Office = $用户.Office
    $OU = $用户.OU
    $密码 = $用户.密码
    $CopyUser = Get-ADUser-Identity $User.CopyUser-Properties MemberOf
    $IntranetGroup = $User.IntranetGroup
    $显示名称 = $用户.显示名称
    $用户名 = $用户.用户名
    $Email = $User.Email
    New-ADUser -服务器$Server -名称$DisplayName -帐户密码(ConvertTo-SecureString -AsPlainText $Password -Force)-公司$Company -说明$Description -显示名称$DisplayName -电子邮件地址$Email -启用$True -GivenName $FirstName -办公室$Office -OtherAttributes @{'extensionAttribute10'=$Email;'mailNickname'=$Username} -路径$OU -SamAccountName $Username -姓氏$Surname -标题$JobTitle -UserPrincipalName $Email
    设置-ADUser-服务器$Server-Identity$Username-添加@{proxyAddresses="SMTP:"+$Email}
    添加-ADPrincipalGroupMembership-服务器$服务器-身份$用户名-成员“标准”,“成员”,“组”

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

相关内容