New-ADuser - 参数OtherAttributes

时间:2018-05-13 18:49:35

标签: powershell scripting active-directory

我正在为我工​​作的公司制作一个New-ADuser脚本。 我已经设置了以下哈希表,其中值'serialnumber'将被设置或不设置,具体取决于新用户的要求。

$hashtable = @{

Name = $User.Surname + " " + $User.Givenname
Surname = $User.Surname
Givenname = $User.Givenname
Samaccountname = $User.Samaccountname
Emailaddress = $User.Emailaddress
Accountpassword = $User.password | ConvertTo-SecureString -AsPlainText -Force
Path = $User.Path
UserPrincipalName = $User.Samaccountname + "@anything.com"
OtherAttributes = @{serialNumber =$User.serialnumber}

}

我正在使用CSV文件获取所有信息,但如果未填写字段“serialnumber”,则无法使我的脚本生效。 它会出现类似“参数为空或空”的错误。

有没有办法绕过这个问题?

感谢。

1 个答案:

答案 0 :(得分:0)

$serialNum = ""
$Props = @{
    Name = "testmay14_2"
    Surname = "may14_2"
    GivenName = "test"
    SamaccountName = "testmay14_2" 
    EmailAddress = "testmay14_2@domain.com"
    Accountpassword = "Password!1" |ConvertTo-SecureString -AsPlainText -Force
    UserPrincipalName = "testmay14_2@domain.com"
    OtherAttributes = if(!([string]::IsNullOrEmpty($serialNum))){@{serialNumber = $serialNum}}else {@{serialNumber = 'NA'}}
}
New-ADUser @Props

您可能根本没有触及其他'否则'否则会触及SerialNumber属性。阻止并使用一些未使用的其他属性..只是一个想法

OtherAttributes = if(!([string]::IsNullOrEmpty($serialNum))){@{serialNumber = $serialNum}}else {@{Title="TheOneWithoutSerialNumber"}}