将多个用户添加到 AD,CSV

Add Multiple Users To AD, CSV

我正在尝试通过 CSV 文件夹导入用户。

我有一些参数需要保留,所以我只使用了某些字段。

Powershell

$csv = Import-Csv -Path "newusers.csv"
foreach ($User in $csv)
{
#region Data Generation

$DisplayName = $User.'Surname' + " " + $User.'GivenName'

$Mail = $User.'GivenName' + "." + $User.'Surname' + "@" + "royalberkshire.nhs.uk"

$MailAlias = $User.'GivenName' + "." + $User.'Surname' + "@" + $DNSRoot2

$SInitial = $User.'Surname'[0]
$Initial = $User.'GivenName'[0]
$SAMAccountName = $User.'Surname' + "" + $Initial
$SAMAccountLower = $SAMAccountName.ToLower()
$UserPrincipalName = $User.'Surname'+$Initial
$HD = "U"
$HDir = "\RBHFILRED002\"
$AC = "Users_01$\"
$DH = "Users_02$\"
$IM = "Users_03$\"
$NS = "Users_04$\"
$TZ = "Users_05$\"

$Folder = if ($SInitial -in 'a','b','c'){$AC}
          ElseIf ($SInitial -in 'd','e','f', 'g','h'){$DH}
          ElseIf ($SInitial -in 'i','j','k', 'l','m'){$IM}
          ElseIf ($SInitial -in 'n','o','p', 'q','r','s'){$NS}
          Else {$TZ}

$group1 = "zz Everyone"
$group2 = "Safeboot Domain Users"

$defaultname = $SAMAccountName
$email = $User.'GivenName' + "." + $User.'Surname'
$i = 1
cls

# Create The User



While ((Get-ADUser -Filter "SamAccountName -eq '$SAMAccountName'" -ErrorAction SilentlyContinue) -ne $null){
    $SamAccountName = $defaultname + [string]$i 
    $Mail = $email + [string]$i + "@" + "royalberkshire.nhs.uk"
    $i++

}


$NewUserParams = @{
    path                  = "OU=Users,OU=RBFT,DC=rbbh-tr,DC=nhs,DC=uk"
    SamAccountName        = $SAMAccountName
    Name                  = $SAMAccountName
    DisplayName           = $DisplayName
    GivenName             = $User.'GivenName'
    Surname               = $User.'Surname'
    EmailAddress          = $Mail
    UserPrincipalName     = "$SAMAccountName@rbbh-tr.nhs.uk"
    Title                 = $title
    HomeDrive             = $HomeDrive
    HomeDirectory         = "$HDir$Folder$SAMAccountName"
    Description           = $User.'Description'
    ChangePasswordAtLogon = $true
    PasswordNeverExpires  = $false
    AccountPassword       = $password
    Enabled               = $true
}



New-ADUser @NewUserParams -ErrorAction SilentlyContinue
Add-ADGroupMember -Identity $group1  -Members $SAMAccountName
Start-Sleep -s 10
Add-ADGroupMember -Identity $group2  -Members $SAMAccountName


cls
echo "Please Wait Whilst We Create The AD Account & Create The Exchange Mailbox.."
Start-Sleep -s 30

Enable-Mailbox -Identity $SAMAccountName
cls

echo "Please Wait Whilst We Activate The Exchange Mailbox..."
Start-Sleep -s 15

# Sets The User Up With The Randomised Password, And Re-Encrypts It For Double Protection
Set-ADAccountPassword -Identity $SAMAccountName -Reset -NewPassword (ConvertTo-SecureString -AsPlainText $random -Force)
cls

}

CSV

User    GivenName   Surname Description
User    James        Timms     Test
User    James        Timms     Test
User    Hulk         Hogan     Test
User    Ultimate     Warrior   Test
User    The          Rock      Test
User    Dwayne       Johnson   Test

脚本没有 运行。它告诉我无法识别搜索过滤器。

这只是我的错误。

使用 Write-Hosts 和 Inputs 可以很好地处理单个用户。

但是对于 CSV,它不起作用。

我必须指出,这也是我第一次在 powershell 上通过 CSV 创建用户。

有人知道如何解决这个问题吗?

我成功了,

事实证明,当我在 Excel 2016 年构建 CSV 时,它并没有添加逗号来分隔值。

我最终在记事本中打开了 CSV 文件并添加了逗号来分隔值。

Powershell 读取基于逗号分隔的值,因此如果没有逗号,它不知道要推出什么值。