ドメインコントローラーで特定のユーザーに対してsetspnコマンドを実行します。
C:\>setspn -s example/username.companyname.com username
Checking domain DC=companyname,DC=com
Registering ServiceprincipalNames for CN=username,CN=Users,DC=companyname,DC=com
example/username.companyname.com
Updated object
そしてすぐにコンソールで結果を見ることができます。
C:\>setspn -L username
Registering ServiceprincipalNames for CN=username,CN=Users,DC=companyname,DC=com
example/username.companyname.com
ただし、「ActiveDirectoryユーザーとコンピューター」のこのユーザーには影響しません。
彼の属性「servicePrincipalName」は設定されていません。
たぶん、ある種のキャッシュがありますか?
Setpnunilityが「ActiveDirectoryユーザーとコンピューター」に影響を与えない理由は、古いバージョンである6.1であると確信しています。
テストに使用する仮想マシンには、バージョン10.0のsetspnがあり、完全に機能します。
Powershellを介してSPNを変更できることがわかりました。
C:\> $ReplaceHashTable = New-Object Hash-Table
C:\> $ReplaceHashTable.Add("servicePrincipalName", "example/username.companyname.com")
C:\> Set-ADUser -Identity "username" -Replace $ReplaceHashTable
C:\> Get-ADUser -Identity "username" -Properties ServicePrincipalNames
DistinguishedName : CN=username,CN=Users,DC=companyname,DC=com
Enabled : True
Name : username
ObjectClass : user
SamAccountName : username
ServicePrincipalNames : (example/username.companyname.com)
UserPrincipalName : [email protected]
以下以外のキャッシュはありません。ドメインコントローラーとサイト間のレプリケーション時間。また、ActiveDirectoryユーザーとコンピューターコンソールのメモリキャッシュ。
ADUCコンソールを閉じて、データを強制的に更新してみてください。