New-ADUser : The name provided is not a properly formed account name
param ($csvfilelocation, $organizationunit, $defaultpassword, $fqdn) $csvfile = import-csv $csvfilelocation function create-username($givenname, $surname) { $firstpartinusername = $givenname.trim() $lastpartinusername = $surname.trim() return [string]::format("{0}.{1}", $firstpartinusername, $surname) } function get-givenname($displayname) { $firstnamepart = $displayname.split('.')[0] return $firstnamepart.substring(0, $firstnamepart.length - 1).trim() } function get-initials($displayname) { $indexofdot = $displayname.indexof('.') return $displayname } function get-lastname($displayname) { return $displayname.split('.')[1].trim() } foreach ($row in $csvfile) { $surname = $(get-lastname -displayname $row.displayname) $givenname = $(get-givenname -displayname $row.displayname) $username = $(create-username -givenname $($givenname.trim().replace(' ', '')) -surname $($surname.replace(' ', ''))) new-aduser -samaccountname $username ` -userprincipalname $([string]::format("{0}@{1}", $username, $fqdn)) -displayname $row.displayname -name $([string]::format("{0} {1}", $givenname, $surname)) ` -surname $surname -givenname $givenname -initials ` -department $row.department -title $row.title -path $organizationunit ` -accountpassword $(convertto-securestring -asplaintext $defaultpassword -force) ` -officephone $row.officephone -homephone $row.homephone -mobilephone $row.mobilephone -changepasswordatlogon $true ` -enabled $true }
i have code above, when execute script error message
new-aduser : name provided not formed account name @ line:6 char:5 + new-aduser -samaccountname $username ` + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + categoryinfo : notspecified: (cn=prince russe...mdynasty,dc=com:string) [new-aduser], adexception + fullyqualifiederrorid : activedirectoryserver:1315,microsoft.activedirectory.management.commands.newaduser
what seems error on name parameter having value of
$([string]::format("{0} {1}", $givenname, $surname))
knowledge power, guard well!!
hi,
are sure username length less 20 characters? same error if use long username:
ps c:\> new-aduser -samaccountname somereallylongnamethatborkedit -name 'broken user' new-aduser : name provided not formed account name @ line:1 char:1 + new-aduser -samaccountname somereallylongnamethatborkedit -name 'broken user' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + categoryinfo : notspecified: (cn=broken user,...,dc=local:string) [new-aduser], adexception + fullyqualifiederrorid : name provided not formed account name,microsoft.activedirectory.management.commands.newaduser
http://msdn.microsoft.com/en-us/library/ms679635%28v=vs.85%29.aspx
edit: here's possible adjustment username creation function take character limitation account:
function create-username($givenname, $surname) { $firstpartinusername = $givenname.trim() $lastpartinusername = $surname.trim() if ($firstpartinusername.length + $lastpartinusername.length -gt 18) { if ($lastpartinusername.length -le 17) { $firstpartinusername = $firstpartinusername.substring(0,(18 - $lastpartinusername.length)) } else { $firstpartinusername = $firstpartinusername.substring(0,1) $lastpartinusername = $lastpartinusername.substring(0,17) } } return [string]::format("{0}.{1}", $firstpartinusername, $lastpartinusername) }
this nothing ensure generated values unique , valid though.
don't retire technet! - (don't give yet - 12,950+ strong , growing)
Windows Server > Windows PowerShell
Comments
Post a Comment