ローカルアカウントの標準の20文字のユーザー名の最大長の制限を変更する方法はありますか?
(具体的にはサーバー2008 R2)
いいえ、20に固定されています。これは、下位互換性のためです。 Active Directory(SAMAccountNameフィールドを除く)では大きくできますが、ローカルでは大きくできません。
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文字を超えると例外がスローされます。自分で試してみてください。心から、ジョセフ・ダヴォリ
コード:
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 [email protected] -fn "SharePoint Service Applications" -ln "XYZ" -display "SharePoint Service Applications XYZ" -pwd "continue2013" -desc "Non Human Account" -office "Head Office" -email [email protected] -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 [email protected] -fn "SharePoint Service Applications" -ln "XYZ" -display "SharePoint Service Applications XYZ" -pwd "continue2013" -desc "Non Human Account" -office "Head Office" -email [email protected] -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]
└─────────────────────────────────────┘
改善のためのコメントは大歓迎です。