Powershell 從 CSV 建立 AD 帳戶 - 複製使用者問題

Powershell 從 CSV 建立 AD 帳戶 - 複製使用者問題

我已經編寫了一個腳本,用於從 CSV 檔案在 AD 中建立新使用者帳戶,但複製使用者部分遇到一些問題。因此,當每個新用戶都有一個複製用戶,但當他們不提供複製用戶並且將其留空時,它就無法建立變數並使用上一行中的複製用戶變數。如果 csv 檔案中填寫了複製使用者儲存格,我該如何修改它以僅執行複製使用者部分?

$ADUsers = Import-Csv "C:\批次建立新使用者\新使用者.csv"
ForEach($ADUsers 中的 $User)
{
    $伺服器=“網域控制站”
    $名字 = $用戶.名字
    $姓氏 = $用戶.姓氏
    $ExtraCharacter = $User.ExtraCharacter
    $EmailSuffix = $User.EmailSuffix
    $BusinessUnit = $User.BusinessUnit
    $JobTitle = $User.JobTitle
    $描述 = $用戶.描述
    $公司 = $用戶.公司
    $Office = $User.Office
    $OU = $用戶.OU
    $密碼 = $用戶.密碼
    $CopyUser = Get-ADUser -Identity $User.CopyUser -Properties MemberOf
    $IntranetGroup = $User.IntranetGroup
    $DisplayName = $User.DisplayName
    $用戶名 = $用戶.用戶名
    $電子郵件 = $使用者.電子郵件
    New-ADUser -Server $Server -Name $DisplayName -AccountPassword (ConvertTo-SecureString -AsPlainText $Password -Force) -Company $Company -Description $Description -DisplayName $DisplayName -EmailAddress $Email -Enabled $True -GivenName $FirstName -Offfice $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“標準”、“成員”、“群組”

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

相關內容