前記事 VSTOで、Outlook COMアドインのセットアップ
http://blogs.wankuma.com/yaju/archive/2009/06/08/174451.aspx
VSTOでOutlook COMアドインをインスール後に、セキュリティポリシーの設定
が必要なわけですが、その際に、セキュリティポリシーを設定するための
WSHスクリプトを作成しました。
バッチファイルで作成したかったんですが、レジストリの値を取得する方法が
いまいち分からなかったので(^^;
レジストリの値を取得するのは、インストール時にインストール先のフォルダパス
をレジストリに書き込むように設定してあるためです。
説明すると、セキュリティポリシーのコマンドラインツールであるCaspol.exeを
使って、セキュリティポリシーのユーザーのAll_Codeの配下に"VSTOAddin"
というグループを作成し、その下に"HOGE"の名前でURL先にインストール先の
フォルダパスをアクセス許可 FullTrustで設定してます。
caspolにてYes/Noの確認が出てくるのですが、入力させるのがわずらわしいので、
「echo y|%」を指定して、自動応答にしてます。
http://www.atmarkit.co.jp/fwin2k/win2ktips/731caclsy/caclsy.html
SecurityPolicy.vbsの中身
Option Explicit
'On Error Resume Next
dim WshShell,file
Set WshShell = WScript.CreateObject("WScript.Shell")
'RegReadメソッドで、レジストリ内の指定キーを取得(キーの分類については下記の表参照)。
file = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\HOGE\MailWatchAddinSetup\Path")
'セキュリティポリシー削除 既に存在してやり直したい場合(必要時のみ使用、現状はコメントアウト化)
'WshShell.Run "%comspec% /c echo y|%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -user -remgroup VSTOAddin",,True
'セキュリティポリシー作成(All_Codeの配下にVSOAddinグループを作成、その配下にインストール先のセキュリティポリシー許可をセット)
WshShell.Run "%comspec% /c echo y|%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -user -addgroup All_Code -allcode Nothing -n VSTOAddin",,True
WshShell.Run "%comspec% /c echo y|%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -user -addgroup VSTOAddin -url " & Chr(34) & file & "*" & Chr(34) & " FullTrust -n HOGE",,True