黒縁眼鏡は海を飛ぶ

IT中心にそこはかとなく

Active Directoryの色々

前提

確認コマンド色々

> netdom query dc
  • 5つの役割マスタを所有しているドメインコントローラを確認
> netdom query fsmo
  • 時刻同期しているサーバの確認(AD関係ない)
> w32tm /query /status

ドメインコントローラ降格とかFSMO転送(強制編)

  • 通常降格に失敗する場合の強制降格
> dcpromo /forceremoval
> ntdsutil
ntdsutil: metadeta cleanup
metadeta cleanup: connections
connections: connect to server `生存してるDCのホスト名`
connections: quit
metadata cleanup: select operation target
select operation target: list domains         # ドメイン一覧が表示される
select operation target: select domain 0   #  listで表示されたドメインの番号を指定
select operation target: list sites               #  サイト一覧が表示される
select operation target: select site 0         #  listで表示されたサイトの中で削除対象DCが所属する番号を指定
select operation target: list server in site   #  DCの一覧が表示される
select operation target: select server 0     #  listで表示されたDCの中で削除対象のDCの番号を指定  
select operation target: quit
metadeta cleanup: remove selected server

注意事項が表示されるので適当に応答する。
その後、「サイトとサービス」や「DNS」、「ユーザとコンピュータ」に情報が残っている場合は手動削除。
たぶん前者2つだけでいいと思われる。

> ntdsutil
ntdsutil: roles
roles: connections
connections: connect to server `FSMOを転送したいDCのホスト名`
connections: quit
roles: seize `各マスターの名称`     # `?`と打つと表示される

バックアップとリストア

  • 論理障害などの対策としてバックアップ取る
    • けど正直リストアしなきゃいけないような状況を作らないようにしたい
    • ADのリストア不安しかない
    • けど用意しとかないと死ぬからやる
    • ごちゃごちゃ書いてるけどふつーにシステム状態バックアップを取るだけ
  • リストア超いやだけどリストアする
> bcdedit /set safeboot dsrepair
> shutdown /r /t 0

起動時にF8押せ?めんどくさい。
再起動が完了した後は、ActiveDirectory復元用のパスワードでログイン。忘れたのなら諦めましょう。

  • 単一論理障害の場合
    • 普通に復元しましょう
    • 完了後、ご丁寧に再起動を促してくれます
    • 厚意に甘えると再びディレクトリ復元モードで起き上がります
    • ぐっとこらえて以下を実行
> bcdedit /deletevalue safeboot

そもそもbcdeditでセーフモードのフラグを立てなきゃいいんだろうがF8押せって言われそうですが。

  • もうどれが正しいドメインコントローラかわかんないよ…!
    • 全体論理障害っぽい
    • 正直こうなったら諦めたい
    • というかこの手順正しいのか実際のところ不明
    • 何回かやってるのでいいのではないでしょうか

ディレクトリ復元モードで起動し、復元を実行する途中までは単一障害と同一。
ただ、全体的におかしくなってて、1台をレプリケートリーダーにでっちあげたいので、復元ウィザードの途中にある「権限のある復元を実行する」チェックボックスにチェックを入れましょう。
で、単一障害同様再起動を促されます。やめましょう。deletevalueしてから再起動してください。

で、これでもなんとか復元できたっぽい事象を確認しているのですが、権限ありの復元の場合、以下が必要になる。と書いてあった。
復元完了後、再起動する前のタイミングで実施。

> ntdsutil
ntdsutil: activate instance ntds
ntdsutil: authoritative restore
authoritative restore: restore subtree DC=example,DC=local

restore subtree DC=example,DC=localだけでは全オブジェクトにマークをつけられてないっぽいので、?で表示されるSchemaとかConfigurationsとかもrestore subtreeしたほうがいいっぽい。
本当にリストアしないといけない状況を作らないことに尽力したほうがいい。

他にもたくさん知見を得た気がするのだけれども、とりあえずこんなところで…