ご父兄のみなさま
(定額給付金だとちょッとつらい)「Tech・Ed Japan 2009」のご案内
梅雨空が恨めしいこのごろ、父兄のみなさまにおかれましては益々ご健勝のこととお慶び申し上げます。
さて、7月といえば8月でございますが、8月といえばTech・Ed(テック・エド)と世間の相場は決まっているとかいないとか。10年前に他界した祖母の遺言に書かれたTechEdの文字は、とても力強く、そしてやさしさに満ちたものでした。
昨年のTech・Ed は多くのお子様にご参加いただき、大変盛況のうちに終了いたしました。一回りたくましく成長したお子様の姿をご覧になられたご父兄のみなさまからは、多くの感謝のことばをいただいております。
ーよせられた感謝の言葉(一部)-
| 「個人用印鑑 実印/銀行印/認印の印鑑3本セット(桐箱入り) 天然特選象牙製 を買うかどうか悩んでいたのですがTech・Edにしてよかったです!」 「新松戸駅から徒歩5分、1K 高い天井ロフト付 に引っ越すかどうか悩んでいたのですが、TechEdに参加してよかったです!」 「めずらしいデザインのブーツ カーフ仔牛革 の ピンクかブルーのどちらを買うか悩んでいたのですが、テックエドに参加してよかったです!」 「あの人と結婚するべきかどうか悩んでいたのですが、Tech・Edに参加してよかったです!」 「初孫の名前をどうしようか悩んでいたのですが、テックエドに参加してよかったです!」 |
また、是非来年も開催してほしいとのご要望を、実に多くみなさまよりいただきました。
そこで、来る8月26日(水)から28日(金)の3日間、みなとみらい パシフィコ横浜にて恒例 Tech・Ed を開催する運びとなりました。
今年のTech・Edでは、より多くのお子様に楽しんでいただくため、とてもお得な特典をご用意しております。
- 7月17日までにお申し込みいただければ早期割引で \83,530-(税込)
- 参加者全員にTechNet Direct サブスクリプション 進呈 (\39,000 - 相当)
- 参加者全員に 製特高級バッグ をプレゼント(\??相当)
もちろん、昨年ご参加いただいたお子様も楽しめるよう、工夫されたプログラムにてお待ち申し上げております。
お子様の Tech・Ed へのご参加を希望されるご父兄のみなさまは、いますぐ、インターネットよりお申し込みください。

※ご注意:上記文章にはフィクションが含まれているとかいないとか
Terminal Service Team Blog に以下の記事が投稿されました。
Using Multiple Monitors in Remote Desktop Session
http://blogs.msdn.com/rds/archive/2009/07/01/using-multiple-monitors-in-remote-desktop-session.aspx
タイトルのとおり、RDP 7.0 からサポートされたマルチモニタ機能に関する記事です。この記事では5つのモニタを接続して、RDP Client上でPowerPointを起動してモニタの切り替えをテストしています。
どれどれ..ってことで、私も確認してみました。
まず、自分のノートPC(Windows 7 RC)に外部モニタを接続し、以下のようにモニターの設定をします。今回は上下に並べました。
#ところでモニター並べ方って、かなり柔軟にできるんですね。上下左右をずらしたり…知りませんでした。
次に、mstsc.exe を起動し、[画面]タブから[リモートセッションですべてのモニターを識別する]をチェックした状態でリモートのコンピューター(Windows Server 2008 R2)に接続します。すると、以下の真ん中の写真のように、モニター1とモニター2がRDPクライアント上で識別されていることがわかります。
ためしに画面のプロパティを見てみると、Windows 7で設定したものと同じ設定が表示されています(変更することはできません)。


また、「評価ビルド」であることを示す表示が2箇所に表示されていることからも、2つの画面として認識されていることがわかります。

ちなみに、[リモートセッションですべてのモニターを識別する]のチェックをはずした状態ですと、以下のようになります。
画面として1つしか認識されていないことがわかります。

これで、VDIも安心ですね!?
こんにちは。雨が続きますね。腰が痛いのはそのせいでしょうか…。
先日、以下の投稿をいたしました。
【Community】7/11 広島でPowerShell のリモーティング機能を解説します
その後、集客の状況、参加者のジョブロールなどを考慮し、少々方針転換をさせていただくことにしました。
既に以下のお申し込みサイトには反映されていますが、開発者向けのグループポリシーのお話をさせていただきます。
Windows 7 コミュニティ勉強会 with Tech Fielders 中国編
ー開発者のための最新グループポリシー活用講座
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032416507&Culture=ja-JP
開発者向けですから、インフラ担当の方向けのお話とは違います。
以下のアジェンダを予定しております。
上記のアジェンダの中ではPowerShellもふんだんに使いますし、前回予告しておりましたリモーティングのお話もいたします。
もちろん、純粋に Windows PowerShell に興味のある方も十分楽しんでいただけると思います。
まだお席に余裕があるようですので、是非ともご参加ください!
Windows Server 2008 R2 で実装される予定の Set-GPRegistryValue コマンドレットについて、過去に以下の投稿をしました。
で、ちょっと気になって点があり確認しました。
Set-GPRegistryValue コマンドレットで設定した値は、グループポリシー管理コンソールのレポートに出力されるのか?
確認したところ、以下のように「レジストリの追加設定」という項目で出力されていることがわかります。
気になるのは、「いくつかの設定の表示名がみつかりません」と表示されていることですね。設定値に表示名を指定することができると、言うことがないのですが。
話は違うのですが、Imagine Cup ってご存知ですか?ワールドワイドで実施されている、マイクロソフト主催の学生向けの技術コンテストです。
Japan Team のBLOG
毎年、決勝戦が世界各地で開かれるのですが、今年はなんとエジプト!アカデミックチームは、明後日、カイロに向けて出発するようです。うらやますぃ…。
以下の写真は決勝戦が行われる会場(設営中)なのですが、ご覧のとおり、砂漠の中で行われます。真ん中に一番に大きく見えるのがカフラー王のピラミッドで、左右がメンカウラー王とクフ王のピラミッドです。スフィンクスはギリギリこの写真では判別できませんが、右端になります。ツアーで訪れると、通常、右にあるクフ王(実際には一番背が高い)のピラミッドの「向こう側」から入場してきますが、そこからだとこの写真のように3つのピラミッドを絶好のコンディションで見ることができません。このような絶好のビュースポットには、ラクダを雇ってたどり着くことになりますが、価格交渉が疲れるんですよねぇ(笑)。ここだけの話ですが、安くラクダツアーに参加するには、カイロにある日本人宿で申し込むのが良いです。この写真の右側には(切れていて見えないですが)らくだツアーの集落があります。
ちなみに、最近のエジプトのビザはシールだって知ってました?2007 2004 年に行ったときには普通の印紙だったんですけどね。昨年訪れたとき、私は知らずに、裏面を舐めまくってしまいました…(恥)。アカデミックチームのメンバーも同じ間違いをして恥をかくように、心から遠くから祈っています。
さて、何の話でしたっけ?あ、書籍でした。
MVPの村嶋さんが執筆された書籍、「Windows Server 2008 実践ガイド」がリリースされました。700ページで3800円!これは安いです。
なぜ、あえてここでご紹介しているかといいますと、かゆいところに手が届いているんですねぇ。すごく。
実践ガイドというだけあって、Windows Server を一から構築していく手順が書かれているのですが、手順にとどまらず、なぜそういう設定をするのか、いま何をやっているのかという点がきちんと解説されています。村嶋さんらしく、ネットワーク系の実装については、力が入っていますね。
マイクロソフトの情報は、とかく「新機能」に偏ったものになりがちなのですが、この書籍では本来のWinodws Serverをきちんと解説してくれています。
是非ともこの本を手にとって見てください。
あと、アカデミックチームの皆さんは気をつけていってらっしゃい!日本チームの優勝を祈っています!
久しぶりにKMS(Key Management Service)に関する投稿です。
以下のコマンドを使用して、Windows Server にボリュームライセンスをインストールすると、サーバーは自動的にKMSとなります。
slmgr –ipk <ボリュームライセンスキー>
KMSが正しく動作するには、KMSサーバーは DNSに _VLMCS._tcp を登録できなければなりません。
私の手元の環境でKMSのテストをしていたところ、KMSサーバーのアプリケーションログに Event ID 12293(hr=0x800705B4) が出て、どうしてもDNSにサービスレコードを登録することができませんでした。
どうやらこれは、DNSへのレコード登録の際にタイムアウトが発生した..というものらしいのですが、再起動してもライセンスを再入力しても解決できませんでした。
そこで、ためしに Software Licensing サービスを再起動してみたところ…
あっさりと登録ができてしまいました。
こんな現象、どこかで見たことがありますね…そう、ADインストール直後です。DNSにAD関連のレコードが登録されないときも、NetLogonサービスを手動で再起動するという手がありました。
根本的な解決策ではないのですが、試してみてください。
とうとう7月になってしまいました。(失礼しました、なぜか勘違いしていました)みなさまいかがお過ごしでしょうか。わたしは、提出物に追われて胃が痛くなっています。
さて、TechNet Magazine で、「PowerShell によるユーザープロビジニングの自動化」に関する連載が、ひっそりと行われていたことをご存知でしょうか?
プロビジョニングという大げさな言葉が使われてはいますが、実はさほど複雑なものではありません。
CSVファイルからデータを読み込み、PowerShellで加工してActive Directoryに登録するという一連の流れをPowerShellで実現しています(状態の変更や削除といった作業については触れられていません)。
第1回 CSVファイルの読み込み
http://technet.microsoft.com/ja-jp/magazine/2009.03.windowspowershell.aspx
第2回 Active Directoryへのユーザー作成とExchange 2007 メールボックス作成
http://technet.microsoft.com/ja-jp/magazine/2009.04.windowspowershell.aspx
第3回 ファイルサーバーへのホームディレクトリの作成とアクセス権の設定
http://technet.microsoft.com/ja-jp/magazine/2009.05.powershell.aspx
第4回 ユーザーをセキュリティグループに参加させる
http://technet.microsoft.com/ja-jp/magazine/2009.06.windowspowershell.aspx
この全4回の連載を読破すれば、
- プロビジョニングの基本的な考え方
- PowerShellを使用したテキストファイルの操作方法
- PowerShellを使用した基本的なActive Directoryの操作
- PowerShellからDOSコマンドを呼び出す方法
が習得できるはずです。
お勧めです!
どうにもお肌にツヤが無い、きょうこの頃です。
さて、イベントの告知をさせてください。
7月11日、広島のマイクロソフト中国支店にて、ヒーロー島との共催によりWindows 7 コミュニティ勉強会が開催されます。
Windows 7 コミュニティ勉強会 with Tech Fielders 中国編
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032416507&Culture=ja-JP
この中で、私は Windows 7 PowerShell Remoting 30連発 というセッションを担当します。
Windows7/Windows Server 2008 R2 の新しい機能として、Windows PowerShell 2.0 があります。
標準でエディタがついていたり、Active Directoryをはじめとする運用管理系のコマンドレットが増えたりと、ワクワク感いっぱいなのですが、運用管理者にとってうれしいのが リモーティング と呼ばれるリモートコンピュータの運用管理機能です。
Windows NT 4.0 のころ、リモートコンピュータの情報を取得するのは至難の業でした。コマンドが必ずしも /Computer オプションをサポートしていた時代ではなかったわけです。
当時、リモートでコマンドを実行させるのに流行った方法は、ATコマンド。ATでは \\ComputerName でリモートコンピュータを指定することができました。なので、例えば「10秒後」の時間を指定して投げることで、すこし時間差はあるもののリモートコンピュータでの実行結果を得ることができました。ATの亜種であるSOONコマンドでは、時間を指定するのではなく、「10秒後」という指定ができたので、大変使い勝手がよかったです。
そのほか、NT 4.0 のリソースキットの Remote.exe や rconsole/rclient なども使ったりしました。
その後、WSH 5.6 では Remote Script 機能がサポートされ、さらにリモートコンピュータに対する管理の幅は広がりました。
そして、今回のPowerShell 2.0 です。
30のコマンドレットが /ComputerName 対応になっただけでなく、Invoke-Command が使えるようになり、そしてリモートコンピュータの PowerShell セッションをローカルコンソールに表示することができるようになりました(sshみたいな感じです)。
本勉強会の私のセッションでは、このようなPowerShell 2.0 のリモーティングについて詳しく解説したいと思います。
懇親会も予定されているようなので、是非ともお申し込みください!
タイトルを見て、これから何が書かれるのか想像がついた方は、酸いも甘いも経験したActive Directory使いであると言えるでしょう。
実はHyper-Vがリリースされてから、「正式な対応があるのだろうか?」と疑問に思い続けてきたことがあります。それは…
Hyper-Vでスナップショットを取った後で、コンピュータアカウントのパスワードがリセットされてしまったらどうなるのだろう?
きっと、同じ疑問を持っている方は多いはずです。
ドメインに参加しているコンピュータは、ユーザーと同様に「コンピューターアカウント」と呼ばれるアカウントを持っています。ユーザーアカウントの場合、定期的に利用者自らがパスワードを変更しますが、コンピューターアカウントの場合にも同様に、規定で30日に1回、パスワードをリセットします。
このパスワードは、ADとコンピュータ自身の両方に保存されており、両者が食い違った場合には「不正なコンピュータ」であるとしてドメインにアクセスすることができなくなります。もちろん、ユーザーがそのコンピュータを使用してログオンすることもできません。
こうした問題が発生するのは、たとえば、クライアントにバックアップからディスクイメージを戻した場合です。そのバックアップイメージが前回の自動パスワードリセット前に取られたものであれば、再度ドメインに参加しなおさないとユーザーはログオンすることができません。
※ドメインへの再参加ではなく、パスワードのリセットでいけたかどうか…ちょっと記憶にないです…どなたか経験者いらっしゃいますか?
→ 2009.6.24 (参考) ドメインにログオンできない ~ セキュア チャネルの破損 ~ (Ask the Network & AD Support Team)
これと同じ問題が、Hyper-Vのスナップショットでも発生するはずだよなぁ…と考えていました。
実は、コレに対する現時点の回答が Windows Server Core Team のBLOGに投稿されました。
Running Hyper-V in a lab? Use Snapshots? Check this out!
http://blogs.technet.com/askcore/archive/2009/06/03/running-hyper-v-in-a-lab-use-snapshots-check-this-out.aspx
対処法は、ずばり…
コンピューターアカウントのパスワードリセットを無効にしてください
とのこと…。あぁ、やはりそうきましたか..。
具体的にはコンピュータ側のレジストリを修正します。
DisablePasswordChange
http://technet.microsoft.com/ja-jp/library/cc962289(en-us).aspx
これによって、コンピューターはドメインコントローラとのパスワードリセットを行わなくなります。
ちなみに、パスワードの有効期間を(限りなく)長くする…という方法もあります。
MaximumPasswordAge
http://technet.microsoft.com/ja-jp/library/cc937922(en-us).aspx
なお、この設定はグループポリシーからも行えます。
[コンピュータの構成]-[ポリシー]-[Windowsの設定]-[セキュリティの設定]-[ローカル ポリシー]-[セキュリティオプション] の中の[ドメインメンバ:コンピュータアカウント パスワード: 定期的な変更を無効にする]
コンピューターパスワードのリセットを無効にすることにより、もちろん、セキュリティレベルは落とすことになります。
スナップショットは大変便利な機能ではあるのですが、本番運用系の場合には、こうした留意点もあることを覚えて置いてください。
Interoperability Bridges & Labs Center というサイトをご存知でしょうか?
なんとなく、バラバラといろんな相互運用性プロジェクトが存在しているような感じですが、このサイトでマイクロソフトの相互運用性に関するプロジェクトの全てを見ることができます。
このサイトはMicrosoft Interoperability Strategy Group が中心となって運営されており、活動の様子は以下のBLOGでも継続的に報告されています。
Microsoft Interoperability Strategy Group のBLOG
Interoperability @ Microsoft
一見、開発系に占領されているように見えますが、いえいえ、ITPRO向けの相互運用性プロジェクトに関する情報も多く掲載されています。
※2009/06/17 リンクを修正しました。失礼いたしました。
このサイトを基点として、各プロジェクトのサイトに移動できるので重宝するでしょう。
とかくオープンソース系からの攻撃にさらされているマイクロソフトですが、現在のマイクロソフトは以前とはガラリと変わっていますので、是非ともご認識いただけると幸いです。
で、なんでこんなことを突然書いたかと言いますと、6月4日にアメリカで開催された 2009 JavaOne Conference においてマイクロソフトがKeynoteに登壇したからなのです。
※MS登壇時のビデオは JavaOneサイトで公開されています
理由はもちろん、Sunとの相互運用性プロジェクトに関する重要な発表なのですが、その名も Stonehenge プロジェクト と言います。
Stonehenge プロジェクトの狙いは、W3CやOASISで定義されている既存のプロトコルを使用して(つまりSOAベースということですね)、Java, .NET, PHPなどによる相互運用性のあるアプリケーション開発に関するベストプラクティスを示すことです。サンプルコードや開発のためのガイダンスなどがマイクロソフト、サン、その他のベンダーによって整備される予定です。
興味のある方(すみません、英語なのですが)、是非とも以下をご覧ください。

前回の投稿はこちら
【Hyper-V】統合サービスの「データ交換」ってなに?
では実際に、データ交換 機能を介して、ゲストOSの情報を取得してみましょう。
まずは以下の図をご覧ください。これは、ゲストOS上のレジストリエントリです。
ご覧いただくとお分かりのように、HKLM\Software\Microsoft\Virtual Machine\Auto 配下のエントリが表示されています。IPアドレスやOSのビルド番号、コンピュータ名などの基本的なOSの情報が格納されていることがわかります。
実は、ここに表示されているエントリは、ゲストOSにインストールされている「Hyper-V Data Exchange Service」によって生成されています。
統合サービスがインストールされたゲストOSのサービス。ちなみに、赤で囲んだサービスが、それぞれの統合サービス機能に対応している。
Hyper-V Data Exchange Service が起動するときに、OSの基本情報を収集し、このレジストリキー配下に書き込んでくれます。言い換えれば、このレジストリエントリをでたらめに書き換えても、Hyper-V Data Exchange Service を再起動すれば正しい値に戻すことが出来ます。
ホストOSを経由し、ゲストOSの「データ交換」を介して収集できる情報の1つが、ここに羅列されているレジストリエントリです。
以下の図はここまでの話をまとめたものです。
実際にAutoキー配下の値を取得するには、以下のようなコマンドを使用します(今回は PowerShellを使用しますが、WMI なので VBS を使用することもできます)。
まずはゲストOSの名前を使用して、以下のコマンドを実行します。これにより、Hyper-V上のゲストOSのインスタンスを取得できます($VM)。ここで使用しているのが、Msvm_ComputerSystem クラスであす。このクラスは通常使用する root\CIMV2 ネームスペースではなく、root\virtualication ネームスペースに定義されていることに注意してください。
| PS C:\>$VM = Get-WmiObject -Namespace root\virtualization -Query "Select * From Msvm_ComputerSystem Where ElementName='ゲストOSの名前' " -ComputerName ホストコンピュータ名 -Credential administrator |
ちなみに、上のコマンドでは、別ドメインのサーバーを操作しているため –Credential でHyper-Vサーバーに接続する際のユーザー名を指定しています。これによって、以下のようなダイアログボックスが表示され、パスワードを入力することができます。
次に、以下のコマンドを入力します。
| PS C:\> $Kvp = Get-WmiObject -Namespace root\virtualization -Query "Associators of {$Vm} Where AssocClass=Msvm_SystemDevice ResultClass=Msvm_KvpExchangeComponent" -ComputerName ホストコンピュータ名 -Credential administrator |
{$VM} は前回のコマンドで取得したゲストOSのインスタンスです。注意していただきたいのは、「Associators of」というクエリーを使用しているところです。Associators of により、{$VM} に関連付けられている全てのインスタンスを収集することができます。その中には、ゲストOSの設定や、スナップショット情報、仮想ネットワーク情報などありとあらゆる情報が含まれています。
それらは有用な場合もあるのですが、今回行いたいのはゲストOSとの「データ交換」です。よって、Where句でデータ交換に関するインスタンスのみを取得するように指示します。それが、AssocClass=Msvm_SystemDevice とResultClass=Msvm_KvpExchangeComponent です。
これで必要な情報は取得できたはずです。以下のようにして、「GuestIntrinsicExchangeItems」を参照してみてください。
| PS C:\> $kvp.GuestIntrinsicExchangeItems |
以下のように、KVPデータがずらずらっと表示されたはずです。
これだと判読しづらいので、以下のスクリプトをPowerShell プロンプトにコピペしちゃってください。難しいことは考えなくてよいです(説明が面倒なんだろうって?いえいえ、そうではなく…笑)。
| filter Import-CimXml { $CimXml = [Xml]$_ $CimObj = New-Object -TypeName System.Object foreach ($CimProperty in $CimXml.SelectNodes("/INSTANCE/PROPERTY")) { $CimObj | Add-Member -MemberType NoteProperty -Name $CimProperty.NAME -Value $CimProperty.VALUE } $CimObj }
|
これによって、Import-CimXml という名前のフィルタが作成されました。
今度は、フィルタも指定して、以下のように入力してみてください。
| PS C:\> $kvp.GuestIntrinsicExchangeItems | Import-CimXml |
以下のように表示されればOKです。
ゲストOSのレジストリの値と、PowerShellプロンプト上の表示を見比べてみてください。同じ値が表示されているはずです。
ためしに、ゲストOS上のレジストリエントリを修正し、再度 $KVPの取得を行っていただければ、修正後のレジストリの値を参照することができるでしょう。
修正したレジストリの値を元に戻すには、手で修正してもよいですが、Hyper-V Data Exchange Service を再起動したほうが間違いがありません。
今回は、データ交換によってゲストOSから情報を取得しました。
次回は、データ交換機能によって、ゲストOSのレジストリ上にデータを書き込む方法について解説します。
参考サイト
MSDN - Virtual PC Guy’s Weblog : Hyper-V Scripting
http://blogs.msdn.com/virtual_pc_guy/search.aspx?q=Scripting+Hyper-V&p=1
Hyper-VのゲストOSに「統合サービス」をインストールすると、ゲストOSで以下の機能が使用できるようになります。
- オペレーティングシステムのシャットダウン
- 時刻の同期
- データ交換
- ハードビート
- バックアップ(ボリュームスナップショット)
これらの機能は、以下の画面から一部を無効にすることも可能です。
この中で、「データ交換」とはどんな機能なのか?というご質問をいただきました。実は、恥ずかしながら私もきちんと把握していなかったので調べてみました。
当初、ホストとゲストの間でファイルを交換できるのかな?と思いこんでおりましたが、どうやら違うようですね…。
要は、
ホストとゲストの間で情報を交換(実際にはレジストリの値)するしくみ
です…といっても、なんだかよくわからないですよね。すみません。
ここで、以下の図をご覧ください。
※上のPPTのクリップアートが気になる方は、ここをクリック!
管理者が操作するPCと、ゲストOSがネットワーク的に通信が可能であれば、WMIのWin32_OperatingSystem等を通じてゲストOSの情報を収集することが可能です。
しかし、ゲストOSが使用しているネットワークが「プライベート」であったり、IPアドレスの体系が全く異なる場合には、いくら管理者といえどもゲストOSに接続することができません。セキュアな環境を構築したいと考える場合には、ゲストOSが使用するネットワークカードは、物理ネットワークカードから切り離すことになるでしょう。それでも、ゲストOSが大量に存在する場合には、スクリプト等でちょちょいと「ゲストOSリスト」なんてものを作成したいはずです。
そんなときは、ホストOSを介してゲストOSの情報を収集することが可能です。これを実現してくれるのが、ゲストOSにインストールされた「データ交換」機能なのです。
ちなみに、「データ交換」機能は、直訳すれば「Data Exchange」ですが、WEB等で記事を探そうとすると、これではヒットしずらいようです。多くの記事では 「KVP Exchange」という言葉が使われています。KVPとは Key Value Pair のことで、ご想像とおりXML形式のデータを指しています。つまり、ゲストOSの情報を KVPで交換できるということを意味しています。
実際にデータ交換を行うには、おなじみ WMI(Windows Management Instrumentation)に用意された仮想マシン用のクラス(msvm_*)を使用します。つまり、スクリプトの出番であると..。
具体的な使い方は次の投稿で..。
FSRMはご存知でしょうか? ファイル サーバー リソース マネージャ です。Windows Server 2003 R2 から実装された機能で、ディレクトリレベルのクオーター管理機能やファイルスクリーン機能などが実装されています。無償で使えるすごく便利な機能なのですが、案外知られていないんですねぇ。
よろしければ、以前ThinkITで書いた記事もご覧ください。
参考までに、Windows Server 2008 R2 では「分類管理(File Classification Infrastructure)」という機能が実装されます。これは、ファイルが持つ各種属性(サイズ、作成日時、所有者など)によってファイルを分類するという機能です。ファイルごとにフォルダを分けるのは当然ながら、独自のスクリプトを走らせることでドキュメントのプロビジョニングを柔軟に行うことができます。たとえば、最終アクセスが1年前のファイルをバックアップ用フォルダに移動するとか、サイズの大きなファイルの所有者にメールを出すとか。
残念ながら日本語RC版では実装されていないようなのですが、特定の文字列を含んだOfficeファイルやTIFFファイルに対してアクションを起こすなんてことも可能になるようです。たとえば、xxx-xxxx-xxxx というパターンに合致する文字列が含まれている場合には、個人情報(この場合は電話番号を想定)が含まれているとして自動的に暗号化するとか…いやぁ、夢が膨らみますね。
さて、本題です。
FSRM の「記憶域レポート」という機能を使用すると、ハードディスク内のファイルを調査して、さまざまなレポートを出力することができます。
- 100MB以上のファイル一覧
- 所有者が junichia のファイル一覧
などなど。
これまでスクリプト等で対応してきた方には非常に有用な機能でして、是非ともお使いいただきたいのですが、ちょっとだけハマりがちな点があります。それは、レポートに表示されるファイルの数です。
Windows Server 2008/2008R2(RC)共に、規定では 1000 が設定されており、たとえ100MB以上のファイルが10000個あっても、レポートには1000個しか表示されません。これはちょっと困りますよね。
この上限値はスクリプトで変更することが可能です。スクリプトのサンプルが MS の Storage Team の BLOG に掲載されています。
A script to increase FSRM report limit
http://blogs.technet.com/filecab/pages/a-script-to-increase-fsrm-report-limit.aspx
が、ちょっと使い勝手が悪いところと、2008 R2 の 分類管理機能に関する上限値が実装されていなかったので、修正したものをこちらに 掲載しました。拡張子を vbs として保存してください。
書式は以下の通りです。/value を指定しなければ、現在の設定値を表示します。
| 保存したファイル名 /limit <name> [/value <value>] <name> - 変更したい上限値の識別名 MaxFiles MaxFileGroups MaxFileOwners MaxFilesPerFileGroup MaxFilesPerFileOwner MaxFilesPerDuplGroup MaxDuplicateGroups MaxQuotas MaxFileScreenEvents MaxPropertyValues – 2008 R2 で有効 MaxFilesPerPropertyValue – 2008 R2 で有効 <value> - 変更後の上限値 |
識別名ごとに設定された上限値によって、レポートに表示する最大数が決まります。識別名はそれぞれ以下を意味しています。
- MaxFiles
レポートに表示するファイル数の最大値。全てのレポートに対して有効。
規定値は 1000。 - MaxFileGroups
レポートに表示するファイルグループ数の最大値。「ファイルグループごとのファイル」レポートで有効。
規定値は10。 - MaxFileOwners
レポートに表示する所有者数の最大値。「所有者ごとのファイル」レポートで有効。
規定値は10。 - MaxFilesPerFileGroup
レポートに表示する、ファイルグループごとのファイル数の最大値。「ファイルグループごとのファイル」レポートで有効。
規定値は100。 - MaxFilesPerFileOwner
レポートに表示する、ファイル所有者ごとのファイル数の最大値。「所有者ごとのファイル」レポートで有効。
規定値は100。 - MaxFilesPerDuplGroup
レポートに表示する、重複ファイル群ごとのファイル数の最大値。「重複しているファイル」レポートで有効。
規定値は10。 - MaxDuplicateGroups
レポートに表示する、重複ファイル群の最大数。「重複しているファイル」レポートで有効。
規定値は100。 - MaxQuotas
レポートに表示するクオータ設定の最大数。「クオータの使用率」レポートで有効。
規定値は1000。 - MaxFileScreenEvents
レポートに表示するファイルスクリーンイベントの最大数。「ファイルスクリーン処理の監査」レポートで有効。
規定値は1000。 - MaxPropertyValues – 2008 R2 で有効
レポートに表示するプロパティの最大数。「プロパティごとのファイル」レポートで有効。
規定値は10。 - MaxFilesPerPropertyValue – 2008 R2 で有効
レポートに表示する、プロパティごとのファイルの最大数。「プロパティごとのファイル」レポートで有効。
規定値は 100。
最大値を超えると、レポートには以下のようなワーニングが表示されるので、上記のスクリプトで必要に応じて最大値を修正する必要があります。

本日は TechNet Flash の配信日です。皆さまとろころには無事届いたでしょうか?
実は私のせいでリンクのミスが発生してしまいましたため、とりいそぎ、ここで修正を告知させていただきます。
ご迷惑をおかけしてもうしわけございませんです。
今後とも、TechNet Flash をどうぞよろしくお願い申し上げます。
-------------------------------
|  新しい技術を導入するときに困ること...それはこれまでの経験則が活かしづらいという点です。特に仮想化技術。概念としては理解していても、いざ設計しようとしたらどこから手をつけてよいかわからない。そんな悩みに答えるのが IPD (Infrastructure Planning and Design Guide) です。 あなたのインフラに最適な仮想化技術は何か? 必要なサーバー台数は? サイジングの計算式は? パフォーマンスを引き出すためのハードウェア構成は? IPD ではそんな疑問に答えるべく、インフラの設計工程で判断すべき事項や考え方を段階的にそして詳細に解説しています。仮想化技術以外にも、Active Directory や Windows 展開サービス用の IPD も公開されています。IT Pro の方は必見です! | |
| マイクロソフト株式会社 IT Pro エバンジェリスト 安納 順一 |
■PR<無償提供中!>■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
PowerPoint 用 素材集 に アイツ が登場 いますぐダウンロード■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
(注)これは Tech Fielders からのお知らせです。あやしくありません。
さて、前回、前々回と、Windows Server 2008 R2 のあたらしいグループポリシー機能についてご紹介しました。
既にご紹介したとおり、2008 R2 では、Set-GPRegistryValue コマンドレットを使用することで、ADMXファイルを作らなくても業務アプリの設定をグループポリシーに組みこむことができるようになりました。
この Set-GPRegistryValue で複数のエントリを一度に設定するには、以下のように書きます。
| PS C:\> Set-GPRegistryValue -Name "TestPolicy" -Key "HKCU\Software\MyApp" -ValueName "InstallPath","InstallDate","AdminUsers","Operators" -Type String -Value "C:\Program Files\MyApp","2009/06/1","yamada","user01" |
ちなみに、上の書式は、以下のエントリを書き込んでいます。
キーのパス 値のタイプ 値の名前と値 | :HKCU\Software\MyApp :文字列 :InstallPath = C:\Program Files\MyApp :InstallDate = 2009/6/1 :AdminUsers = yamada :Operators = user01 |
ただし、複数のエントリを一度に書き込むことができるのは、値のタイプが 文字列(String)か展開可能な文字列(ExpandString)の場合のみであることに注意してください。
また、あまり汎用性は無いように思えますが、以下のような書き方も可能です。上記との違いは –ValueName のかわりに、-ValuePrefix を使用しているところです。
| PS C:\> Set-GPRegistryValue -Name "TestPolicy" -Key "HKCU\Software\MyApp" -Value Prefix "Operators" -Type String -Value "user01","user02","user10","tanaka" |
結果は、以下をご覧いただいたほうがわかりやすいでしょう。
ご覧のとおり、指定した文字列を Prefixとして使用し、連番を付加して複数の値を設定することができます。