fc2ブログ

60日前の Active Directory バックアップがリストアできません

先日NTドメインからActiveDirectoryへの移行作業をしてきました。
ユーザー数が数百名規模だったため、ADのメタデータの複製に1時間程度かかりましたが何とか移行に成功しました。

その後ユーザよりADのバックアップ&リストアについて話が出ました。
そこで以前見たGoogleの記事に「60日か90日前ぐらいのバックアップからADを復元するとDCと通信できなくなる」という情報があった事を思い出したので、親切心から忠告しておきました。
ところが逆にその事につっこまれてしまい、その期限を解除する方法を調べて報告するように言われてしまいました。。。

そこで久々にGoogle先生と真剣に語り合ってみました。

すると・・・やはりありました。
Active Directory上から削除したユーザー情報をバックアップから復元できない
 ↓
60日を経過したDCは使わない
Active Directoryデータベースのオブジェクトを削除した場合,「Tombstone」(削除標識,破棄状態の意味)と呼ぶマークを付けてオブジェクトを無効にすると同時に,削除されるまでの期間を「Tombstone Lifetime」として設定しています。このTombstone Lifetimeは標準設定では60日となっています。


60日でダメというのは再認識したのですが、これを引き延ばす事は可能なのでしょうか???

とりあえず語り合う用語が二つ「Tombstone Lifetime , 60日」に増えたのでもう少し調べてみました。

すると・・・変更する方法が見つかりました。
質問:tombstone の期間 (life time)を変更するには
 ↓
回答: tombstone の期間 (life time)を変更するには以下の手順に従います。

(1)regsvr32 adsiedit.dll を実行して adsiedit.dllを登録します。
(2)adsiedit.msc を実行します。ADSI editが起動します。
(3)[Configuration][CN=Configuration,DC=][CN=Services][CN=Windows NT]で
[CN=Directory Service]を右クリックして[プロパティ]を選択します。
(4)[Attribute] = tombstoneLifetimeの値を変更して[OK]をクリックします。ADSI editを終了します。
(5)必要ならadsiedit.dllを解除します。

regsvr32 -u adsiedit.dll


GPOで変更できないかと考えましたが、そんな簡単なものではないようです。
逆に簡単に「Tombstone Lifetime」が変更できてしまうと、簡単にADのメタデータが破損してしまう恐れがあると思います。
MicrosoftもADSIeditやregeditを利用しての変更はノンサポートと明言しているので、あえて危険を冒してまで60日のハードルを越える必要性は無いでしょう。

しかしどうもしっくり来ないのでさらに調べてみると・・・
複製関係にあるDCをイメージソフトでリストアするのはタブーですが、
(→@IT会議室「Windows Server 2003の丸ごとバックアップについて」
今回のように単一PDCのみの場合だと複製関係にないため、60日のハードルは関係ないみたいです。
(→IBM「Active DirectoryのバックアップにはVSSを! 」

・・・という事は杞憂だったのかもしれませんが、MicrosoftがADの復元にイメージソフトを使う事をサポートしていないので何とも言えない結末ですね。

今回のように単一PDCのみの場合だと複製関係にないため、60日のハードルは関係ないみたいです。
度々訂正して申し訳ありませんが、どうもこの結論は間違っているという状況に遭遇しました。

というのも、先日VMware上のWindowsNT4.0の単一PDCのイメージが破損したため、5ヶ月前のイメージからリストアしました。

ところが、いざリストアしてクライアントからログオンしようとすると、「システムのプライマリ ドメインにコンピュータアカウントがないかアカウントのパスワードが正しくいないため、このドメインにログオンできません。」と怒られてしまい、DCとのセキュア・チャネルが正常に確立できないというトラブルに遭遇しました。

クライアントの[ネットワークID]ウィザードからコンピュータアカウントを再度追加する手順を踏んでから、クライアントをドメインに再参加をさせた所、セキュア・チャネルは正常に確立されました。

という事は今回の原因は「Tombstone Lifetime」の影響ではなく、別の制限事項に起因しているのではないかと思って調査してみると、核心に触れる記事がありました。
@IT「復元したドメイン・コントローラでセキュア・チャネルのエラーが出る」
 ↓
Q.
Windows 2000のドメイン・コントローラをバックアップからリストアしたら,そのマシンでセキュア・チャネルに関するエラーが出るようになりました。どう対処すべきでしょうか。
A.
リストアしたドメイン・コントローラ(DC)とPDCエミュレータとなるDCとの間で情報の不整合が起きたためです。セキュア・チャネル(安全なチャネル)が確立できずに「Schannel」をソースとするエラー・イベントが出力されます。原因としては,バックアップ・データが古くセキュア・チャネルのパスワード更新期間を過ぎている場合などが考えられます。
Windows 2000のセキュア・チャネルのパスワード更新間隔は初期設定で30日になっています(Windows NTでは7日でした)。30日より前のバックアップ・データでDCを復元したときに起こり得る現象です。
この記事から伺えるのは、DCのリストアなどによりコンピュータアカウントのパスワード更新期限×2(※2回分のパスワード情報が保存されるため)を過ぎてセキュア・チャネルが確立できなくなった場合は、コンピュータアカウントをまずリセットしなさいという事のようです。複製関係にあるDCの場合は別手順のようですが。。。

コンピュータアカウントのパスワード更新期限を変更する手順はGPOにもあったと記憶しています。

【手順】

・レジストリで変更する場合(ex.WindowsNT)
文書番号:154501「自動的なコンピュータアカウントパスワード変更を無効にする方法」
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
[DisablePasswordChange]→[1]

・ローカルセキュリティポリシー及びGPOで変更する場合
SEの雑記「クライアントのコンピュータアカウントのパスワード格納場所」
[コンピュータの構成]-[ポリシー]-[Windowsの設定]-[セキュリティの設定]-[ローカル ポリシー]-[セキュリティオプション] の中の[ドメインメンバ:コンピュータアカウント パスワード: 定期的な変更を無効にする]

今までの調査結果をまとめると、複製関係にあるDCをリストアする時に「Tombstone Lifetime」を超えているとメタデータに不整合が生じ、DCをリストアする時にコンピュータアカウントの更新期限に不整合が生じるとセキュア・チャネルが確立できなくなるという事です。
DCの運用では、まず複製関係を構築してからバックアップやリストアを設計するのが筋だという理由も良く分かりました。
今後は十分気を付けたいと思います。

【参考】
@IT「長期出張から戻るとドメインにログオンできない」

ターミナルサーバーへのアプリインストール

先日WindowsServer2008のTS RemoteAppでターミナルアプリを公開しました。

ターミナルサーバーのアプリインストール方法には特殊な手順があります。

以下コマンド操作をしてからアプリインストールをしないとエラーになる場合があるので要注意です。

以下Microsoftの技術情報によると、「インストール モードでプログラムをインストールすると、すべてのレジストリ エントリ、ターミナル サービスを追跡し該当のレジストリキーに書き込まれます。」とあります。
 ↓
文書番号:252330「ターミナル サービスをアプリケーション サーバー モードに切り替えると、一部のプログラム動作を停止することがあります。」

【コマンド操作】

1.コマンドプロンプトからインストールモードを変更する場合には、以下のコマンドを実行します。
※アプリインストールする前にこのコマンドを実行する必要があります。
 >change user /install

2.インストールモードを終了させて、実行モードを有効にする場合には、以下のコマンドを実行します。
※アプリインストール後にこのコマンドを実行する必要があります。
 >change user /execute

3.現在のインストールモードを確認したい場合には、以下のコマンドを入力します。
※現在のモードを確認するコマンドです。
 >change user /query



【参考サイト】
ターミナル サーバーにアプリケーションをインストールする方法

300GBのHDDが認識されない

Windows 2000 Sserverで外付けUSB-HDD(300GB)のディスクもP2Vしようとしていたのですが、残念ながらUSB-HDDはP2Vで認識できませんでした。
そこで物理的にIDEのチャンネル2に結線してHDD自体は認識されたのですが、「ディスクをフォーマットしますか?」とメッセージが出て中のデータが認識されませんでした。

いつものようにGoole先生に尋ねると、MicrosoftのサポートオンラインにHDDの壁を超える手順がありました。
 ↓
文書番号: 882350 大容量ハードディスクの 137 GB を超えた容量が認識されない場合の対処方法

今回のケースではBIOS上では認識されていたので、レジストリを以下のように変更しました。

【該当レジストリ】
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Atapi\Parameters
  ↓
上記パス内に「EnableBigLba」(「」は除く) という名前の[DWORD 値] を追加し、「値のデータ」を「1」に設定して再起動します。

OS再起動後は見事に300GBのHDD内のデータが参照できました。

しかし古いOSというのは色んな壁がありますね。P2Vで古いOSというのは色んな問題が出てくるのでやっかいです。

VHDブートができなくなった

先日Windows7/WindowsServer2008R2の新機能であるVHDブート環境をDドライブに構築したのですが、VHDブートしているWindows7があるので、Cドライブに普通にインストールしているWindows7が邪魔だと思い、VHDブートしているWindows7上からDドライブのWindows7のフォルダ等を強制的に消しました。
そして・・・再起動すると・・・なんと故障PCのようにどのOSにもブートできなくなってしまいました。
非常にあせりながら・・・Windows7のCDからブート修復をやってみましたが、問題解決もシステム復元もできなかったので、結局CドライブにWindows7を再インストールしてみました。
当然ながらCドライブはブートできましたが、DドライブにあるVHDイメージからは起動できません。
かなり作りこんだイメージなので何か方法がないかと・・・お決まりのGoogle先生にお願いした所、こんな素敵なサイトが見つかりました。
 ↓
へっぽこにっき(VHD Boot~その3)
※へっぽこではありません^_^)/~

上記サイトを参考に、不具合になっていた赤字部分をbcdeditで以下のように修正しました。

Windows ブート ローダー
--------------------------------
identifier {current}
device vhd=[D:]\VHD\Windows7Ultimate.vhd
path \Windows\system32\winload.exe
description Windows 7 Ultimate
locale ja-JP
inherit {bootloadersettings}
recoverysequence {********-****-****-****-************}
recoveryenabled Yes
osdevice vhd=[D:]\VHD\Windows7Ultimate.vhd
systemroot \Windows
resumeobject {********-****-****-****-************}
nx OptIn

すると・・・素敵な事にVHDブート環境が復活しました^^
生兵法は怪我の元!
もう少しbootloaderの勉強をしないといけませんね。。。

WindowsServe2008のコンソール・セッションの変更点

先日同僚にWindowsServer2008のRDPでのリモート接続の際に、コンソール・セッションに勝手にスイッチできないようにする方法はないかと聞かれました。
WindowsServer2003では勝手にそんな事にはならないので、???と思っていつものようにGoogle先生に尋ねてみました。
すると・・・以下サイトに詳細が書かれてありました。
 ↓
Windows Server 2008 のターミナルサービス:セッションの取り扱いの変更点
要約すると、GPOで1ユーザー1セッションに制限されているとき(既定値)は、WindowsServer2008の場合は勝手にコンソール・セッションを奪ってしまうというもの。しかも従来コンソール・セッション接続に利用していた/console スイッチは無効になるとの事。
という事は、GPOで1ユーザー複数セッションに変更すれば、従来通りの扱いになるものと思われます。

変更手順の詳細は以下サイトにありました。
 ↓
@IT:リモート・デスクトップでコンソール・セッションに接続する

<変更手順>
•グループ・ポリシーの[コンピュータの構成]-[管理用テンプレート]-[Windows コンポーネント]-[ターミナル サービス]-[ターミナル サーバー]-[接続]にある[ターミナル サービス ユーザーに対してリモート セッションを 1 つに制限する]というポリシーを「無効」に設定。

•上記ポリシーが「未構成」に設定されていて、かつ[管理ツール]にある「ターミナル サービス構成」の[1 ユーザーにつき 1 セッションに制限する]が「いいえ」に設定されている。
プロフィール

kitabomb

Author:kitabomb
田舎のしがないSI屋です。

日記

検索フォーム
カテゴリ
最新記事
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード