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

Popular posts from this blog

Azure MFA with Azure AD and RDS

Failed to delete the test record dcdiag-test-record in zone test.com

Failed to setup initiator portal. Error status is given in the dump data.