セッション直前の安納です。スピーカールームで暇なので、デモを追加しようかなと思っているところです。
で、ちょっとやってみたいのが、回復ポイントの削除です。
先日、以下の投稿をしました。
【Management】DPM2007 管理シェルで保護領域不足を回避する
DPM 2007 では、事前に確保した保護領域を超えてバックアップすることはできません。これは、自動的に容量を追加する機能が実装されていないためです。
この問題を回避するには、事前にもっと大きな保護領域を確保しておくか、前出の投稿に書いた通りサイズの変更を行う必要がありますが、あと1つ方法が考えられます。
それは、古いバックアップを削除するという方法です。
が、DPM 2007 の管理コンソール上からは、古い回復ポイントを削除することができません。回復ポイントは、保護グループの作成時に設定した既定の日数を経過すれば自動的に削除されますが、これを手動で行うには、DPM管理シェルを使用してPowerShellで操作してあげる必要があります。
不要な回復ポイントを削除するには、Remove-RecoveryPoint というコマンドレットを使用します。
手順を以下に示します。詳しい解説は、Tech・Ed 終了後に行いたいと思います。
まずは、保護グループを取得します。Gyomu02 はインスタンスを取得したい保護グループ名です。
$pg = Get-ProtectionGroup -DPMServerName T4304-DPM01 | where {$_.FriendlyName -eq 'gyomu02'}
次に、データソースを取得します。
$ds = Get-DataSource -ProtectionGroup $pg
次に、削除したいリカバリポイントを取得します。リカバリポイントは 2008/8/10 12:01 のような日付形式になっています。
$rp = Get-RecoveryPoint -DataSource $ds | where {$_.RepresentedPointInTime = -eq '2008/8/10 12:01' }
これでリカバリポイントのインスタンスが取得できたので、次のように削除を実行します。
Remove-RecoveryPoint -RecoveryPoint $rp
この結果、占有されている容量は減っているので、一度保護グループを非アクティブにし、再度保護グループを定義してあげればバックアップが取れるようになります。
保護グループの非アクティブ化→アクティブ化についても、スクリプト化しておくと自動化ができますね。
ちょっとしたTIPSです。
DPMを使用しているとアラートが発生することがあります。
たとえば、「エージェントに接続できない」というアラートがあります。ネットワークが切断されたり、サーバーの再起動によって一時的にエージェントに接続できないことはありますが、確実に復旧しているにもかかわらず、いつまでも「エージェントに接続できない」というアラートが消えないことがあります。

この「エージェントに接続できない」状態は管理コンソール上の作業に優先されるているようで、このアラートが消えないと「整合性チェック」や「回復ポイントの作成」といった作業が行えません。
エージェントと正しく通信が行えているかどうかを確認するには、[管理]メニューの[エージェント]タブを使用します。ここで、当該コンピュータのエージェント状態が「OK」であれば、おそらく問題は無いでしょう。
にもかかわらず上記のアラートが消えない場合には、強制的にこのアラートを消してしまうことで正常な状態に戻すことができます。
方法は単純です。
以下のように、[監視]メニューの[アラート]タブで当該アラートを選択し、アクションペインの「アラートを非アクティブにする」を選択してみてください。

これでアラートは消え、整合性チェック等の作業が行えるようになります。
バックアップファンの皆さん、こんにちは。
バックアップ、とれてますか?
もし私に娘がいて、「パパに紹介したい人がいるの」と彼氏を自宅に連れてきても、バックアップを取っていない男なんて敷居をまたがせません。絶対にっ。
そんな男には、オープンリールのテープで出汁を取った煮え湯を上下からぶっかけてやりたいです。
そんなココロザシをお持ちの皆さまに朗報です。
日本のマイクロソフトのSE部隊のメンバーがまとめた Data Protection Manager 2007 のドキュメントが、TechNet 内の TechCenter サイトで公開されました。
もちろん日本語です。
- System Center Data Protection Manager 2007 実践ガイド
- System Center Data Protection Manager 2007 パフォーマンス検証ガイド (ファイル サーバー編)
- System Center Data Protection Manager 2007 パフォーマンス検証ガイド (Exchange Server 2007 編)
- System Center Data Protection Manager 2007 パフォーマンス検証ガイド (Microsoft Office SharePoint Server 2007 編)
- System Center Data Protection Manager 2007 パフォーマンス検証ガイド (SQL Server 2005 編)
明日(というか本日)、8月28日の私のDPMセッションでは触れない、計画から導入、運用方法までこと細かく解説されていますので、是非ともご覧になってみてください。
普段なにげなく聞いているナレーションですが、よくよく考えるとすごい仕事ですよね。
声だけで聴取者に印象を植え付けるというのは、もう特異な才能としか言いようがありません。
今回の Tech・Ed 2008 Yokohama でも、1日目、2日目の基調講演のナレーターはプロの方が担当されています。
私はてっきり録音だと思っていたのですが、なんと生で発生しているんですね。
ご本人の blog にもイベント名は書いてないため、ちょっとお名前を出してよいのかどうか判断がつきませんので、仮に F さんとしておきます。
F さんの声は、とにかく低音の魅力と、その変幻自在の迫力です(浅~い評価ですが...笑)。
基調講演リハーサルの休憩中、喫煙所ですこしお話しをしたのですが、DJ、CM、テレビ番組のナレーション、各種イベント等、それはそれは大量の「声の」露出があり、確実にみなさんも絶対にどこかで聴いています。あのCMやこの番組も、この方が声を担当されていたんですね...あと、blog によれば、リングアナもされているとのことで..
WebCast 収録の参考になるかなと思いつつお話ししたのですが、いやーならないですね。別世界です。そもそも声が違うんだもの...
あぁ、「低音が魅力ですね」って言われたいです。
あと、「ロマンスグレー」って言われたいし、「ほっそいですよねぇ」とも言われたいです。
あ、できれば、中学1年のあの時にもどって「この後、担任登場だぞ!」って警告してあげたい。そうすればあんなことにならなかったし。
そ、それから、中学3年のあの時にもどって「芸能人にラブレター出しても、ファンクラブの入会案内しか来ないかんね」って教えてあげたい...あぁ、恥ずかしすぎて死にそうです...
なんかテンションが下がってきたので、カップラーメンでも食べます。
こんにちは。いま、Microsoft Management Summit 2007 キーノートのデモが終了したばかりの安納です。
個人的に、Tech・Edの大きなヤマを越えた気がしたのですが、これは完全な勘違いでした。本番は明日の Data Protection Manager です。
昨晩はうまく寝つけず、仕方が無いのでデモで使用するPowerShellのスクリプト作りをしていました。
以下は、指定したサーバーの保護グループとリソースを片っ端からチェックし、使用量が90%を超えていたら容量を1.5倍に拡大するスクリプトです。
現在のDPMではデータ量増加の予測が難しいため、定期的にこのようなスクリプトを走らせて容量拡大をしてあげる必要があります。
Operations Manager と併用することで、閾値オーバーのエラーをトリガーとしてこのスクリプトを走らせることができます。
詳しい解説は、Tech・Ed のあとに行わせてください。
それでは、よい Scripting Life を!
あ、以下のスクリプトは拡張子 ps1 で保存し、DPM管理シェル上で動作させてください。
| param([string] $DPMServerName) if(!$DPMServerName) { $DPMServerName = read-host "DPMServerName:" } $dpmserver=Connect-DPMServer $dpmservername $PGList = @(Get-ProtectionGroup $dpmservername) foreach($PG in $PGList) { $MPG = Get-ModifiableProtectionGroup $PG $ModifiableProtectionGroupName = $MPG.FriendlyName Write-Host "保護グループ::$ModifiableProtectionGroupName" $dslist=@(get-datasource $MPG) foreach ($ds in $dslist) { $DataSourceName = $ds.Name $RecentReplicaSize = $ds.ReplicaSize $RecentReplicaUsedSpace = $ds.ReplicaUsedSpace $RecentReplicaUsedPercent = $RecentReplicaUsedSpace / $RecentReplicaSize * 100 $RecentShadowCopyAreaSize = $ds.ShadowCopyAreaSize $RecentShadowCopyUsedSpace = $ds.ShadowCopyUsedSpace $RecentShadowCopyUsedPercent = $RecentShadowCopyUsedSpace / $RecentShadowCopyAreaSize * 100 Write-Host "- データソース::$DataSourceName" Write-Host "-- 現在のレプリカサイズ ::$RecentReplicaSize ($RecentReplicaUsedSpace) $RecentReplicaUsedPercent %" Write-Host "-- 現在のシャドウコピーサイズ::$RecentShadowCopyAreaSize ($RecentShadowCopyUsedSpace) $RecentShadowCopyUsedPercent %" if($ds.ReplicaSize * 0.9 -lt $ds.ReplicaUsedSpace) { $NewReplicaSize = $ds.ReplicaSize * 1.5 Set-DatasourceDiskAllocation -Manual -Datasource $ds -ProtectionGroup $MPG -ReplicaArea $NewReplicaSize Set-ProtectionGroup $MPG $RecentReplicaSize = $NewReplicaSize $RecentReplicaUsedPercent = $RecentReplicaUsedSpace / $RecentReplicaSize * 100 Write-Host "---- 新しいレプリカサイズ ::$RecentReplicaSize ($RecentReplicaUsedSpace) $RecentReplicaUsedPercent %" } if($ds.ShadowCopyAreaSize * 0.9 -lt $ds.ShadowCopyUsedSpace) { |
いよいよ、明日26日より Tech・Ed 2008 YOKOHAMA が開催されます。
初日のオープニング&キーノート、および2日目のMicrosoft Management Summit のキーノート会場となる ROOM A では、スピーカー、デモラー、照明、音響、などなど多くの人々が綿密な打ち合わせのもと、明日にむけて最終調整を行っています。
私はと言えば、2日目のMMS(Microsoft Management Summit)のキーノートにおけるデモを、System Center プロダクト担当の長谷川氏と共に担当するため、初日同様にデモ内容や進行について連日会場で調整を行っています。
先ほど、MMS キーノートのスピーカーである ブラッドとデモの打ち合わせをしてきました(通訳付き 笑)。
では、こっそり、つい先ほど携帯で撮ってきた現場の様子をお伝えします。
ROOM A はとにかく広いです。壇上から見下ろすと、いやいや、緊張せずにはいられません。
#高添は、担当する2つのセッションともにこの会場なんだなぁと思うと、人ごとながら、なんかゾクゾクしてきます。


会場にはうっすらとスモークがかけられています。壇上のテーブルには大量のデモ機がずらっとならべられています。
おそらく、全部で30台以上あるんじゃないでしょうか。


で、ホテルの私の部屋はといえば、担当セッション(T4304)のデモ機が広げられていますが...この3日間、まったくさわれていません...そのせいでもないでしょうが、なんかDNSがおかしいような...。
よーし、これから追い込みだ....。
それでは現地でお会いしましょう。
Tech・Ed の準備も佳境(えぇぇ未だに佳境?)に入ってまいりました今日この頃、いかがお過ごしでしょうか。
この1ヶ月間、正直、つらかったです....いえいえ間違えました。楽しかったのです。
というのも、Tech・Ed の準備をするかたわら、リソースキットの監修作業を行っておりました。
正直に申し上げます。たった1分冊だけとはいえ、リソキを完璧に読破したのは、もしかしたら初めてかもしれません。
今回の監修では、技術的なチェックと修正はもちろんのこと、日本語として読みやすいようにかなり書き換えました。エンジニアの皆さまにおかれましては、忙しい中、眠い目をこすりながら調査しているのに、日本語の意図まで読み取るのはとてつもないストレスですよね。はい、私も経験があるので痛いほどわかります。
「うつくしい日本語」という観点からは、まだまだ修正の余地はあるものの、いい線いっているんじゃないかと考えています。
そんなリソースキット 「Microsoft Windows Server 2008リソースキット Active Directory編」が日の目を見る日が近づきました。
書店に並ぶのは 9月29日 と、少し先になりますが、販売元の 日経BP 社では既に予約販売を開始しています。
マイクロソフト公式解説書
Microsoft Windows Server 2008リソースキット Active Directory編
9450円 880ページ
http://ec.nikkeibp.co.jp/item/books/A05200.html
目次はこちら。
決して安い価格ではありませんが、価格にそん色ないページ数、内容となっています。既存の書籍や雑誌等で簡単に触れられていることも、当リソキではかなり掘り下げて解説しています。読みながら、「うわぁ、マニアックだなぁ」とニヤリとしたことも数知れずですし、「へぇ、こんな動きしているのね」と感心したことも。Windows Server 2008 で拡張された、グループポリシー、読み取り専用ドメインコントローラ、フェデレーションサービス、証明書サービスなどもばっちり解説しhてあります。
Active Directory のエキスパートを目指す方も、MCP試験を予定されている方、本棚に10cmほどの隙間がある方や「近頃枕が合わないのよねぇ」という方も、是非ご購入をご検討ください。
また、日経BPソフトプレスのサイトでは、Tech・Ed 2008 の各セッションに対応した書籍の紹介もなされていますので、こちらも合わせてご覧ください。
日経BPソフトプレス Tech・Ed 2008 関連書籍
http://ec.nikkeibp.co.jp/nsp/tech_ed2008_information003.shtml
全国の VBScript ファンの皆さん、こんにちは。
Scripting Life を楽しんでますか?
ちょっと前のことになりますが、PowerShell チームの blog に以下の記事が投稿されました。
この記事では、VBScript から PowerShell を使用する方法として、Sapien Technologies 社が無償提供している ActiveXPosh を紹介しています。
既に InfoQ 日本語版にも掲載されていますし、何名かの Microsoft MVP の方々も blog でも紹介されていますので、ご存じの方も多いかもしれません。
VBScript から PowerShell が使うことに意味があるのか?
てか、はじめから PowerShell を使ったら?
という貴重なご意見には一切耳を貸さず、とりあえず使ってみることにします。
<準備>
<リファレンス>
ActiveXPoSh のリファレンスはこちら
<ちょっとだけ使ってみる>
まずは、リファレンスにも掲載されている簡単なスクリプトから。以下のスクリプトを拡張子 vbs で保存してコマンドプロンプトから実行してみてください。
| Set objActiveXPosh = CreateObject("SAPIEN.ActiveXPosh") objResult = objActiveXPosh.Init( False ) If objActiveXPosh.Eval("Get-Process Winword") Then WScript.Echo "Word is running" Else WScript.Echo "Word is NOT running" End If |
もう、何をやっているかは一目瞭然ですね。Winword 、つまりワードのプロセスが起動しているかどうかをチェックしています。
実行結果例を以下に示します。
ここで注目していただきたいのは、2行目です。この行で、PowerShell環境の初期化を行っていますが、必要であれば プロファイルを指定してロードすることも可能です。この行で初期化を行わないと、以下のエラーが出てコマンドレットを実行することができないので注意してください。
C:\tmp\ActiveXPoshTest.vbs(3, 1) ActiveXPosh: オブジェクト参照がオブジェクト インスタンスに設定されていません。
次に、3行目の Eval メソッドに注目してください。これは、"Get-Process Winword" の実行結果を評価するために使用します。Get-Process winword の結果、正しくオブジェクトが返されれば True に、返されなければ False となります。この場合は、Winword プロセスが返されるかどうかを判定しています。
<もちょっと使ってみる>
このままですと、vbscript でもできるじゃーん、てことになってしまうので、vbs でできないことを powershell に任せるというスクリプトを実行してみたいと思います。
以前、以下の投稿をしました。この投稿では、生パスワードを SHA1 形式で簡単に暗号化する方法が vbscript にないため、PowerShell を使って実現しています。
【IDM】Active Directory から OpenLDAP への パスワードの同期 その1 ~ パスワードを SHA1 で暗号化
http://blogs.technet.com/junichia/archive/2008/05/14/password_5F00_sync_5F00_ad_5F00_to_5F00_Openldap_5F00_1.aspx
ここで紹介している PowerShell スクリプトを ActiveXPoSh を使用して VBScript に組み込んだものが以下です。
拡張子を vbs として保存し、実行してみてください。引数に文字列を指定すると sha1 で暗号化されて表示されます。
| Set Args = Wscript.Arguments If Args.Count = 0 then Wscript.Echo Wscript.ScriptName & " " & "<生パスワード>" Wscript.Quit End if strPassword = Args(0) Set objActiveXPosh = CreateObject("SAPIEN.ActiveXPosh") objResult = objActiveXPosh.Init( vbFalse ) objActiveXPosh.OutputMode = 2 objActiveXPosh.Execute("$strPassword = '" & strPassword & "'") objActiveXPosh.Execute("$objUTF8Enc = new-object System.Text.UTF8Encoding") objActiveXPosh.Execute("$bytPassword = $objUTF8Enc.GetBytes($strPassword)") objActiveXPosh.Execute("$objCrypt = new-object System.Security.Cryptography.SHA1CryptoServiceProvider") objActiveXPosh.Execute("$bytCryptPassword = $objCrypt.ComputeHash($bytPassword)") objActiveXPosh.Execute("$strBase64Password = [System.Convert]::ToBase64String($bytCryptPassword)") objActiveXPosh.Execute("$strBase64Password") For Each strInfo In objActiveXPosh.Output strSha1Password = strSha1Password & strInfo strSha1Password = strSha1Password & VbCrLf Next WScript.Echo strSha1Password |
青く色が付いている行が、PowerShell 上で実行されるコマンドです。
これで、PowerShell に心を売ることなく(意味不明ですが)、VBSripter としてのプライドを守ることができるような気がしないでもありません。
ここに示した例が良いかどうかはアレですが、既存の vbs でできないことを PowerShell に肩代わりさせるという意味では非常に有用なツールです。いきなりすべてのソースを PowerShell に書きかえることは難しいでしょうから、少しずつ PowerShell に移行していきたいというプロジェクトでは使えるかなと思います。
最近は PowerShell で作成したサンプルソースも多いですし、指をくわえて PowerShell の高機能性を見ているだけでなく、積極的に得意な vbscript に取り込んでいくことは良いことだと思います。
Data Protection Manager や Operations Manager 、Exchange Server 2007 など、PowerShell をベースとした管理シェルを実装した製品は増えつつありますので、是非ともこれをきっかけにして PowerShell にも挑戦してみてください。
Data Protection Manager 2007 で Exchange Server 2007 を保護する場合、以下の2つのファイルを DPM サーバーの \Microsoft DPM\DPM\bin フォルダにコピーしておく必要があります。
これを行わないと、保護グループの作成時に「Eseutil を実行してデータの整合性をチェックする」を有効にすることができません。
さて、問題となるのはここからです。
きちんと上記ファイルをコピーしているにもかかわらず、どうしても Exchange 2007 の整合性チェックに失敗する...という方はいらっしゃいませんか?はい、それは私です(西岡すみこ風に)。
それに対するソリューションが、Ask the Core Team の blog に掲載されていました。
Data Protection Manager 2007 – Important information for using ESEUTIL when configuring Exchange Server Protection.
http://blogs.technet.com/askcore/archive/2008/06/12/data-protection-manager-2007-important-information-for-using-eseutil-when-configuring-exchange-server-protection.aspx
それによれば、原因は、もしかしたら x86 と x64 の混在環境にあるかもしれないとのこと。
以下の環境を想定してみます。
- Server1:Windows Server 2008 x64 & Exchange Server 2007 x64
- Server2:Windows Server 2003 x86 & DPM 2007 x86
Exchange Server 2007 が64ビット環境で、DPM が 32ビット環境です。
この場合、つい、x64 Exchange の ESE* ファイルを x86 DPM にコピーして使ってしまおうとします。が、これが整合性チェックが失敗する原因となっています。
では、32bit 版の上記ファイルをどうしたら手に入るのか...といえば、管理ツールのみが マイクロソフトのダウンロードサイトで公開されています。
Microsoft Exchange Server 2007 Management Tools (32-Bit) - 日本語
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=6be38633-7248-4532-929b-76e9c677e802
このツールをダウンロードして適当なコンピュータにインストールします。
さらに、Exchange Server 2007 に SP1 が適用されていれば以下のサイトから SP1 をダウンロードして、Management Tool をインストールしたコンピュータに適用します。
Exchange Server 2007 Service Pack 1
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=44c66ad6-f185-4a1d-a9ab-473c1188954c
完了したら、このコンピュータの Exchange\bin フォルダからこっそり ESE.DLL と ESEUTIL.EXE を取り出し、Microsoft DPM\DPM\bin にコピーしてください。
この状態で整合性チェックを行えば、ただしく完了することができます(もちろん他に原因が無ければですが)。
整合性チェックに失敗すると回復ポイントの作成もできませんので、バックアップが全く取れないという事態をまねいしてしまいます。くれぐれもご注意ください。
Tech・Ed のデモ環境テスト中ですが、ひょんなことから ドメインコントローラとなっているサーバーの動作がおかしくなりました。Active Directoryは正しく動いているようだったのですが、あわててもう1台のDCを作成して環境を複製し、おかしな DC を降格せず、FSMOの転送もせずに削除しました。
完全にはまるパターンですが、ちょっと自分に対して余裕のあるふりをしてみたかったのです...。
さて、DCを降格せずに削除したら何をやらなければならないか。典型的な作業は 2つです。
- FSMOの転送
- 存在しないDC関連オブジェクトの清掃
これらを行うには、エンジニアの心の友、ntdsutil.exe を使用します。
経験されている方も多いと思いますが、せっかくですので、Windows Server 2008 上で上の操作を行ってみます。
□FSMOの転送
まずは自分自身に接続するところまで行いましょう。
C:\>ntdsutil ntdsutil: roles fsmo maintenance: connection server connections: connect to server t4304-01 t4304-01 に結合しています... ローカルでログオンしているユーザーの資格情報を使って t4304-01 に接続しました。 server connections: quit fsmo maintenance: |
次に、 FSMO の転送を行います。試しに「普通の転送」をしてみます。以下は PDC エミュレータを転送しています。
| fsmo maintenance: transfer pdc ldap_modify_sW エラー 0x34(52 (利用できません). Ldap 拡張エラーメッセージ 000020AF: SvcErr: DSID-03210575, problem 5002 (UNAVAI ABLE), data 1753 Win32 エラー 0x20af(要求された FSMO の操作に失敗しました。現在の FSMO の所有者に 接続できませんでした。) ) エラー コードにより、接続、LDAP、または役割の転送エラー を示すことがあります。 サーバー "t4304-01" は 5 個の役割を認識しています スキーマ - CN=NTDS Settings,CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp 名前付けマスタ - CN=NTDS Settings,CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp PDC - CN=NTDS Settings,CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp RID - CN=NTDS Settings,CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp インフラストラクチャ - CN=NTDS Settings,CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp |
transfer ではエラーが発生することがわかります。これは、もとのFSMO役割を担当していたDCがすでに存在しないてめ、普通の転送することができないためです。
そこで、以下のように強制転送を行います。強制転送を行うには seize コマンドを使用します。最初に安全な転送を試みた後、失敗すると強制的に転送されます。
| fsmo maintenance: seize PDC 強制前に PDC FSMO の安全転送を試みています。 ldap_modify_sW エラー 0x34(52 (利用できません). Ldap 拡張エラーメッセージ 000020AF: SvcErr: DSID-03210575, problem 5002 (UNAVAILABLE), data 1753 Win32 エラー 0x20af(要求された FSMO の操作に失敗しました。現在の FSMO の所有者に接続できませんでした。) ) エラー コードにより、接続、LDAP、または役割の転送エラーを示すことがあります。 PDC FSMO の転送に失敗しました。強制処理 (seize) 中です... サーバー "t4304-01" は 5 個の役割を認識しています スキーマ - CN=NTDS Settings,CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp 名前付けマスタ - CN=NTDS Settings,CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp PDC - CN=NTDS Settings,CN=T4304-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp RID - CN=NTDS Settings,CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp インフラストラクチャ - CN=NTDS Settings,CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp fsmo maintenance: |
これを、残りの4つのFSMOに対して繰り返せば転送は完了です。それぞれ、以下のコマンドを使用します。
- Seize infrastructure master - 接続されたサーバーのインフラストラクチャ役割を上書きします
- Seize naming master - 接続されたサーバーの名前付けマスタ役割を上書きします
- Seize PDC - 接続されたサーバーの PDC 役割を上書きします
- Seize RID master - 接続されたサーバーの RID 役割を上書きします
- Seize schema master - 接続されたサーバーのスキーマ役割を上書きします
□不要なDCの清掃
不要なDCの清掃を行うには、Metadata Cleanup コマンドを使用します。実は、不要なDCの清掃を行うと、DCが持っていたFSMOを自動的に転送してくれるので、はじめからこちらをやったほうが楽かもしれません。
はじめに生きているドメインコントローラに接続します。
| ntdsutil: metadata cleanup server connections: connect to server t4304-01 t4304-01 に結合しています... ローカルでログオンしているユーザーの資格情報を使ってt4304-01接続しました。 server connections: quit metadata cleanup: |
次に、以下のような流れで削除したいサーバーを選択します。今回削除したいのは、T4304-DC01 というドメインコントローラです。
| select operation target: list domains 1 個のドメインを検出しました 0 - DC=example-t4304,DC=jp select operation target: select domain 0 現在のサイトがありません ドメイン - DC=example-t4304,DC=jp 現在のサーバーがありません 現在の名前付けコンテキストがありません select operation target: list site 1 個のサイトを検出しました 0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp select operation target: select site 0 サイト - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp ドメイン - DC=example-t4304,DC=jp 現在のサーバーがありません 現在の名前付けコンテキストがありません select operation target: list servers in site 2 個のサーバーを検出しました 0 - CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp 1 - CN=T4304-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp select operation target: select server 0 サイト - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp ドメイン - DC=example-t4304,DC=jp サーバー - CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp DSA オブジェクト - CN=NTDS Settings,CN=T4304-DC01,CN=Servers,CN=Default First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp DNS ホスト名 - T4304-DC01.example-t4304.jp コンピュータ オブジェクト - CN=T4304-DC01,OU=Domain Controllers,DC=example-t4304,DC=jp 現在の名前付けコンテキストがありません select operation target: quit metadata cleanup: |
次に、Remove Selected Server コマンドを使用して選択したサーバーを削除します。
以下に示すように、残りのFSMOが強制的に転送され、不必要なオブジェクトが削除されます。
| metadata cleanup: remove selected server 選択されたサーバーから FSMO 役割を転送/強制処理しています。 T4304-01.example-t4304.jp に結合しています... Domain Naming Master FSMO を "CN=NTDS Settings,CN=T4304-01,CN=Servers,CN=Default-First-Site-Name, CN=Sites, CN=Configuration, DC=example-t4304, DC=jp" に移動させています。 強制前に domain naming FSMO の安全転送を試みています。 ldap_modify_sW エラー 0x34(52 (利用できません). Ldap 拡張エラーメッセージ 000020AF: SvcErr: DSID-03210380, problem 5002 (UNAVAIABLE), data 1753 Win32 エラー 0x20af(要求された FSMO の操作に失敗しました。現在の FSMO の所有者に接続できませんでした。) ) エラー コードにより、接続、LDAP、または役割の転送エラーを示すことがあります。 domain naming FSMO の転送に失敗しました。強制処理 (seize) 中です... サーバー "t4304-01" は 5 個の役割を認識しています スキーマ - CN=NTDS Settings,CN=T4304-01,CN=Servers,CN=Default-First-Site-Name, CN=Sites, CN=Configuration, DC=example-t4304, DC=jp 名前付けマスタ - CN=NTDS Settings,CN=T4304-01, CN=Servers, CN=Default-First-Site-Name, CN=Sites, CN=Configuration, DC=example-t4304, DC=jp PDC - CN=NTDS Settings,CN=T4304-01,CN=Servers,CN=Default-First-Site-Name, CN=Sites, CN=Configuration, DC=example-t4304,DC=jp RID - CN=NTDS Settings,CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp インフラストラクチャ - CN=NTDS Settings,CN=T4304-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp Rid Master FSMO を "CN=NTDS Settings,CN=T4304-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp" に移動させています。 強制前に RID FSMO の安全転送を試みています。 ldap_modify_sW エラー 0x34(52 (利用できません). Ldap 拡張エラーメッセージ 000020AF: SvcErr: DSID-03210B34, problem 5002 (UNAVAIABLE), data 1753 Win32 エラー 0x20af(要求された FSMO の操作に失敗しました。現在の FSMO の所有者に接続できませんでした。) ) エラー コードにより、接続、LDAP、または役割の転送エラーを示すことがあります。 RID FSMO の転送に失敗しました。強制処理 (seize) 中です... ドメインの最高値の RID プールを検索しています サーバー "t4304-01" は 5 個の役割を認識しています スキーマ - CN=NTDS Settings,CN=T4304-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp 名前付けマスタ - CN=NTDS Settings,CN=T4304-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp PDC - CN=NTDS Settings,CN=T4304-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp RID - CN=NTDS Settings,CN=T4304-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp インフラストラクチャ - CN=NTDS Settings,CN=T4304-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp 選択されたサーバーのために FRS メタデータを削除しています。 "CN=T4304-DC01,OU=Domain Controllers,DC=example-t4304,DC=jp" 下で FRS メンバを検索しています。 "CN=T4304-DC01,OU=Domain Controllers,DC=example-t4304,DC=jp" 下のサブツリーを削除しています。 CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp 上の FRS 設定の削除に失敗しました。原因は次のとおりです: " 要素が見つかりません。"; メタデータのクリーンアップは続行されます。 "CN=T4304-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,CN=example-t4304,DC=jp" をサーバー "t4304-01"から削除しました metadata cleanup: |
□コマンドラインから DC をグローバルカタログ にする
さて、私はこれですっかり安心しきって作業を継続しようとしたのですが、なにをするにも ドメインコントローラに接続できない というエラーが頻発しました。Active Directory ユーザーとコンピュータや、サイトとサービス までも起動できません。
これは困った...と思い、イベントログを確認してみると、ありました。原因らしきメッセージが。

イベントID 1126 : Active Directory ドメイン サービスは、グローバル カタログとの接続を確立できませんでした。
追加データ
エラー値: 1355 指定されたドメインがないか、またはアクセスできません。
内部 ID:3200d50
ユーザー操作:
グローバル カタログがフォレストで利用可能なこと、このドメイン コントローラから到達可能なことを確認してください。 nltest ユーティリティを使ってこの問題を診断することもできます。
なるほど...そういうことか。ということで、現在のDCを強制的にグローバルカタログにします。使用するコマンドは dsmod です。
| C:\>dsmod server "CN=T4304-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp" -isgc yes dsmod 成功:CN=T4304-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example-t4304,DC=jp C:\> |
これでめでたく問題は解決したように見えたのですが....インストールしてあった SQL Server やその他のアプリケーションも修正しなければならないことに気づき....途中まで行ったのですが焦ってしまって作業ミスが増えてしまい、結局OSを最初からインストールしなおすほうが確実だと判断しました...。
で、いま再インストール中です....(泣)。
もし、SQL Server や Data Protection Manager、Operations Manager などでドメインを変更した場合のオペレーションについて「この手順が確実!」「この手順でやったことがある!」「これが最速!」という経験をお持ちのエンジニアの皆さま、是非とも情報をコンタクトください!
Operations Manager 2007 および System Center Esesntials をご使用の皆さんの想いは1つだと思います。
「はやく Windows Server 2008 の 管理パック が欲しい!」
2008年7月27日付で、英語版の Windows Server 2008 用の管理パックがリリースされ、その後ぞくぞくと Windows Server 2008対応のものが出てきました。
現時点でダウンロード可能なものを以下にリストしておきます。英語版ですが、日本語の OpsMgr にインストールすることができますので、今すぐ使いたい!という方は以下をお使いください。日本語版がリリースされたら入れ替えが可能です。
残念ながら日本語版はまだなのですが、はやくリリースされることを期待しつつ...夏を乗り切りましょう。
「肉体疲労時の栄養補給~」というCMがありましたが、これって「肉体疲労児」だと思ってませんでした?まさに今の私がそんな感じです。
それはともかく、Tech・Edのデモ環境構築中です。
Windows Server 2008 に Active Directory(AD DS)をインストールしたマシン、つまりドメインコントローラに SQL Server 2005 + Reporting Service インストールし、お約束通り以下の url にて動作確認をしたところ、エラーが発生しました。
http://localhost/reports/
レポートサーバーが応答していません。レポートサーバーが実行中で、このコンピュータからアクセスできることを確認してください。
http://localhost/reportserver/
レポートサーバーで構成エラーが発生しました。詳細については、レポートサーバーのログ ファイルを参照してください。
(rsServerConfigurationError)
パス 'c:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\RSReportServer.config' へのアクセスが拒否されました。
上記に示されているとおり、RSReportServer.config へのアクセスがないことが原因です。では、いったいぜんたい、どこのどいつが RSReportServer.config にアクセスしようとしているのかといえば、IIS7のアプリケーションプールに設定されているアカウント「NetworkService」です。
上記ファイルへのアクセス権を確認してみると、以下のようになっていました。赤く囲った部分を見てください。
SIDがそのまま表示されていることがわかります。これまでの経験では、このように表示されているときには、実IDが削除されているにもかかわらず、ファイルに設定されたACE(アクセスコントロールエントリ)のみが残されている場合です。
が、今回はドメインコントローラ上ですから、それはないだろう...と。
ためしにメンバーサーバーに SQL Server 2005 をインストールして確認したところ、以下のようなアクセス権が設定されていました。
SYSTEM
:フルコントロール
SQLServer2005ReportingServicesWebServiceUser$<コンピュータ名>$<インスタンス名>
:読み取り/書き込み/特殊なアクセス許可
SQLServer2005ReportServerUser$<コンピュータ名>\<インスタンス名>
:読み取り/書き込み
Administrators
:フルコントロール
どうやら、SIDで表示されているのは、SQLServer2005ReportingServicesWebServiceUser$<コンピュータ名>$<インスタンス名> のようです。このグループのメンバを確認したところ、本来ここに入っているはずの NT Authority\Network Service がいません。空っぽです。
ものぐさな私は、上記ファイル(RSReportServer.config)に対して Network Service アカウントへのアクセス権を与えて急場をしのぎました。
が!
これは場当たり的であり、きちんとしたアカウント設計を行っている場合には、当然ながら上記方法では対処できません。
そんな場当たり的で適当な対処ではなく、きっちりと対応したい(というか、是非そうしてください)という方は、是非とも以下の KB をご覧ください。タイトルの日本語がおかしいのは、機械翻訳のせいです...。
それがWindows Server 2008にインストールする方法とコンピュータで SQL Server 2005 レポート サービス を構成する方法を実行しています
http://support.microsoft.com/kb/938245/ja
このKBをすごくわかりやすく解説してくれているのが、マイクロソフトBIチームの 米野 氏です。
PPS を Windows Server 2008 上で動かしてみよう #1
PPS を Windows Server 2008 上で動かしてみよう #2
もともと Performance Point Server(PPS)のデモ環境(もちろん Tech・Ed対応)を作る際に検証された手順のようです。Tech・Edでは、よろしければ、米野氏のセッションもご覧になってください。
T3-306 Office PerformancePoint Server 2007 プランニング モデルの作成と展開
完全に現実逃避モードです。 すみません。
田辺のblogに以下の記事が投稿されました。
Live Search 中国版がオリンピックバージョンに
ついでと言ってはなんですが、MSDN blogに以下の投稿があったことをご紹介します。
えーと、多くは語りません。
Windows XP Embedded in the Olympics Opening Ceremony!
こんにちは。安納@現実逃避中 です。
みなさんの GEEK 度を測る、QUIZ GEEK!のお時間がやってまいりました。早くも第2回目です。
記念すべき第1回目は こちら から。
今回は長男台、もとい、超難題 です。
以下のグッズは、製品というよりは、マイクロソフトのとある戦略 を表しています。

どうやら「豚」であることはわかりますね。
横から見てみましょう。
羽が付いていることがわかります。有名なセリフを思い出しますね。「とべない豚は...」
地上の豚が空も飛べる....?
地上=マイクロソフト とすると、空はなんでしょう?
正解は...

うーん、写りが悪くてわかりずらいですね。以下のように書かれています。
Microsoft
SYSTEM CENTER
Cross Platform & Interop
System Center 製品群では、Windows プラットフォームだけでなくLinux 等との相互互換性を強化し、1つのコンソールでシステム全体をマネジメントできるようにしようとしています。
※ってことは、豚=System Center なのか...
その代表的な取り組みであり、以前の投稿でもご紹介したのは、Operations Manager の エクステンションです。
【Management】Microsoft.Unix.Computer blog 開設 ~ OpsMgr v4 / SCE v2 ベータプログラムも開始!
2008年4月に開催された Microsoft Management Summit のキーワードである Integrate IT は、いま着々と確実に進みつつありますのでご期待ください。
参考サイト
Operations Manager 2007 Cross Platform and Interop Solutions
http://technet.microsoft.com/en-us/opsmgr/cc677004.aspx
Microsoft.Unix.Computer
http://blogs.msdn.com/SCXplat/
ということで、フライング・ピッグ を見たら、System Center を思い出してください!
1週間前よりシアトルに来ております。
Tech・Edの準備や、書籍の監修等の仕事を持ちこみつつ、なかなか治らない時差ぼけとも闘っております。
現在宿泊しているホテルですが、なかなかよいホテルで、運の良いことに喫煙可能なフロアに部屋を確保することができました。

すっかりちらかってますが(恥)部屋は広くてきれいです。ベッドもクイーンサイズで広いです。
カメラの趣味が無いので携帯からで失礼します。
ただ、1点だけ、どうしても納得がいかないところがあります。
それは、以下です。
間違ってますよね??
え?わかりませんか!?
これです↓
明らかに配置がおかしいですって...。手足の長いアメリカ人には違和感が無いのでしょうか...
※とある方から「向きが逆なのでは?」という指摘をいただきましたので状態を予測し追記します
えぇぇぇぇ、そんなばかな....これじゃノートパソコンを膝の上に置けないので、UXとして正しくありません。
お食事中の皆さん、すみませんでした。
そんなわけで、日曜日に帰国予定です。