2009/12/08

FCI のカスタム アクションのテストに便利なスクリプト&バッチ

以前の投稿で、Windows Server 2008 R2 の新機能 File Classification Infrastructure (FCI) と Active Directory Rights Management サービス (AD RMS) の連携について簡単に触れました。FCI のファイル管理タスクのカスタム アクションを使用して、AD RMS Bulk Protection Tool による暗号化を実行するというものです。カスタム アクションとしてバッチ ファイルの例を紹介しましたが、Windows Script Host (WSH) のスクリプトや、Windows PowerShell スクリプトで実装することもできます。

AD RMS から離れて、カスタム アクションをどうやって実装するかどうか、テストに使用できる方法を紹介します。カスタム アクションで指定したコマンドは、ファイル管理タスクで指定された条件に一致するファイルごとに実行されます。そのファイルのフルパスは、[Source File Path]を使用してコマンドに渡すことができます。次に示す 3 つの例は、C:\Scripts\filelist.txt にファイル管理タスクの対象になったファイルのパスを書き込む例です。

バッチ ファイルで指定する場合















種類: カスタム
実行可能ファイル: C:\Windows\System32\cmd.exe
引数: /c "C:\Scripts\fcitest.cmd [Source File Path]"
 
[fcitest.cmd]
@echo off
echo %1 >> C:\Scripts\filelist.txt

WSH スクリプトを指定する場合 (VBScript の例)

種類: カスタム
実行可能ファイル: C:\Windows\System32\cscript.exe
引数: //NoLogo C:\Scripts\fcitest.vbs [Source File Path] >> C:\Scripts\filelist.txt
 
[fcitest.vbs]
Set arg = WScript.Arguments
WScript.Echo arg(0)

Windows PowerShell スクリプトを指定する場合

種類: カスタム
実行可能ファイル: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
引数: -File C:\Scripts\fcitest.ps1 [Source File Path]

[fcitest.ps1]
param($MyPath)
$MyPath | Out-File -FilePath C:\Scripts\filelist.txt -Append