【发布时间】:2019-08-08 13:20:55
【问题描述】:
所以我有 CSV 文件,其中包含所有这些值 firstname、lastname、SAM、email、department、OU、country、language 和 proxyaddress。
我可以成功创建用户,但不知道如何添加最重要的 SAM 和 proxyaddress,也不知道如何在每个用户属性中添加部门、国家和语言,这些其他值不太重要。
我尝试过的:
Set-Mailbox -Identity $name -EmailAddresses @{add= $proxy}
Get-ADUser -Filter 'Name -like "*"' -SearchBase $ou -Properties * | % {Set-ADUser $_ -add @{proxyAddresses=$proxy}}
Add-ADGroupMember -Identity groupname
代码如下:
Import-Module ActiveDirectory
$securedPassword = ConvertTo-SecureString "" -AsPlainText -Force
$userlist = Import-Csv "C:\users.csv"
ForEach ($row in $userlist) {
$fname = $row.'givenName'
$lname = $row.'Lastname'
$sam = $row.'SAM'
$mail = $row.'mail'
$department = $row.'Department'
$ou = $row.'OU'
$country = $row.'Country'
$lang = $row.'Preferredlanguage'
$proxy = $row.'Proxy'
$name = $fname + $lname
$proxy = $row.'Proxy' -split ';'
New-ADUser -Name "$fname $lname" -GivenName $fname -Surname $lname -UserPrincipalName "$mail" -Path $ou -AccountPassword $securedPassword -ChangePasswordAtLogon $true -EmailAddress $mail
尝试将 SAM 包含到 New-ADUser 时出错:
New-ADUser : The name provided is not a properly formed account name
At C:\test.ps1:28 char:5
+ New-ADUser -sAMAccountName $sam -Name "$fname $lname" -GivenName ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (CN=Fay,OU=Us...,DC=com:String) [New-ADUser], ADException
+ FullyQualifiedErrorId : ActiveDirectoryServer:1315,Microsoft.ActiveDirectory.Management.Commands.NewADUser
【问题讨论】:
-
如果您从 CSV 文件中提供几行内容会有所帮助,因为在您的代码中,您使用的属性与您在问题中命名的字段不同。此外,当您在使用如此多参数的 cmdlet 上使用 Splatting 时,代码会显着改进。
标签: powershell csv active-directory