Freigeben über


Windows 7 でパスワードが変更できない

こんにちは。プラットフォーム サポートです。

ドメインに所属している Windows 7 に「2016 年 4 月」以降のセキュリティ更新プログラムを適用後、下記のメッセージが表示されてパスワードを変更することができなくなる場合があることが報告されております。

 

「サーバーのセキュリティ データベースにこのワークステーションの信頼関係に対するコンピューター アカウントがありません。」 Win7err

本事象は、ドメインメンバーが Windows Update などを実施し Kerberos 関連モジュールが更新される一方で、ドメインコントローラー側では Windows Update がなされておらず、Kerberos 認証の互換性に問題が生じるために発生します。

 

発生条件

この事象は、下記の 5 つの条件が重なったときに発生します。

  1.  ドメイン コントローラーの OS に Windows Server 2008 もしくは Windows Server 2008 R2 が存在している
  2. 過去にドメインで権限のあるリストア (Authoritative Restore) を実施したことがある
  3. クライアントの Kerberos.dll のファイル バージョンの下 5 桁が 22320 以上となっている
  4. クライアントで Ctrl + Alt + Del 等からパスワード変更を行う
  5. ドメイン コントローラーの Kdcsvc.dll のバージョンが、特定のものよりも古い (詳細なバージョンの確認方法は文末をご覧ください)

 

「2016 年 4 月」に公開された下記の更新プログラムの中に Kerberos.dll のファイル バージョンの下 5 桁が 22320 のものが含まれているため、上記の (1) や (2) に該当する環境では、本事象が発生する場合があります。

 

https://support.microsoft.com/ja-jp/kb/3149090

  • Kerberos.dll  6.1.7601.23390  731,136  16-Mar-2016  00:14  x64
  • Kerberos.dll  6.1.7601.23390  553,984  15-Mar-2016  23:52  x86

 

https://support.microsoft.com/ja-jp/kb/3146706

  • Kerberos.dll  6.1.7601.23392  553,984  17-Mar-2016  22:26  x86
  • Kerberos.dll  6.1.7601.23392  553,984  17-Mar-2016  22:26  x86

 

https://support.microsoft.com/ja-jp/kb/3147071

  • Kerberos.dll  6.1.7601.23376  553,984  10-Mar-16  20:02  x86
  • Kerberos.dll  6.1.7601.23376  731,136  10-Mar-16  18:51  x64

 

この問題は、クライアント側のプログラムに追加された canonicalize フラグをドメイン コントローラー側が認識することができず、パスワード変更要求を適切に処理できないために発生します。

 

*補足

パスワード変更時に同じメッセージが表示される別の報告もございます。詳細は下記のサイトで説明しておりますので、上記の発生条件に合致しない場合には、下記の内容も併せてご確認ください。

 

パスワード変更時のエラーメッセージについて
https://blogs.technet.microsoft.com/jpntsblog/2016/03/03/1832/

 

対処策

本問題の対処策は、下記の修正プログラムを全てのドメイン コントローラーに適用する方法となります。

(暫定的な対処としては、クライアント側で上記の更新プログラムをアンインストールする方法でも構いませんが、セキュリティを考慮すると、極力ドメインコントローラー側に下記プログラムを適用されることをお勧めします。)

 

■ ドメイン コントローラーが Windows Server 2008 の場合

Error code when the kpasswd protocol fails after you perform an authoritative restore: "KDC_ERROR_S_PRINCIPAL_UNKNOWN"
https://support.microsoft.com/en-us/kb/976424

 

■ ドメイン コントローラーが Windows Server 2008 R2 の場合

Domain users cannot change or reset their passwords when KRBTGT account is restored in Windows client
https://support.microsoft.com/en-us/kb/2910686

 

※ いずれもインストールを行った後に、ドメイン コントローラー側で OS の再起動が必要です。
※ クライアント側での作業は不要です。
※ Windows Server 2008 R2 向けの KB2910686 の修正プログラムを適用するためには、事前に Service Pack 1 (SP1) が適用されている必要があります。SP1 が未適用の Windows Server 2008 R2 については、SP1 を適用した上で、KB2910686 の修正プログラムを適用してください。

 

確認方法

以下、確認方法を記載します。

 

■ クライアントの .dll のバージョンの確認方法

1. クライアントにログオンを行い、エクスプローラーを起動します。

2. %windir%\System32 を開きます。

client_system32

3. kerberos.dll を右クリックして [プロパティ] を開きます。

client_kerberos

4. [詳細] タブを開き、ファイル バージョンを確認します。

client_kerberos_property

ファイル バージョンの下 5 桁が 22320 以上となっている場合に該当します。

 

■ 過去に「権限のあるリストア」を実施したことがあるかどうかの確認方法

1. ドメイン コントローラーのいずれか 1 台にログオンします。

2. コマンド プロンプトを起動して、下記のコマンドを実行します。repadmin /showobjmeta  <My_DC> "CN=krbtgt,CN=Users,<ドメインの識別名>" > krbtgt.txt

例えば、ドメイン コントローラー名が DC1、ドメイン名が contoso.com の場合は次のようになります。

repadmin /showobjmeta DC1 "CN=krbtgt,CN=Users,DC=contoso,DC=com" > krbtgt.txt

repadmin_showobjemeta2

3. 出力された krbtgt.txt を開き、pwdLastSet の Ver (バージョン) が 100002 以上の値の場合は、過去に「権限のある復元」を実施したことがある環境となります。

pwdLastSet

 

権限のあるリストアについては、以下をご参照ください。

削除された AD DS オブジェクトの権限のある復元の実行
https://technet.microsoft.com/ja-jp/library/cc755296(v=ws.10).aspx

 

■ ドメイン コントローラーにおける修正プログラムの .dll のバージョンの確認方法

1. すべてのドメイン コントローラーにログオンを行い、下記の確認を行います。

2. エクスプローラーを起動します。

3.  %windir%\System32 を開きます。

dc_system32

4. Kdcsvc.dll を右クリックして [プロパティ] を開きます。

kdcsvc

5. [詳細] タブを開き、ファイル バージョンを確認します。

kdcsvc_property2

ドメイン コントローラーの Kdcsvc.dll のバージョンが、下記よりも古い場合に本事象が発生します。

上記は、Windows Server 2008 R2 SP1 の例で、ファイル バージョンが 6.1.7601.17514 となっており、下記のバージョンより古い状態を示します。

 

Windows Server 2008 (KB976424)

Kdcsvc.dll  6.0.6002.22313  312,832  15-Jan-2010  19:56  x86
Kdcsvc.dll  6.0.6002.22313  406,528  15-Jan-2010  19:49  x64

 

Windows Server 2008 R2 (KB2910686)

Kdcsvc.dll  6.1.7601.18321  430,080 15-Nov-2013 08:40 x64
Kdcsvc.dll  6.1.7601.22515  434,688 14-Nov-2013 09:06 x64

 

  • Windows Server 2008 R2 では、Kdcsvc.dll のファイル バージョンの下 5 桁が、1万番台の場合と、2 万番台の場合があります。
  • 1 万番台の場合は、18321 よりも古い場合に、2 万番台の場合は、22515 よりも古い場合に本事象が発生する条件に該当します。

 

- 変更履歴

2016 年 5 月 30 日 初回投稿

2016 年 6 月 17 日 画像追加

2017 年 8 月 24 日Windows Server 2008 R2  の SP1 適用について追記