回答:
sam-accountname属性を参照している必要があります。ログオン名は次のルールに従う必要があります。
ログオン名のルール
ログオン名は次の規則に従う必要があります。
ローカルログオン名はワークステーション上で一意である必要があり、グローバルログオン名はドメイン全体で一意である必要があります。
ログオン名は最大104文字です。ただし、64文字を超えるログオン名を使用することは現実的ではありません。
Microsoft Windows NTバージョン4.0以前のログオン名がすべてのアカウントに与えられます。デフォルトでは、Windows 2000ログオン名の最初の20文字に設定されています。Windows NTバージョン4.0以前のログオン名は、ドメイン全体で一意である必要があります。
Windows 2000コンピュータからドメインにログオンするユーザーは、ドメイン操作モードに関係なく、Windows 2000ログオン名またはWindows NTバージョン4.0以前のログオン名を使用できます。
GUIでは20文字の名前しか作成できないことに注意してください。20文字を超えるには、プログラムで名前を作成する必要があります。
「GUIでは20文字の名前しか作成できないことに注意してください。20文字を超えるには、プログラムで名前を作成する必要があります。」
その発言は正しくないと思います。20文字を超えるユーザー名をプログラムで作成することはできません。以下は、Windows Server 2008 R2で実行した関連するVB.NETコードです。20文字以下のユーザー名を作成する場合に機能しますが、ユーザー名が20文字を超えると例外がスローされます。自分で試してみてください。よろしくお願いいたします。JosephDavoli
コード:
Imports System.DirectoryServices 'Gives us access to Directory Services.
Function Blah() As Whatever
Dim strFNMILN As String = "Christopher.B.Robinson" 'NOTE: Twenty-two characters. Dim strFullName as string = "Christopher B. Robinson"
'Declare a new "DirectoryEntry" object variable and assign to it the entry for 'this computer (the computer on which this code is running). Dim DirectoryEntryThisComputer As New DirectoryEntry("WinNT://" & Environment.MachineName & ",computer")
'Declare a new "DirectoryEntry" object variable and name it "DirectoryEntryNewUser". 'Create a new user in the local directory and assign that user to our object variable. Dim DirectoryEntryNewUser As DirectoryEntry = DirectoryEntryThisComputer.Children.Add(strFNMILN, "user")
'Add the fullname of this user. DirectoryEntryNewUser.Invoke("Put", New Object() {"fullname", strFullName })
'Add a description value. DirectoryEntryNewUser.Invoke("Put", New Object() {"description", "This is a test user."})
'Set the password for this new user (14 character minimum). DirectoryEntryNewUser.Invoke("SetPassword", New Object() {"abcdefg1234567"})
'Save this new user to the local directory (this machine's directory). DirectoryEntryNewUser.CommitChanges()
. . End Function
DSADDをW2K3 ADサーバーに使用していますが、「SAMID」の長さが21(21)文字であるため失敗します。
C:\Users\admin-of-change>DSAdd.exe user "CN=SharePoint Service Applications XYZ,OU=Users,OU=District UVW,OU=XYZ,DC=domain-universe,DC=int,DC=net" -samid "adm_xyz_SPServiceApps" -upn adm_xyz_SPServiceApps@domain-universe.int.net -fn "SharePoint Service Applications" -ln "XYZ" -display "SharePoint Service Applications XYZ" -pwd "continue2013" -desc "Non Human Account" -office "Head Office" -email adm_xyz_SPServiceApps@UnusualCompany.com -webpg "www.UnusualCompany.com" -title "SharePoint Service Applications XYZ" -company "X Y Z" -disabled no
dsadd failed:CN=SharePoint Service Applications XYZ,OU=Users,OU=District UVW,OU=XYZ,DC=domain-universe,DC=int,DC=net:The name provided is not a properly formed account name.
type dsadd /? for help.
┌─────────────────────────────────────┐
│ Executed Tue 07/02/2013 13:59:57.88 │ As [admin-of-change]
└─────────────────────────────────────┘
UPNを下げながら解決します。
C:\Users\admin-of-change>DSAdd.exe user "CN=SharePoint Service Applications XYZ,OU=Users,OU=District UVW,OU=XYZ,DC=domain-universe,DC=int,DC=net" -samid "adm_xyz_SPSvcApps" -upn adm_xyz_SPSvcApps@domain-universe.int.net -fn "SharePoint Service Applications" -ln "XYZ" -display "SharePoint Service Applications XYZ" -pwd "continue2013" -desc "Non Human Account" -office "Head Office" -email adm_xyz_SPSvcApps@UnusualCompany.com -webpg "www.UnusualCompany.com" -title "SharePoint Service Applications XYZ" -company "X Y Z" -disabled no
dsadd succeeded:CN=SharePoint Service Applications XYZ,OU=Users,OU=Users,OU=District UVW,OU=XYZ,DC=domain-universe,DC=int,DC=net
┌─────────────────────────────────────┐
│ Executed Tue 07/02/2013 14:06:21.08 │ As [admin-of-change]
└─────────────────────────────────────┘
改善のためのコメントは大歓迎です。