New-ADUser-名称长度太长


13

我需要将大约500个用户添加到AD中的OU

我已经编写了我需要的所有内容的脚本,但是,它给出了错误: the name provided is not a properly formed

这是脚本

New-ADUser -Name C080CAB1-9756-409F-914D-AE3971F67DE7 -Path "OU=Staging,DC=domain,DC=local" -accountPassword (convertto-securestring "zagreb+scotch8355" -asplaintext -force) -PasswordNeverExpires $True -CannotChangePassword $false -Enabled $true

我进行了几次测试以确认问题是什么:

New-ADUser -Name "C080CAB1-9756-409F-914D-AE3971F67DE7" -Path "OU=Staging,DC=domain,DC=local" -accountPassword (convertto-securestring "zagreb+scotch8355" -asplaintext -force) -PasswordNeverExpires $True -CannotChangePassword $false -Enabled $true

New-ADUser -Name 'C080CAB1-9756-409F-914D-AE3971F67DE7' -Path "OU=Staging,DC=domain,DC=local" -accountPassword (convertto-securestring "zagreb+scotch8355" -asplaintext -force) -PasswordNeverExpires $True -CannotChangePassword $false -Enabled $true

New-ADUser -Name C080CAB1`-9756`-409F`-914D`-AE3971F67DE7 -Path "OU=Staging,DC=domain,DC=local" -accountPassword (convertto-securestring "zagreb+scotch8355" -asplaintext -force) -PasswordNeverExpires $True -CannotChangePassword $false -Enabled $true

以及其他一些变化

什么工作的:

New-ADUser -Name C080CAB1-9756-409F -Path "OU=Staging,DC=domain,DC=local" -accountPassword (convertto-securestring "zagreb+scotch8355" -asplaintext -force) -PasswordNeverExpires $True -CannotChangePassword $false -Enabled $true

因此,我认为这可能是一个长度问题,但是我不确定如何使脚本正常工作。


1
您使用SID命名而不是常规名称是否有原因?
中央情报局2014年

用户名之所以这样,是因为应用程序从不同的OU调用用户,然后以该用户身份运行站点的应用程序池。这是针对HIPPA投诉的环境,因此不应轻易区分用户名。那是必须使用的用户名格式。
安东尼·佛尼托

2
为了兼容2000年前,您不得超过20个字符。我不确定您要遵守HIPPA的哪一部分,但是我敢肯定,除非您允许患者访问您的AD,否则就不需要您的命名结构。
中情局

sAMAccountName为20个字符。您需要一个较短的长名。您可以根据需要设置更长的描述和显示名称。
Zoredache 2014年

顺便说一句,您几乎可以摆脱以Base64表示的GUID。那将是〜24个字符。您是否真的需要一个128位的唯一ID?切掉一些位,并以正确的方式对其进行编码,然后将其放入20字段中。
Zoredache 2014年

Answers:


13

是否要显示该36个字符的字符串的名称或将登录名显示为该36个字符的字符串

如果您使用的是服务器2012 R2,则只能将显示名称设置为20个字符,但是使用“ -UserPrincipalName”登录名最多可以为64个字符(我认为)

尝试这个

New-ADUser -Name C080CAB1-9756-409F-9 -UserPrincipalName C080CAB1-9756-409F-914D-AE3971F67DE7 -Path "OU=Staging,DC=domain,DC=local" -accountPassword (convertto-securestring "zagreb+scotch8355" -asplaintext -force) -PasswordNeverExpires $True -CannotChangePassword $false -Enabled $true

这将创建显示名称并截断-UserPrincipalName的值,该值将是用户的用户登录名。

查看任何用户的属性以设置适当的标志。

http://thenerdservice.com/useradd.png

您可以看到200之前的登录名被截断了,但是用户登录名却没有

http://thenerdservice.com/userlogin.png


谢谢,这为我节省了很多时间。酷网站的方式很多有用的工具。
Anthony Fornito 2014年

12

sAMAccountName不得超过20个字符。没有真正的解决办法。有趣的是为它保留了256个字符(〜120 Unicode),但是Directory Services引擎仅允许您使用20个字符。

编辑:让我更清楚一点。您可以使用超过20个字符的名称,但不能使用sAMAccountName。那可能适合您的需求。让我示范一下:

New-ADUser C080CAB1-9756   # 20 character limit here

Rename-ADObject 'CN=C080CAB1-9756,CN=Users,DC=lab,DC=com

Get-ADUser C080CAB1-9756

DistinguishedName: CN=C080CAB1-9756-409F-914D-AE3971F67DE7,CN=Users,DC=lab,DC=com
Name             : C080CAB1-9756-409F-914D-AE3971F67DE7
SamAccountName   : C080CAB1-9756
DisplayName      :
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.