Welcome to TechNet Blogs Sign in | Join | Help

フィールドSEあがりの安納です

Microsoft - IT Pro Evangelist - Junichi Anno
Search

News

  • 免責事項:コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。

    Locations of visitors to this page Clicky Web Analytics
【Tech・Ed 2008】エンジニアを元気にするためのスペシャルなサービスをご提供

いよいよ Tech・Ed 2008 Yokohama が迫ってまいりました。いまなら早期割引対象ですので、お早めにご登録ください。

 

さて、今年のTech・Ed では、何かでかい花火をぶちあげたいと思いつつ、寝たり起きたりしています。

するとどうでしょう、昨晩知らないおじさんが夢枕に立ち、こう言うではありませんか。

「肩たたかれるとうれしいよね」

間違いありません。これです。

なので、Tech・Ed 2008 Yokohama では、私が個人的に肩をたたきます

当日、以下を印刷してご持参いただき、安納を発見したらご提示ください。1分間程度、肩をたたかせていただきます。

ただ、セッションとかも担当していますので、忙しい時はご勘弁を....目標100人です。

お名前をメールアドレスをご記入の上、ご持参ください。 

あ、私の顔がわからないですよね。失礼しました。こちら からご覧ください。

Tech・Ed での肩たたきに備えて今日から筋トレをはじめます。

【Deployment】プレインストール PC の再イメージングによる社内展開について

夏休みが近づき、お盆時期の大量展開プランをご検討中のIT Pro の方々も多いと思います。 

大量にPCを購入して社内に展開する場合、OSを再イメージングすることがあります。

再イメージングの際には、ボリュームライセンス用メディアを使用していただくのがマイクロソフトのライセンス方針なわけですが、OEM PC のプレインストールOSのライセンスがハードウェアに紐づいていることへの暫定措置として、以下の発表がなされました。

 OS プレインストール PC (OEM PC) の再イメージング (コピーによる社内展開) について
http://support.microsoft.com/kb/945472/ja

Windows Vista Business搭載のOEM PCは、2008年7月1日より2009年6月30日までは、OEMで供給されるVista Businessのイメージをマスターイメージとして展開作業をしていただけます。

あくまで期間限定の暫定措置ですので、ボリュームライセンスのご購入をご検討ください。

それでは、よい展開生活をお送りください。

 

【Management】Windows Vista / XP 用 Starter Group Policy Objects (GPOs)

今日も天気が良いです。こんな日は新宿オフィスでセミナーでもしたいですね。 

スターターGPO(Group Policy Object) ってご存知でしょうか。Windows Server 2008 から実装された機能で、いわばポリシーの「テンプレート」的なものです。ただ、「管理テンプレート」という言葉は既に存在するので、ちょっとまぎらわしですね。英語の説明では以下のように書かれています。

Starter Group Policy objects (GPOs), introduced in Group Policy for Windows Server 2008, are collections of configured Administrative template (.admx) policy settings that you can use to create a live GPO. Each of the two packages in this download contains four starter GPOs.

「目的に応じて値が埋め込まれた管理テンプレートであり、これをベースにしてGPOを発行できる」ってものです。 

スターターGPOを使用すると、事前に必要な定義を埋め込んでおくことができます。たとえば、ドメインが複数存在する環境に置いて、共通のセキュリティ設定を徹底したい場合には、従来は「GPO設定値一覧」を作成して、それぞれのドメイン管理者に通知する必要がありました。しかし、本当にその設定をしてくれるかどうかは保証の限りではありません。

そこで、一番偉い管理者が「スターターGPO」と呼ばれるグループポリシーオブジェクトを作成します。

スターターGPOは「エクスポート」することができるので、これを各ドメインの管理者に配布し、「これに独自の設定を追加するように」と告知することができます。

各ドメインの管理者は、一番偉い管理者からもらった スターターGPO を自身のドメインにインポートして使用することができるため、設定項目一覧を紙で配布するよりもはるかに信頼性があがります。

スターターGPOの詳細については以下をご覧ください。

TechNet : スターターGPOの操作
 http://www.microsoft.com/japan/technet/windowsserver/2008/library/0d5cdca4-4835-4439-9082-752e10b86a6c.mspx?mfr=true

で、ここからが本論。 

マイクロソフトのダウンロードセンターでは、スターターGPO そのものが配布されています。

Starter Group Policy Objects (GPOs)
http://www.microsoft.com/downloads/details.aspx?FamilyID=ae3ddba7-af7a-4274-9d34-1ad96576e823&DisplayLang=en

ここで配布されているのは、「セキュアなクライアント(Vista または XP)を配布するためのスターターGPO」です。言い換えれば、このスターターGPOを使用すると、マイクロソフトが発行しているセキュリティガイドに沿ったクライアント環境を構築することができます。

このスターターGPOのベースとなっているのが、以下のドキュメントです。

Windows Vista セキュリティガイド
http://www.microsoft.com/japan/technet/windowsvista/security/guide.mspx

Windows XP セキュリティ ガイド
http://www.microsoft.com/japan/technet/security/prodtech/windowsxp/secwinxp/xpsgch01.mspx

 それぞれのドキュメントには、「エンタープライズクライアント (Enterprise Client: EC)」と「セキュリティ特化 - 機能制限 (Specialized Security – Limited Functionality: SSLF)」という2種類のクライアントタイプについて、推奨される設定について解説されています。用意されているスターターGPOも、EC と SSLF それぞれに用意されています。

以下は、EC および SSLF それぞれの GPO の設定一覧ですので、参考にしてみてください。いずれも、Windows Server 2008 の GPMC(グループポリシー管理コンソース) から「レポートの保存」機能を使用して保存したHTMLファイルです。

Windows Vista EC(Enterprice Computer) コンピュータ用設定

Windows Vista EC(Enterprise Computer) ユーザー用設定

Windows Vista SSLF(Specialized Security – Limited Functionality)コンピュータ用設定

Windows Vista SSLF(Specialized Security – Limited Functionality) ユーザー用設定

 

【Management】Group Policy Management Console Sample Scripts

暑くて眠れないので、AMラジオを聴きながらダウンロードセンターを眺めていたら面白いものがアップされていました。

Group Policy Management Console Sample Scripts
http://www.microsoft.com/downloads/details.aspx?FamilyID=38c1a89b-a6d2-4f2a-a944-9236999aee65&DisplayLang=en

タイトルの通りですが、GPMC の COM インターフェースを操作して、グループポリシーを管理するスクリプト群です。

自宅のマシンのため、テストはできないのですが以下のスクリプトが含まれています。

BackupAllGPOs.wsf
BackupGPO.wsf
CopyGPO.wsf
CreateEnvironmentFromXML.wsf
CreateGPO.wsf
CreateMigrationTable.wsf
CreateXMLFromEnvironment.wsf
DeleteGPO.wsf
DumpGPOInfo.wsf
DumpSOMInfo.wsf
FindDisabledGPOs.wsf
FindDuplicateNamedGPOs.wsf
FindGPOsByPolicyExtension.wsf
FindGPOsBySecurityGroup.wsf
FindGPOsWithNoSecurityFiltering.wsf
findorphanedGPOsInSYSVOL.wsf
FindSOMsWithExternalGPOLinks.wsf
FindUnlinkedGPOs.wsf
GetReportsForAllGPOs.wsf
GetReportsForGPO.wsf
GrantPermissionOnAllGPOs.wsf
ImportAllGPOs.wsf
ImportGPO.wsf
Lib_CommonGPMCFunctions.js
ListAllGPOs.wsf
ListSOMPolicyTree.wsf
QueryBackupLocation.wsf
RestoreAllGPOs.wsf
RestoreGPO.wsf
SampleEnvironment.xml
SampleMigrationTable.migtable
SetGPOCreationPermissions.wsf
SetGPOPermissions.wsf
SetGPOPermissionsBySOM.wsf
SetSOMPermissions.wsf

拡張子をごらんいただくとお分かりの通り、wsf 形式で書かれていますが、言語自体は  VBScript です。

唯一、Lib_CommonGPMCFunctions.js というファイルがありますが、これは共通のライブラリです。スクリプトを実行する際には、wsf ファイルと同じフォルダに置いてから実行してください。

ソースに書かれたタイムスタンプを見てみると最近作られたというわけでもなく、Script Center にアップロードされているもの+独自に追加したスクリプトをパッキングしたようなイメージですね。

実行する前に、必ず以下のコマンドでホストを CScript に設定してからお使いください。

cscript //H:cscript

グループポリシー管理用スクリプトに関する参考サイトを以下にご紹介します。

GPMC のスクリプト処理 - GPO 管理タスクの自動化
http://www.microsoft.com/japan/technet/windowsserver/2003/technologies/management/gpmcscr.mspx

グループ ポリシー ADM ファイルの更新スクリプト
http://www.microsoft.com/japan/technet/scriptcenter/solutions/admupdate.mspx

TechNet Magazine - Windows PowerShell を使用してグループ ポリシーの管理を簡素化する
http://technet.microsoft.com/ja-jp/magazine/cc162355(TechNet.10).aspx

MSDN - GPMC Object Model
http://msdn.microsoft.com/en-us/library/aa814148(VS.85).aspx

その他、グループポリシーに関しては以下も参考になります。

Group Policy Team Blog
http://blogs.technet.com/grouppolicy/default.aspx

はうぅぅ、もうこんな時間...年のせいか、最近寝入りが悪くなりました....

【Windows Server 2008】Hyper-V に展開した Server Core の画面サイズを変更する

※もろもろ書きかけですみません。ただいま動作を確認中なので、すこしお待ちください。 

日本語情報が見当たらなかったので、ついでと言ってはなんですがご紹介しておきます。

Hyper-V のゲスト環境として展開した Server Core は規定では 800*600 でインストールされます。このままですとちょっと狭いですよね。

そこで、画面サイズを変更しましょう。

変更するにはレジストリエディタを使用しますので、くれぐれも間違えないようにご注意ください。

1. Server Core にログオンして regedit を起動

2. レジストリキーを開く

HKLM\SYSTEM\CurrentControlSet\Control\Video

この配下に、ビデオカードの GUID が複数並んでいます。この中から、「0000」 キー配下にある 「Device Description 」が「 Microsoft VMBus Video Device 」となっているものを探します。

 クリックで拡大

**2008/07/05 追記
**VMBus は 「Hyper-V 統合サービス」がインストールされていないと表示されません

3. エントリを追加

「Microsoft VMBus Video Device 」がある 「0000 」キー配下に、以下のエントリを作成します。

値の名前:DefaultSettings.XResolution 
値のタイプ:REG_DWORD(32ビット)
値:横方向のサイズ(例えば 1024)

値の名前:DefaultSettings.YResolution 
値のタイプ:REG_DWORD(32ビット)
値:縦方向のサイズ(例えば 768)

4. ログオフ

以上で設定は完了です。

 

【Windows Server 2008】Server Core 上の Hyper-V を管理するための手順(ワークグループの Vista から管理する) その1

*** 2008/07/04 修正 

うぅ、はやくも6月が終わりです。マイクロソフトの会計年度の終わりでもあります。はやいですね。

さて、以前、以下の記事を書きました。

【Windows Server 2008】Server Core 上の Hyper-V RC0 を管理するための手順(同一ドメインの場合)

続きとして、Server Core が同一ドメインに無い場合の手順についてまとめておこうと思いつつ、もう7月を迎えようとしています。大変失礼いたしました。Hyper-V の RTM がリリースされたことですし、ここでまとめておきたいと思います。

Hyper-V 日本語版アップグレードモジュール

今回は、ドメインに参加していない Windows Vista(SP1) から ドメイン内の Hyper-V サーバーを管理する手順について説明します。せっかくですので、Hyper-V は Server Core 上で動作しているものとしましょう。そのほうが敷居が高くて面白いですよね。

長くなるので、数回に分けさせてください。

Vista 側の準備

まずは、Hyper-V の管理ツールを マイクロソフトのダウンロードサイトよりダウンロードして Vista にインストールしておいてください。 

※Hyper-V RTM リリースに伴い、以下の管理ツールも更新されているようです

さらに、Server Core の環境設定を行う必要があるので、Remote Server Administration Tools(RSAT) もインストールしておくと便利です。

Server Core 側の準備1

まずは Server Core に Hyper-V をインストールしてください。

Server Core に Hyper-V をインストール手順については以下を参照してください。以前 RC0 用に書いた記事ですが、RTM 用に書き直しました。(モジュールが異なるだけで手順は変わりませんが)

【Windows Server 2008】Server Core に Hyper-V をインストールする

次に、リモートからの管理が行えるようにします。

【Windows Server 2008】Server Core の管理をリモートのMMCから行うための準備

 

次回に続きます。

 

【Windows Server 2008】(修正)Server Core に Hyper-V をインストールする

多くの方がご存じの内容かと思いますが、他の記事の説明に使用する都合もあり(汗)、ここでご紹介しておきます。

  1. インストーラのダウンロード
  2. *** 2008/7/4 修正
    *** 大変失礼いたしました 

    *** 2008/6/28 修正
    *** RTM リリースに伴いダウンロードモジュールが変わりましたのでご注意ください 

    以下に示すサイトから必要なインストーラをダウンロードします。注意していただきたいのは、「Hyper-V は Windows Server 2008 64 bit 版でのみサポートされている」ということです。以下の x64 や x86 は、あくまでもゲストOSのアーキテクチャですので誤解のないようお願いいたします。

    ゲストが x64 の場合:Windows Server 2008 x64 Edition 用の更新プログラム (KB949219)
    http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=ddd94dda-9d31-4e6d-88a0-1939de3e9898

    ゲストが x86 の場合:Windows Server 2008 用の更新プログラム (KB949219)
    http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=b7464b44-821d-4a7c-9d9c-7d74ec14437c

    Hyper-V RTM

    Windows Server 2008 x64 Edition 用の更新プログラム (KB950050)

    Windows Server 2008 x86 用 Hyper-V 管理コンソール RTM

    Windows Server 2008 用の更新プログラム (KB950050)

  3. インストール
  4.  インストールは上記インストーラをコマンドプロンプト上から実行するだけです。この場合、特に無人インストールを意識する必要はありません。表示される GUI は Server Core でサポート可能な範囲となっています。

    インストールが完了すると、「役割」として選択することが可能になります。

  5. 組み込み
  6. Windows Server 2008 の常として、実際に使用するにはインストールに加えて組み込むための手順が必要になります。フルインストールの場合にはサーバーマネージャを使用して[役割] - [追加] をすればよいのですが、Server Core にはそうしたGUIが提供されていません。そこで、以下のコマンドを使用します。

    ocsetup "Microsoft-Hyper-V" 

     または

    start /w ocsetup "Microsoft-Hyper-V"

    Microsoft-Hyper-V というのが、Hyper-V の識別名であり、大文字小文字を判別するので上記のとおりに入力してください。前者、後者のどちらを使用してもかまいませんが、「変更を有効にするにはシステムを再起動する必要があります」 というメッセージが表示されるまでは再起動は行わないでください。

  7. 再起動

再起動が完了すると、すでに内部では Hyper-V が動き出しています。

ためしに、コマンドプロンプトから net start コマンドを入力してみてください。以下のサービスが動作していることがわかるはずです。

  • Hyper-V Image Management Service
  • Hyper-V Netwoking Management Service
  • Hyper-V Virtual Machine Management

 

以上でインストールは完了です。

問題は、これをどうやって管理するのか...これについては次の投稿で。

 

【Management】(続報)DPM 2007 での Windows Server 2008 システム状態(System State) のバックアップ について

つい先日、以下の投稿をしました。

【Management】DPM 2007 での Windows Server 2008 システム状態(System State) のバックアップ について

どうやら、私がこの記事を書いているときに、本件の修正を盛り込んだ最新の Feacher Pack がダウンロードサイトに登録されていたようです....。

修正に関する詳細は以下の ナレッジベース をご覧ください。機械翻訳ですが、特に難解な部分はありませんでした。

System Center Data Protection Manager 2007 Feature Pack の概要(機械翻訳)
http://support.microsoft.com/kb/949779/ja

クリックして拡大

クリックして拡大

【Management】DPM 2007 での Windows Server 2008 システム状態(System State) のバックアップ について

以前、以下の記事で DPM 2007 のエンハンス予定についてお知らせしました。

【Management】Data Protection Manager 2007 Rollup & Service Pack 1 について

この記事で説明されているロールアップは以下に該当します。

データ マネージャ 2007 保護ホットフィックス パッケージ 2 ロールアップの説明(機械翻訳)
http://support.microsoft.com/kb/950082/ja

本日、ネット配信用のコンテンツ(WebCast)を収録するためにDPM2007に上記ロールアップを適用し、Winodws Server 2008 にも問題なくエージェントプログラムを送り込めることを確認したのですが、保護グループ作成時に「システム状態」が指定できないことに気付きました。

クリックで拡大

どうしたもんかと調べてみたところ、ひとまず Newsgroup に以下の記事があることに気付きました。

http://www.microsoft.com/communities/newsgroups/list/en-us/default.aspx?dg=microsoft.public.dataprotectionmanager&tid=84c82bf8-9d3d-4c36-9c26-7c61fc2036fa&mid=84c82bf8-9d3d-4c36-9c26-7c61fc2036fa&cat=&lang=&cr=&sloc=&p=1 

現在テスト段階であり、もう少しで提供される予定だとのこと。

もし、現時点で本現象にお気づきの方は、もうすこしお待ちください。

【IDM】MSMQ を使って確実なユーザー登録を行う その3 ~ MSMQ の環境設定

もう金曜の夜か。一週間が速すぎます。

「MSMQ を使って確実なユーザー登録を行う」シリーズの3回目です。

今回は、MSMQ上にテスト的なキューを作成してみましょう。

その前に、簡単に MSMQの動きについてお話ししておきます。ただし、今回の目的達成のために必要最小限のお話しかしません(できないというはなしも...)。もっと詳しく知りたい!という方は、MSDNサイトをご覧ください。

What's new in Message Queueing 4.0(ごめんなさい、英語です)
http://msdn.microsoft.com/en-us/library/ms701784(VS.85).aspx 

Windows Server 2008 テクニカルライブラリ メッセージキューサービス(ごめんなさい英語です、が、機械翻訳もつきます)
http://www.microsoft.com/japan/technet/windowsserver/2008/library/0a1551a3-f169-4aaa-b486-e8c66f1a3d91.mspx

Message Queueing COM Components (英語、Windows Script からアクセスする際には必見)
http://msdn.microsoft.com/en-us/library/ms704064(VS.85).aspx

Microsoft Message Queueing(日本語)(2008/Vistaの最新情報は含まれていません)
http://msdn.microsoft.com/ja-jp/library/bb970313.aspx

メッセージキュー SDKドキュメント(日本語)(2008/Vistaの最新情報は含まれていません)
http://msdn.microsoft.com/ja-jp/library/cc448132.aspx 

 

では、以下の図をご覧ください。

クリックで拡大

アプリケーションから投入されたメッセージは、MSMQ上に作成したキューに一旦格納されます。

キューにメッセージが格納されたタイミングで自動的にプログラムを実行させるには、キューを監視するプログラムを常駐させておくことも可能ですが、IT pro 的には「トリガー」を作成しておくと便利でしょう。トリガーには、メッセージを振り分けるための「条件」と、振り分けられたメッセージに対する処理である「操作」を指定することができます。

キューには 複数のトリガー を割り当てることもできますし、一つのトリガーに 複数のルール、1つのルールに 複数の条件+操作 を割り当てることも可能です。

キューに格納されたメッセージは、はじめにルールに定義された条件に合致するかどうかがチェックされます。条件はメッセージの送信元やラベル、本文等を使用して定義することができ、それぞれのルールには1つの「操作」、つまりプログラムを指定することができます。

では、実際にMSMQにキュー、トリガー、ルールを作成してみます。

キューの作成

Windows Server 2008 の場合、MSMQをインストールするとサーバーマネージャ の「機能」に「メッセージキュー」ノードが表示されます。

メッセージキュー ノードを展開し、「専用キュー」を右クリックして[新規作成] - [専用キュー] を選択してください。

クリックして拡大

「新しい専用キュー」ウィンドウが表示されるので、キューの名前を入力してください。ここでは、「Input」としました。キューに対する処理はトランザクションを使用することも可能ですが、ひとまず今回はチェックせずに進みます。

クリックして拡大

これでキューの作成は完了です。専用キュー配下に、Inputキューが作成されていることを確認してください。

クリックして拡大

ルールを作成する

ルールを作成するにあたり、ルールに合致したメッセージを受信したときに実行するプログラムを作っておきます。といっても、たいそうなものである必要はありません。以下のようなコマンドを実行するバッチファイルで十分です。以下では、バッチファイルに渡された6つの引数を、c:\tmp\msmqtest.log というログファイルに保存しています。バッチファイル名を Input.bat として保存することにします。

echo %1 %2 %3 %4 %5 %6 >>c:\tmp\msmqtest.log

次にルール(規則)を作成します。メッセージキュー ノードの「トリガー」を展開し、「規則」を右クリックして表示されるコンテキストメニューから[新規作成] - [規則] をクリックしてください。

クリックして拡大

 まずは規則名を入力します。ここでは、「rule1」としました。

クリックして拡大

次に規則の条件を指定します。ここで指定した条件に合致したメッセージのみが、この後の「操作」の対象となります。

今回は、以下のように設定してみます。

    • 条件 = メッセージラベルは次の値を含む
    • フィルタの値または文字列 = IDM

クリックして拡大

 次に、メッセージが条件に一致した場合の操作を指定します。操作には、COMコンポーネントを指定する方法と実行可能ファイルを指定する方法が用意されています。今回は、「スタンドアロン実行可能ファイルの起動」を選択し、実行可能ファイルのパスとして、先ほど作成したバッチファイル( input.bat )を指定します。以下の例では、c:\tmp\input.bat を指定しました。

バッチファイルを指定したら、[パラメータ] をクリックしてください。

クリックして拡大

パラメータの指定画面では、メッセージのさまざまな属性を、バッチファイルの引数として指定することができます。今回、バッチファイルでは %1 から %6 までの 6 つの引数を受け取れるようにしたので、この画面でも 6 つのパラメータを指定することにします。以下のように指定してみてください(ひとまず、適当で結構ですし、6 つに足りなくても大丈夫です)。

クリックして拡大

以上でルールの作成は完了しました。

クリックして拡大

トリガーの作成

 最後にトリガーを作成します。

 先ほど作成した Input キューを展開し、[トリガー] を右クリックして表示されるコンテキストメニューから [新規作成] - [トリガ] をクリックしてください。

クリックして拡大

 新しいトリガ画面が起動したら、トリガ名を指定し、「シリアル化」をチェックしてください。「シリアル化」とは、メッセージが入力された順番に処理することです。この場合、1つのメッセージの処理に時間がかかっていても次のメッセージを非同期に実行せず、処理完了まで待つことになります。シリアル化するかどうかは処理内容による判断が必要ですが、ID管理の場合、シーケンシャルでないと不都合が出ることが考えられるため、シリアル化をチェックしておきます。

また、以下の画面では「メッセージの処理の種類」として「ピーク」が選択されていることがわかります。「ピーク(PEEK)」とは単語の意味のとおり、「覗き見る」ことです。メッセージを受信したら中身の確認だけを行って、メッセージはそのままにしておきます。「取得(レシーブ)」してしまうと、フィルタチェック後にメッセージは削除されてしまうことに注意してください。処理が正常に完了せずに削除されてしまうと、もうやり直しがきかなくなってしまいます。

トリガの処理を詳しく知るには、以下のサイトをごらんください。日本語で平易に説明されています。 

着信メッセージの読み取り
http://msdn.microsoft.com/ja-jp/library/cc446859.aspx 

 シリアル化トリガと非シリアル化トリガ
http://msdn.microsoft.com/ja-jp/library/cc446863.aspx

クリックして拡大

 次に、トリガに関連付ける ルール(規則)を選択します。先ほど作成した rule1 を 「適用される規則」に移動してください。複数のルールを適用することも可能です。

クリックして拡大

以上でトリガの設定は完了です。

ためしに、以下のスクリプトを拡張子 vbs で保存してローカルコンピュータ上から実行してみてください。

※ junichia03 はコンピュータ名ですので、みなさんのコンピュータ名に置き換えてください

Const MQ_RECEIVE_ACCESS  = 1 
Const MQ_SEND_ACCESS     = 2 
Const MQ_PEEK_ACCESS     = 32 
Const MQ_ADMIN_ACCESS    = 128
Const MQ_DENY_NONE           = 0 
Const MQ_DENY_RECEIVE_SHARE  = 1 

set objQueueInfo = CreateObject("MSMQ.MSMQQueueInfo")
set objMsgQueue = CreateObject("MSMQ.MSMQQueue")
set objMessage = CreateObject("MSMQ.MSMQMessage")

objQueueInfo.PathName = "junichia03\private$\Input"

'objQueueInfo.Formatname = "DIRECT=OS:junichia03\private$\Input"
'objQueueInfo.Formatname = "DIRECT=HTTP://junichia03/msmq/private$\Input"

set objDist = objQueueInfo.Open(MQ_SEND_ACCESS ,MQ_DENY_NONE)

objMessage.Label = "msg" & date & time
objMessage.Body = "メッセージボディ"
objMessage.Delivery = 1
objMessage.Send(objDist)

objDist.Close

スクリプトの実行後、キューメッセージをリフレッシュすると、送信されたメッセージが登録されているはずです。

クリックして拡大

次回は、スクリプトを使用してもう少しテストをしてみましょう。

 

【IDM】MSMQ を使って確実なユーザー登録を行う その2 ~ MSMQ のインストール(Windows Server 2008)

あぁ、タスポどうしよう...。

「MSMQ を使って確実なユーザー登録を行う」シリーズの 2回目です。

【IDM】MSMQ を使って確実なユーザー登録を行う その1 ~ MSMQ って何してくれるの?

今回は、普段あまりなじみのない MSMQ をインストールしましょう。プラットフォームは Windows Server 2008 を使用します。

Windows Server 2008 では MSMQ についてもエンハンスが行われています。Windows Server 2008(および Vista) では、Message Queueing 4.0 と呼ばれており、以下のような機能強化がなされています。

  • 物理キューにサブキューを生成することで、1つの物理キューの中でメッセージをグルーピングできる
  • メッセージキューの管理コンソールを使用してメッセージを移動
    • クリックで拡大
  • アプリケーションごとに固有の配信不能キューを使用できる
  • メッセージのトランザクションをリモートから受信できる
    • クリックで拡大
  • 規定の暗号化形式がRC4になったほか、高度暗号化標準(AES)もサポート など

詳しくは、お手元の2008のヘルプか、以下のサイトをご覧ください。

What's new in Message Queueing 4.0(ごめんなさい、英語です)
http://msdn.microsoft.com/en-us/library/ms701784(VS.85).aspx 

Windows Server 2008 テクニカルライブラリ メッセージキューサービス(ごめんなさい英語です、が、機械翻訳もつきます)
http://www.microsoft.com/japan/technet/windowsserver/2008/library/0a1551a3-f169-4aaa-b486-e8c66f1a3d91.mspx

余談が長くなってしまいました。

さっそく、Windows Server 2008 に MSMQ をインストールしましょう。インストールは簡単です。おなじみの サーバーマネージャを使用します。

[サーバーマネージャ] - [ 機能] を右クリックして コンテキストメニューから [機能の追加] をクリックします。

 

 機能追加ウィザードを起動するので、機能一覧から以下の3つの機能を選択して[次へ]進みます。

  • メッセージキューサーバー
  • メッセージ キュー トリガー
  • HTTP サポート

クリックして拡大

HTTPサポートは直接ユーザー管理とは関係ないのですが、HTTPを経由してメッセージを受け取ったり、メッセージの中身を確認することができるので入れておくと便利です。

完了したら再起動を行って、インストール完了です。

次回は、簡単な動作確認を行ってみます。

 

【IDM】MSMQ を使って確実なユーザー登録を行う その1 ~ MSMQ って何してくれるの?

こうも天気がよいと、なんだかどうでもよくなりますね。メタボドンと来い!ってかんじです。

さて、現在募集中の TechEd ライトニングトーク 登壇者に向けたサンプルスライドを作ってみたわけですが、せっかくなので少し詳細に解説したいと思います。

【TechEd】ライトニングトーク サンプル ~ MSMQ を使用した確実なユーザー登録 ~

MSMQ って、そもそもご存知でしょうか?意識してインストールしないと「コンピュータの管理」にも出てこないので、「始めて聞いた」という方もいらっしゃるかもしれません。

Microsoft Message Queueing(Microsoft Message Queue Service てのは古い言い方だったようです。失礼しまし) の略で、分散メッセージングアプリケーションを開発するための基盤となるサービスです...と書くと、なんか IT Pro とは無縁のもののように思えてきますが、これがまた使ってみるとやめられなくなるくらい面白いです。Developer だけに触らせていたのではもったいないので、IT Pro も使いましょう!

で、ここでいう「メッセージ」という言葉ですが、これはメールのようなものだと思ってください。次々と送られてくるメッセージをうまく捌くためのエンジンが MSMQ です。

では、MSMQ がなんでユーザー登録にとって便利なのかということですが。

ユーザー登録は、基本的にシーケンシャルな処理です。おそらく、スクリプトには以下のようなコードを書くことになるでしょう。

  1. ユーザー一覧が書かれたCSVファイルを開く
  2. CSVファイルを1行よみとる
  3. ユーザーIDをキーにしてActive Directory 上にユーザーを作成
  4. 作成できたら氏名やホームディレクトリ等をセット
  5. 登録結果の確認処理後、ログを吐き出し
  6. 2.に戻って繰り返し

例えば10000人のユーザーを登録する場合、すべての処理をひとまずやってしまってから、ログから正常に終了したかどうかを確認する必要があります。処理に慣れている方であれば、「失敗したユーザー一覧」を別に吐き出して、それをベースに再登録を行ったりなんてことも考えるのではないでしょうか。

処理が失敗する原因はいくつか考えられます。

  • ネットワーク障害
  • ドメインコントローラ側の障害
  • 登録データの不備
  • コードの不備(想定外の入力データ等)

いずれにしても重要なのは、失敗した後のことがきちんと想定されているかどうかということです。

そのためにも、ILM などのパッケージを導入するのがお勧めなわけですが、そうは言ってもお金がかかる世界ですから内々でなんとかできるものならなんとかしたい。。と思うのが人情ってものです。

そこで、OS標準機能である MSMQ を使ってしまい、エラー処理に関するコーディングを簡略化してしまおうと。

以下の図をご覧ください。

クリックで拡大

この図の上に書かれた流れが、いまお話した普通の方法です。

下に書かれているのがMSMQを使用した方法です。

「普通の方法」の場合、エラー処理はバッチ処理全体として考慮する必要があるため、制御が面倒になります。コードも増えますので、ミスも発生しやすく、出来上がってみれば完全なスパゲッティコード(うわ、古い表現)になってしまうこともシバシバ。

#もしかして、それは僕の頭が悪いから??

そこで、従来バッチ的に行っていたユーザー登録を、一人づつのジョブに分割し、コードはあくまでも「一人を登録するための処理」として記述すればよいため、コーディングを簡略化することができます。

MSMQ には、「トリガー」という便利が機能が用意されており、

ジョブ(メッセージ)が生成されたらあらかじめ関連付けられたプログラムを自動実行する

ことができます。これがまた、たまらなくうれしいです。もちろん、リアルタイムに処理されます。

トリガー機能を自身でコーディングしようとしたら...WMIでファイルシステムの変更を検出して、ファイルを正当性をチェックし、問題が無ければスクリプトを起動する...なんて処理をサービスプログラムとして作成して常駐化しなければなりません。それだけなら「なんだ簡単ジャン」という声もあるかもしれませんが、インストーラを作ったり、環境設定用のGUIを作ったり、ドキュメントを作ったり...納品するまでには長い道のりをたどらなければなりません。

MSMQ のトリガー機能を使用することで、作成するスクリプトは増えますが、個々のスクリプトが完全に独立しているためメンテナンス性や生産性が向上しますし、キューを増やすことで複数の処理を平行に動かすことも可能になります。

例えば、大量のユーザー登録を行っている最中にパスワードリセットを行わなければならない場合には、そちらを優先して行いたいですよね。その場合には、パスワード変更用のキューを独立させておけばユーザー登録とパラレルに処理が走ります。

また、もし処理が失敗してしまったら、いちいちログを吐き出してやり直すなんてことは考えず、ジョブをいったん「失敗キュー」に移動後、再び元に戻してあげれば、トリガーによって処理を繰り返すことが可能です。もちろん、「すぐに繰り返さずに、すこし待つ」なんて考慮も必要ではありますが、バッチ処理で考慮するよりははるかにシンプルに実装できます。

どうでしょう。使いたくなりましたよね、MSMQ。

次回は、MSMQ のインストールと環境設定を行います。

MSMQ についてもっと勉強したい!という方は、MSDN の以下のページをご覧ください。日本語で丁寧に解説されています。

Microsoft Message Queueing(日本語)
http://msdn.microsoft.com/ja-jp/library/bb970313.aspx

メッセージキュー SDKドキュメント(日本語)
http://msdn.microsoft.com/ja-jp/library/cc448132.aspx

OSにもヘルプがついていますので、そちらもご覧ください。

【TechEd】ライトニングトーク サンプル ~ MSMQ を使用した確実なユーザー登録 ~

Tech・Ed 2008 YOKOHAMA では、5分間のプレゼンを競い合う ライトニングトーク が開催されます。詳細は以下をご覧ください。

【News】神様がくれた5分 を何に使いますか?僕なら大ジョッキを2杯飲みますけど... 

5分頑張れば、定価15万円もするTech・Edのテクニカルセッションを無償で聴講できるのですから、多くのエンジニアの皆さんは知恵を絞っていらっしゃることと思います。

で、何人かの方々から「レベル感がわからない」というご質問をいただきました.

そんなに構えていただく必要はありませんが、およそ以下のいずれかに分類されるのかなと思っています。

  • ちょっとした工夫で処理時間を短縮することができる
  • ちょっとした工夫で処理を自動化することができる
  • 一般的にはできないといわれているけど、工夫するとできる
  • 一般的に使われる用途とは別の用途に使うと効果的
  • 開発者向けだと思っていたけど、IT Pro が使うとすごく便利
  • 仕事には関係ないけど、ちょっとうれしい

などなど。

自分では当たり前だと思っていても、他の方から見れば意外と「目からうろこ」だったりしますので、遠慮なさらずご応募お待ちしております。

で、例えば、ということでサンプルを考えてみました。

MSMQ(Microsoft Message Queue Service)を使用した確実なユーザー登録

ユーザー管理の問題点の1つとして、ドメインコントローラやネットワーク障害時のリトライが挙げられます。一度失敗すると、どこまで実行したかを調査し、重複の内容再度実行する必要があります。これはフィールドSEにとって大変な手間です。Windows に標準で実装されているMSMQと連携させて実行することで、リトライを容易に、かつ自動化することが可能です。MSMQ は Windows に標準機能として実装されているにもかかわらず、意外と日の目を見ないコンポーネントです。メッセージのキュー管理機能を PowerShell から操作することで、IT Pro でも簡単に高度な制御を実装した登録プログラムを作成することができます。 

クリックで拡大 

クリックで拡大

5分という短い時間ですから、スライドにすると2枚が精いっぱいでしょう。これ以上になると、見ている側に忙しい印象を与えてしまいます。

MSMQ は IT Pro の方々の眼中にないコンポーネントだったと思うので、のちほど、このスライドを具体的に実装する方法について解説します。

 

【News】各地のHero を紹介します ~ 早期評価プログラムに参加くださった皆様 2008年前期版 ~

BLOG上でILM "2" を解説するためのPPTを作成しているのですが、まだ途中でして...ILM "2" に期待してくださっているみなさん、いますこしお待ちください。

さて、エバンジェリズムグループでは以前より 「最新テクノロジ早期おためしプログラム(Momentum プログラム)」というものを実施してきました(もちろん今後も続けます)。

これは、マイクロソフトの最新のテクノロジを評価をしてくださるとお約束くださった皆様に TechNet Direct サブスクリプション をご提供し、後日エバンジェリストがお話をうかがいに訪問させていただくというものです。

2008年前期(~2008年6月時点) までに公開された各地のHeroを以下にご紹介いたします。

【Momentum シリーズ Vol.1】Hero Happens @ {富士ゼロックス北陸}

【Momentum シリーズ Vol.2】Hero Happens @ {株式会社 Pro-SPIRE}

【Momentum シリーズ Vol.3】Hero Happens @ {久保法律事務所}

【Momentum シリーズ Vol.4】Hero Happens @ {キヤノンネットワークコミュニケーションズ株式会社}

【Momentum シリーズ Vol.5】Hero Happens @ {アイ・オーシステムインテグレーション株式会社}

【Momentum シリーズ Vol.6】Hero Happens @ {電脳 株式会社}

【Momentum シリーズ Vol.7】Hero Happens @ {株式会社 富士通四国システムズ}

このプログラムの特徴はエバンジェリストが直接皆様にお話をうかがいに行くというところにあり、セミナーや懇親会の場での会話とは一味違った体験をすることができました。直接現場でのお話や今後のビジネスの方向性をうかがえることは、われわれの今後の活動プランを決めるうえでも大変重要なことであると、あらためて認識しています。

今後も 「最新テクノロジ早期おためしプログラム(Momentum プログラム)」は継続してまいりますので、是非ともご参加をご検討ください。

 

【News】神様がくれた5分 を何に使いますか?僕なら大ジョッキを2杯飲みますけど...

「Tech・Ed に行きたいかぁっ!」

「あぁ、はいぃ...」

「Tech・Ed のご招待チケットがあったら行きたいかぁっ!」

「オーッ!」

 ということで、そんな皆様に朗報です。

うちのチームのマネージャが blog に投稿しました!

という話も確かに朗報なのですが、それはさておき、まずはこちらをご覧ください。

Tech・Ed 2008 YOKOHAMA ライトニングトーク登壇者募集
http://www.microsoft.com/japan/powerpro/community/te08program/default.mspx

そうです。皆さんがお持ちの、とっておきの5分ネタ を披露していただける方を Tech・Ed にご招待しようということなのです。

ただし、「登壇」ですからそれなりの緊張もするでしょう。しかし、その緊張は一度味わったら病みつきになるはずです。

たった5分とはいえ、おそらく準備には数時間を要するものと思われます。

当日はわれわれエバンジェリストとともに、登壇の緊張を肴にビールでも飲みますか。

まずは、上記サイトをご覧になって構想をメールでお送りください。僭越ながら、われわれエバンジェリストが審査を行わせていただきます。

応募締め切り: 2008 年 7 月 11 日 (金)
※お申し込み受領後に事務局より確認のご連絡をさせていただきます。

メール記載事項 (4 項目): 1. 対象カテゴリ 2. セッションタイトル 3. セッション概要 (150 文字程度) 4. 意気込み (文字数制限なし)

※メール件名を “ライトニングトーク申込” としてください。
※お申し込み受領後に事務局より確認のご連絡をさせていただきます。

「うーむ」とうならせるネタ、お待ちしております!

More Posts Next page »
Page view tracker