首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向AD、CSV添加多个用户

向AD、CSV添加多个用户
EN

Stack Overflow用户
提问于 2018-07-16 15:52:43
回答 1查看 72关注 0票数 0

我试图通过CSV文件夹导入用户。

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

Powershell

代码语言:javascript
复制
$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

代码语言:javascript
复制
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

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

只是我出了点差错。

它使用写主机和输入来处理单个用户。

然而,对于CSV,它不起作用。

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

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

EN

Stack Overflow用户

回答已采纳

发布于 2018-07-16 16:16:22

我让它起作用了

结果发现,当我在Excel 2016中构建CSV时,并没有添加逗号来分隔值。

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

Powershell基于逗号分隔读取值,因此如果没有逗号,它就不知道要推送哪些值。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51365753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档