ラベル ActiveDirectory の投稿を表示しています。 すべての投稿を表示
ラベル ActiveDirectory の投稿を表示しています。 すべての投稿を表示

2018/08/30

フォレスト機能レベルを上げる際、LostAndFoundConfigにオブジェクトが残っていて上げられなかった話

フォレスト機能レベルを上げる機会があり、
手動で上げるだけで特に大変な作業でもないとタカをくくっていたら、
いざあげるときに以下のエラーメッセージがでた。

image
NTDS-DSA オブジェクト
’CN=NTDS Settings,CN=LostAndFoundConfig,CN=Configuration,DC=DC名' が正しく構成されていないため、フォレストの機能レベルを昇格できません。オブジェクトはActiveDirectoryドメインコントローラー XXXX を参照しています。このAD DCがオフラインの場合は、オンラインにするとレプリケーションが実行され構成が修正される可能性があります。そうでない場合は、ADSIエディターMMCスナップインまたは同様のツールを使ってオブジェクトを削除してください

2010/06/01

サーバのグループポリシーのリンク監視の方法を模索してみる その3

さらにグループポリシーリンク監視の模索の続き。
サーバのグループポリシーのリンク監視の方法を模索してみる その1
サーバのグループポリシーのリンク監視の方法を模索してみる その2

前回、前々回とポリシー編集とリンクの付与の比較を出力する方法を模索し、
スクリプトを作ってみました。処理内容はこんな感じ。


エラー時の動作などはまったく組み込んでないので参考程度でどぞ。
#CheckGPO

Import-Module activedirectory
Import-Module grouppolicy

#origpoファイルの場所
$workpath="C:\hogehoge\"

#メール配信先設定
$smtpHost = "SMTPサーバアドレス"
$mailfrom = "FROMのアドレス"
$mailto = "メール配信先"
$mailsubject = "GPOCheckログ"
$mailer = New-Object System.net.mail.smtpclient($smtpHost)

function comparegpo ($crlink, $orilink, $crgpo, $origpo) {
    
#gpo設定 変更された場合は新しいGPOのバックアップを行い oriファイルを更新
    compare-object $crgpo $origpo -property modificationtime,gpostatus,displayname | Set-Variable diffgpo
    if ($diffgpo) { 
        "$(get-date) :--GPO変更が発生しました"
        $diffgpo | sort displayname | ft -AutoSize
    $timename=$(Get-ItemProperty $workpath\origpo.xml).LastWriteTime -replace "[/,:, ]",""

    $diffgpo | ? { $_.sideindicator -eq "<=" } | % { "backup実施"; backup-gpo $_.displayname -path $workpath\gpbackup | fl }
    move-item $workpath\origpo.xml $workpath\log\$timename"gpo.xml" | Out-null
        $crgpo | Export-Clixml $workpath\origpo.xml
     }

#link設定  変更された場合は oriファイルを更新
    compare-object $crlink $orilink -Property target,displayname,enabled | Set-Variable diffgpl
    if ($diffgpl) { 
        "$(get-date) :--GPO Linkに増減が発生しました"
        $diffgpl | sort displayname | ft -AutoSize
    $timename=$(Get-ItemProperty $workpath\orilink.xml).LastWriteTime -replace "[/,:, ]",""
    move-item $workpath\orilink.xml $workpath\log\$timename"orilink.xml"
        $crlink | Export-Clixml $workpath\orilink.xml 
    }

}

#origpo存在チェック
if (test-path "$workpath\origpo.xml"){
    $origpo=Import-Clixml "$workpath\origpo.xml"
} else {
    "origpo.xml NotFound"
    get-gpo -all | Export-Clixml $workpath\origpo.xml
    return
}

if (test-path "$workpath\orilink.xml"){
    $orilink=Import-Clixml "$workpath\orilink.xml"
} else {
    "orilink.xml NotFound"
    Get-ADOrganizationalUnit -Filter 'Name -like "*"' | % { Get-GPInheritance -Target $_ } | ? { $_.gpolinks -ne "" } | % { $_.path; $_.gpolinks } | Export-Clixml $workpath\orilink.xml
    return
}


#現在のOU状態の取得
$crlink = Get-ADOrganizationalUnit -Filter 'Name -like "*"' | % { Get-GPInheritance -Target $_ } | ? { $_.gpolinks -ne "" } | % { $_.path; $_.gpolinks }
$crgpo = get-gpo -all


#比較対象を関数で渡し、戻り値が存在した場合にはメールを出す
$result=comparegpo $crlink $orilink $crgpo $origpo

if ($result) { 
    $mailbody=[string]::join("`r`n", ($result | out-string -width 200 ))
    $mailer.send($mailfrom, $mailto, $mailsubject, $mailbody )
    $result | out-string -width 200 > $workpath\recent.log
    $result
    "変更が発生し、メールを出しました"
}
$work フォルダの配下にlog フォルダと、 gpbackupフォルダを用意してください。
適当にGPOを変更かけて、リンクをつけたあとにスクリプトを実行してみました。


あとはこのスクリプトを一定時間のタスクで回しておけば、
多少の監視にはなるかなぁと。

結局、サイトのGPOは対応できなかったけどなッッ

2010/05/24

サーバのグループポリシーのリンク監視の方法を模索してみる その2

前回の続き
前回は、OUのリストを取得し、そこに貼られているGPOを出力するということをやりました。
で、OUに貼られているGPOはとれてもサイトに貼られたGPOはとれないね、というところまでやりました。

・・・まぁ、サイトに関するGPOはとりあえずおいとく(笑)
できるところを固め、そこから順次付け足すというのが 僕の今ままでの手法なので
とりあえずできそうなところからやってみます。
ということで、オリジナルGPOと変更したGPOを比較する手法を今回はやってみます。


前回はリンクに関することしか触れませんでしたが、
PowerShell v2 のgrouppolicy モジュールにはGet-GPO というGPO情報を取得できるコマンドがあります。

PS > Import-Module grouppolicy
PS > get-gpo -all

 -All オプションをつけることで、すべてのGPOの情報を取得できます。
情報としては、Statusや、変更時刻などが記されているので、この情報を保存します。
PowerShellだとオブジェクトはXMLファイルとして保存できるので、それを利用してみます。
PS > Get-GPO -All | Export-Clixml -Path .\origpo.xml
では、試しにGPOを変更して、比較してみましょう。
↓が現在のGPO

GPOtest1を内容変更、GPOtest2を「すべての状態を無効」 GPOtest4を削除してみます。

では、さっき保存したorigpo.xml と現在のGPOを比較してみます。
PS > $origpo=Import-Clixml .\origpo.xml
PS > $crgpo=Get-GPO -All

PS > Compare-Object $crgpo $origpo -Property displayname,modificationtime,GpoStatus | sort displayname


表示名、変更時刻、ステータスを比較対象として出力してみました。
ちゃんと、変更された、削除されたGPOが出力されていますねー。
これを定期的に実行、タスクに組み込むことで変更に対する監視ができるのではないでしょうか。
前回のOUリンクも同じ方法でオブジェクトを保存し、リンクの比較をしてみるとよいかもですね。

・・でも、サイトのやりかたはやっぱりわからんw

2010/05/19

サーバのグループポリシーのリンク監視の方法を模索してみる


さて、久々の更新です。
独りよがりで描かず、今後は定義を再確認しつつ
わかりやすく絵で表現していこうかなーと思っていたのですが、
少し作ってみたいPowerShellのスクリプトができたので、
やっぱり今回もPowerShellのメモ描きですw

その作ってみたいスクリプトとは・・


他に良い案があればみなさんに教えてもらうとして・・(笑)
とりあえず、泥臭い手段でPowerShellを使って模索してみます。

PowerShell v2 になってからADに関するモジュールが追加されたので、それを利用してみましょう。
とりあえず、ActiveDirectory と、GroupPolicy のモジュールを追加してみる。
PS > Import-Module activedirectory
PS > Import-Module grouppolicy
これにより、ADやグループポリシーに関するコマンドを使用することができます。
PS> Get-Command -module activedirectory


CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Add-ADComputerServiceAccount    Add-ADComputerServiceAccount...
Cmdlet          Add-ADDomainControllerPasswo... Add-ADDomainControllerPasswo...
Cmdlet          Add-ADFineGrainedPasswordPol... Add-ADFineGrainedPasswordPol...
Cmdlet          Add-ADGroupMember               Add-ADGroupMember [-Identity...
Cmdlet          Add-ADPrincipalGroupMembership  Add-ADPrincipalGroupMembersh...
PS > Get-Command -module grouppolicy


CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Backup-GPO                      Backup-GPO -Guid -Pat...
Cmdlet          Copy-GPO                        Copy-GPO -SourceGuid ...
Cmdlet          Get-GPInheritance               Get-GPInheritance [-Target] ...
Cmdlet          Get-GPO                         Get-GPO [-Guid] [[-Do...
Cmdlet          Get-GPOReport                   Get-GPOReport [-Guid] ...
 さて、では例として下記のようにGPOがリンクされていた場合。

GPOのリンクが何がついているかを見るには、 Get-GPInheritance コマンドレットを使います。
PS> Get-GPInheritance -target "OU=GroupA,OU=UserList,DC=furyu,DC=local"




Name                  : groupa
ContainerType         : OU
Path                  : ou=groupa,ou=userlist,dc=furyu,dc=local
GpoInheritanceBlocked : No
GpoLinks              : {GPOtest1, GPOtest2}
InheritedGpoLinks     : {GPOtest1, GPOtest2, Default Domain Policy}
 ちょっとこれだけだとわかりづらいから、 GpoLinks だけを取り出してみる。
PS > Get-GPInheritance -target "OU=GroupA,OU=UserList,DC=furyu,DC=local" | % { $_.gpolinks }


GpoId       : 09ecc96a-2d91-4594-8474-4404e82241d2
DisplayName : GPOtest1
Enabled     : True
Enforced    : False
Target      : ou=groupa,ou=userlist,dc=furyu,dc=local
Order       : 1


GpoId       : 72e4f0a0-7b01-4944-9fba-6ad14faefb49
DisplayName : GPOtest2
Enabled     : True
Enforced    : False
Target      : ou=groupa,ou=userlist,dc=furyu,dc=local
Order       : 2
これで、 OUが "OU=GroupA,OU=UserList,DC=furyu,DC=local" のかかっているリンクのGPOをとりだすことができました。
しかし、監視するとなると全OUのリンク状況を知らないといけないですよね。
というわけで、全OUを列挙してみましょう。
OUを出すには、ActiveDirectoryモジュールを追加してできた、Get-ADOrganizationalUnit コマンドレットを使います。
PS > Get-ADOrganizationalUnit -Filter 'Name -like "*"'


City                     :
Country                  :
DistinguishedName        : OU=Domain Controllers,DC=furyu,DC=local
LinkedGroupPolicyObjects : {CN={6AC1786C-016F-11D2-945F-00C04fB984F9},CN=Polici
                           es,CN=System,DC=furyu,DC=local}
ManagedBy                :
Name                     : Domain Controllers
ObjectClass              : organizationalUnit
ObjectGUID               : ee6dfe99-a1f5-4579-b810-d12d22fcdfff
PostalCode               :
State                    :
StreetAddress            :
 これで全OUを取り出せるので、このオブジェクト群を変数にいれてしまいます。
PS > $oulist=Get-ADOrganizationalUnit -Filter 'Name -like "*"'
 では、この変数を利用してリンクが貼られているOUとそのGPOを出してみましょう。
PS > $oulist | % { Get-GPInheritance -target $_ } | ? { $_.gpolinks -ne "" } | fl -Property path,gpolinks


Path     : ou=domain controllers,dc=furyu,dc=local
GpoLinks : {Default Domain Controllers Policy}


Path     : ou=groupa,ou=userlist,dc=furyu,dc=local
GpoLinks : {GPOtest1, GPOtest2}


Path     : ou=groupb,ou=userlist,dc=furyu,dc=local
GpoLinks : {GPOtest2, GPOtest3, GPOtest1, GPOtest4}

あとは、このオリジナルのリストと、取得したリストを比較するスクリプトを定期的にタスクで流して差異がでたら報告、みたいな作りをさせればなぁと思ったのですが。


そんなわけで、もう少しやり方考えなきゃなぁと思ってます。

2010/04/16

クラシック表示のシェルをオンにする


この時期はリプレースがあったりして、当然7も新たにドメインに参加することになったりしてます。
で、今回発覚したのがGPOの「クラッシック表示のシェルをオンにする」の機能変更。

このポリシー自体は、エクスプローラをクラッシック表示に切り替え、
エクスプローラーの処理の負担や消費メモリ量の軽減させ軽快な動作をはかることができるのですが。。

しかし、今までは「有効」にすることで強制的にダブルクリックになっていたのに
7からは「有効」にするとシングルクリックが適用されるという・・。ひどいッッ
混在している環境だったらどうやって統一させろというんだろう・・。

ちなみに、フォルダオプションを見ても見た目上は「ダブルクリックで開く」になってます。
とりあえず、現状適用されているかどうかを見る場合は、レジストリを見るとてっとり早いです。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
ClassicShell  DWORD値


クラッシック表示のシェルに関してはこちらのブログで詳しく紹介されていますので、どうぞ。
attosoft.info Blog
http://attosoft.info/blog/win-accel/item-useclassicshell/

2010/03/15

ループバック処理


最後は、駆け足ですが。
動作としては、マシン起動したあとにコンピュータにつけられたコンピュター構成のGPOが適用され
その後、ユーザーログインした時に、ユーザーにかけられたGPOが適用、
最後にループバック処理を実施している場合はコンピュータにかけられたユーザー構成GPOが適用されます。

設定手順は下記の通り。
ユーザー構成をコンピュータごとに設定するには、次の手順を実行します。
  1. グループ ポリシー Microsoft 管理コンソール (MMC) で [コンピュータの構成] を展開します。
  2. [管理用テンプレート]、[システム] を順に展開し、[グループ ポリシー] をクリックし、[ユーザー グループ ポリシー ループバックの処理モード] を有効にします。
 3回に分けて描きましたが、いずれにせよ、どうGPOを管理するかがポイントだと思います。
グループポリシーオブジェクトの置き場所はツリー構造じゃないので、
数が増えていくにつれて管理が困難になっていくので困る。
他にも何かGPOの管理手順で良い方法とかあれば教えて頂ければ嬉しいです。

2010/03/11

サイト構成とGPO


とはいえ、部署内において通常は一元化されたポリシー適用する、
というのが普通だったのでこの方式でだいたいまかなうことができていた。
どうしてもというのであれば、
次回取り上げるであろうGPOのセキュリティ設定によって変化をつけたりする方法もある。
あとはプロファイルによる設定変更で対処はしていた。

しかし、2008Serverになり、ポリシーのみならず基本設定による管理も進んで行くと思うので
やっぱりGPOのループバック処理 が必要となってきそうです。

2010/03/04

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年] レポート7

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年]

というわけでようやく最終セッションです。
最後は、プロダクトマネージャー岡本さんより
「Active Directory PMからのご案内」


というわけで、最後はADがこれだけ多くに浸透したので
さらに次の展開、ソリューションを広げていこうというお話でした。
オンライン上にもADに関する技術情報が多く提供されていますし、
またセミナーなども盛んに行われています。
市場が何を望んでいるか、そしていかによりよいサービスを提供できるか。
そこを見極めつつ、知識を増やしていければよいですよね。

というわけでセッションレポート、ようやく終了ですw
最後まで見ていただいた方、ありがとうございました。

次回は、おまけと自分自身の感想がかければいいなーと思ってます。

2010/03/03

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年] レポート6

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年]

レポート6回目。
今回のセミナー一番の目玉である、
「Active Directory エキスパートによるパネルディスカッション」です。
ADの黎明期から現在にいたるまで、
書籍やネット上でよく見かける5人のパネリストによるパネルディスカッション。
パネラーは、横山さん。小鮒さん。国井さん。吉田さん。竹島さんの5名で行われました。
司会はエバンジェリスト 安納さん。とても盛り上がりました。

 

文字ばかりで見難くなっちゃいましたね。。
それにしてもADの過去、現在、そして未来についてADの第一人者の5人から話を聞けたのは
とても貴重な体験となりました。
これに刺激をうけ、さらに精進していきたいと思ってます。

次はラストセッション。
「Active Directory PMからのご案内」についてレポします。

2010/03/02

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年] レポート5

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年]

レポートも5回目。
今回は、ADSI/FIM サポートエンジニアで、
ILM一家のお父さんこと渡辺さんによる、「ADSI のトラブル解決のつぼ」。
僕自身はADSIを利用して操作する機会というのはほとんどないのですが、
わかりやすく、そして面白く解説していただきました。
ブログのほうでもとても詳細に当日の内容が掲載されています。


管理者は見た!~AD と ILM 一家の秘密~
[Info] “Tech Fielders の集い 特別編 おかげさまで Active Directory 10 周年” (2) ADSI チームセッション内容 Ver 1.0

あえて、僕が絵化する必要はないのかも(汗
より詳しく知りたい方は上記ブログを参照してください。

問題の見つけ方として、David J.Agans著「デバッグルール」という本が素晴らしいので
せっかくなのでついでにご紹介。
この本はデバッグについての9つの原則と54のヒントが書かれてます。
僕はプログラムはからっきしなんですが、そんな僕でも読んで感銘をうけた本です。
以下、原則を書いていくと

1。システムを理解する:説明書はちゃんと読もうぜ
2。わざと失敗する:失敗が起きる状況を確認しようぜ
3。考えるのをやめて観察する:観察したあとに行動しても遅くないんだぜ
4。分割して攻略する:いわゆる切り分けしていこうぜ
5。1度に1つずつかえる:一気に色々やると何が何だかわかんないんだぜ
6。履歴をつける:せっかくやったことも意味なくなるんだぜ
7。電源を確認する:実は根本部分が原因だったりするんだぜ
8。新しい視点でものをみる:専門家に師事あおいでもいいんだぜ
9。あなたがしないと問題は解決しない:勝手に直りはしないんだぜ

というわけで名著です。

さて、次回はいよいよ目玉。
「Active Directory エキスパートによるパネルディスカッション」のレポをしたいとおもいます。

2010/03/01

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年] レポート4

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年]

3セッション目は、ADサポートチーム 北川さんと 渡會さんによる
「グループポリシー よくある質問」。
このサポートチームのブログもよく拝見させて頂いています。
Ask the Network & AD Support Team

上の説明であってるかなぁ・・。
おおまかな概要を描いたにとどめているので、より詳しい話とかは下記リンクどぞ。
@IT Active DirectoryにおけるGPO
TechNet グループ ポリシーのパフォーマンスを最適化する
ITPro グループ・ポリシーの変更をすぐにクライアントへ反映させるには?

セミナーにおいては、このGPO適用の動作に基づいて、
見るべきログや、手法を解説されていました。
特に MPS Reports を使うとOSの様々な情報が取得できて便利だそうです。
今度試してみよう。

次回は4セッション目、 「ADSIトラブル解決のつぼ」をレポしたいと思います。

2010/02/28

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年] レポート3

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年]


2セッション目は、テクノロジースペシャリストの山崎さんによる
「Active Directory 提案のツボ」。
ブログの、「Windows Server 使い倒し塾」 を運営している
Windows Server プリセールス エンジニア チームに所属している方です。
ここのブログもいつも拝見させてもらっています。
さっそく、当日の模様の記事と資料も掲載されていました。
Windows Server 使い倒し塾 -Active Directory が 10 周年を迎えました!-
詳細は上記ブログへどうぞ。


今は、どこの企業も統合化されはじめてきているのかなー。
いずれ、AD FSに関してもっとしっかりと学ばなきゃいけなくなりそうですね。
ADによっていかにリソースを管理し、それをどのようにサービスへフィードバックさせるか。
今後のADの扱いがどのようになっていくか楽しみです。

次は3セッション目「ADによくある質問」をレポします。

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年] レポート2

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年]


セミナーレポ 続き。
ちなみに、同じくブログにて当日の模様を紹介している方が大勢いらっしゃるので、
より具体的に内容を知りたい方はそちらの方も参考にどぞ。

第一セッションはAD10年のあゆみ

というわけで、MCS(マイクロソフトコンサルティングサービス)のお二方が
当時の資料や、解決手法のデモをみせつつ解説してくれました。
しかし、ハッシュ化されたパスワードをどうやってテキストファイルにうちだしたのだろう?謎だ。
6/26 ID管理ガイド という本がMSより出版するらしいので、そこに書いてあるのかな?

あと、ADの軌跡については今回司会をなされた安納さんのブログにも詳しく載っています。

フィールドSEあがりの安納です。
Active Directory の10年の軌跡~ファイルサーバーからクラウドまで
http://blogs.technet.com/junichia/archive/2010/02/22/3314363.aspx
次は2セッション目、”Active Directory 提案のツボ”についてレポします。

2010/02/27

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年] レポート1

Tech Fielders の集い 特別編 [おかげさまで  Active Directory 10 周年]



いただけた記念品。

 「ひと目でわかるActiveDirectory」は、帯が10周年仕様となっていましたね。
その他、伝説のサーバ絵本、
「ママ、どうしておうちにサーバがあるの? ~お子様が家庭用サーバを理解するために~」と、
同じ系統の「オオカミと5匹のこぶた」も頂くことができた。
すばらしい。


記念メダル。限定200個。


講師の方の内容に説明が加わったり、該当のWEBページが貼られたり。
その時の様子は、#ad10th にて見れるので、実況感覚で見てみると面白いかも。

次は、内容レポに入っていきたいと思いますー。

2010/02/20

セミナー情報 Tech Fielders の集い 『おかげさまで Active Directory 10周年』









Tech Fielders の集い 特別編 『おかげさまで Active Directory 10周年』


というわけで、AD生誕10周年ということでMSも力を入れているみたいです。
当日の模様をTwitterかブログで更新することが参加資格としてあげられていたので、
当ブログを立ち上げるきっかけとなったわけです。
運用をやっていると、どうしても閉鎖的な環境におかれてしまうため、
他の運用手法や全体の管理の流れを知りたくなるんですよね。
どんな話がきけるのか楽しみー