Office カスタマイズ ツール カスタマイズ ファイルの XML コンテンツを参照する

更新日: 2008年6月

適用対象: Office Resource Kit

 

トピックの最終更新日: 2015-03-09

管理者は、Office カスタマイズ ツール (OCT) を使用して、2007 Microsoft Office system のインストールをカスタマイズします。カスタマイズしたインストールは、XML (拡張マークアップ言語) 形式を使用するセットアップ カスタマイズ ファイル (MSP ファイル) に保存されます。この記事では、OCT の MSP ファイルに格納された設定を表示するために管理者が使用できる Microsoft Visual Basic サンプル スクリプトについて説明します。

Windows スクリプト ホストの概要

スクリプトを実行するには、Microsoft Windows スクリプト ホスト (WSH) を使用します。これは、Windows スクリプト互換のスクリプト エンジン用の、言語に依存しないスクリプト ホストです。WSH を使用すると、Windows デスクトップとコマンド プロンプトの両方からスクリプトを実行できます。

Windows からスクリプトを実行できるように、WScript.exe には、スクリプトのプロパティを設定するための Windows ベースのダイアログ ボックスが用意されています。コマンド プロンプトからスクリプトを実行できるように、CScript.exe には、スクリプトのプロパティを設定するためのコマンド ライン スイッチが用意されています。

WSH では、スクリプトのドラッグ アンド ドロップがサポートされます。つまり、WSH スクリプトの上にファイルをドラッグできます。ドラッグしたファイルの名前が、コマンド ラインの引数に変換されます。

WSH の詳細については、MSDN Web サイトの次のリソースを参照してください。

ExtractOctXml.vbs スクリプト サンプル

ここでは、Visual Basic サンプル スクリプト ExtractOctXml.vbs を示します。また、スクリプトを使用して OCT の MSP カスタマイズ ファイルから XML メタデータを抽出する手順について説明します。

サンプル スクリプトを保存するには、メモ帳などのテキスト エディタを開き、以下のスクリプト コードをコピーしてファイルに貼り付けます。このスクリプト ファイルを ExtractOctXml.vbs として保存します。

' Utility to extract the metadata from an Office 2007 customization patch 
' For use with Windows Scripting Host, CScript.exe or WScript.exe
' Copyright (c) Microsoft Corporation. All rights reserved.
'
Option Explicit

Const msiOpenDatabaseModePatchFile = 32
Const msiOpenDatabaseModeReadOnly     = 0
Const msiReadStreamBytes = 1

Const ForWriting = 2
Const TristateTrue = -1

Dim pathOCT_Patch 'As String
Dim pathMetadataXml 'As String
Dim sMetadata 'As String
Dim wshShell 'As Wscript.Shell
Dim fso 'As FileSystemObject
Dim fileOutput 'As File
Dim sErrSection ' As String


sErrSection = "ArgCheck"
' Check arg count, and display help if argument not present or contains ?
Dim argCount:argCount = Wscript.Arguments.Count
If argCount > 0 Then If InStr(1, Wscript.Arguments(0), "?", vbTextCompare) > 0 Then argCount = 0
If (argCount = 0) Then
    Wscript.Echo "Office 2007 OCT Metadata Extract utility" & _
        vbNewLine & " You must supply the location of the Office 2007 customization patch " & _
        vbNewLine & _
        vbNewLine & "Copyright (C) Microsoft Corporation.  All rights reserved."
    Wscript.Quit 1
Else
    pathOCT_Patch = Trim(Wscript.Arguments(0))
End If


sErrSection = "FSO"
' Create FileSystemObject and verify file exists
Set fso = CreateObject("Scripting.FileSystemObject") : CheckError
If Not fso.FileExists(pathOCT_Patch) Then Err = 2 : CheckError


sErrSection = "WI"
' Connect to Windows Installer object
On Error Resume Next
Dim wi : Set wi = Nothing
Set wi = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError


sErrSection = "Read Metadata"
' Open OCT patch and read the metadata stream
Dim wiStorage, vw, rec
Set wiStorage = wi.OpenDatabase(pathOCT_Patch, msiOpenDatabaseModePatchFile) : CheckError
Set vw = wiStorage.OpenView("SELECT * FROM _Streams WHERE `Name`='metadata' ") : CheckError
vw.Execute
Set rec = vw.Fetch
If Not rec Is Nothing Then
    sMetadata = rec.ReadStream(2, rec.DataSize(2), msiReadStreamBytes)
Else
    Wscript.Echo "No Metadata stream was found in this file: " & pathOCT_Patch
    Wscript.Quit 2
End If

Set wiStorage = Nothing
Set rec = Nothing: Set vw = Nothing
Set wi = Nothing


sErrSection = "Write Metadata"
' Write the metadata stream to a temp file
Set wshShell = CreateObject("WScript.Shell") : CheckError
pathMetadataXml = wshShell.ExpandEnvironmentStrings("%temp%") & "\" & fso.GetFileName(pathOCT_Patch) & ".xml"
Set fileOutput = fso.OpenTextFile(pathMetadataXml, ForWriting, True, -1) : CheckError
fileOutput.WriteLine sMetadata 
fileOutput.Close

Set fileOutput = Nothing: Set fso = Nothing

sErrSection = "Show Metadata"
' Launch Metadata in IE
wshShell.Run "iexplore.exe " & pathMetadataXml 

    
    
Sub CheckError
Dim sMsg, errRec
    If Err = 0 Then Exit Sub
    sMsg = sErrSection & vbNewLine & Err.Source & " " & Hex(Err) & ": " & Err.Description
    If Not wi Is Nothing Then
    Set errRec = wi.LastErrorRecord
        If Not errRec Is Nothing Then sMsg = sMsg & vbNewLine & errRec.FormatText
    End If
    Wscript.Echo sMsg
    Wscript.Quit 2
End Sub

Sub NoMetadata
End Sub

スクリプトを実行する

ExtractOctXml.vbs ファイルは、コンピュータの任意の場所に格納できます。ExtractOctXml.vbs スクリプトは、OCT の MSP カスタマイズ ファイルをドラッグし、スクリプトの上にドロップするだけで使用できます。このスクリプトにより、メタデータの XML は、<OCT パッチの名前>.xml としてユーザーの一時フォルダに抽出されます。次に、この XML ファイルが Internet Explorer に渡され、表示されます。

スクリプトを実行する

  1. Windows エクスプローラを使用して、ExtractOctXml.vbs ファイルが格納されているフォルダを開きます。

  2. 表示する MSP ファイルのコピーを、Internet Explorer のウィンドウに表示されている ExtractOctXml.vbs の上にドラッグ アンド ドロップします。

  3. XML ファイルが開いたら、さまざまなセクションを展開したり折りたたんだりして、MSP カスタマイズ ファイルに含まれる設定を表示できます。

    metadata.xml ファイルの <UserSettings> 要素には、MSP カスタマイズ ファイルに構成されているユーザー設定が含まれています。<Options> 要素には、機能の状態に関する設定が含まれています。

コマンド ラインを使用してスクリプトを実行する

  1. [スタート] をクリックし、[ファイル名を指定して実行] をクリックして、「cmd」と入力します。

  2. コマンド ウィンドウに、次のように入力します。

    cscript <スクリプトのパス> \ExtractOCTXml.vbs <OCT MSP のパスおよびファイル名>

    または

    wscript <スクリプトのパス> \ExtractOCTXml.vbs <OCT MSP パスおよびファイル名>

    XML ファイルが Internet Explorer に読み込まれ、表示されます。

MSP カスタマイズ ファイルの XML コンテンツを表示する

OCT は、設定 (OPA) ファイルを使用して、OCT の [ユーザー設定の変更] ユーザー インターフェイスを事前設定し、さらにインストール時に適切なレジストリ キーとレジストリ値を追加します。Office 2007 の設定 OPA ファイルは、Office 2007 ソース ファイルの場所または CD のルートにある Admin フォルダに格納されます。

次の表に、MSP の metadata.xml ファイルに含まれる最上位のセクションを示します。

セクション 説明

<Customization baseFolder>

MSP カスタマイズ ファイルの名前とパスの情報を示します。これらの要素は、コードにより内部的に使用されるだけで、実際のカスタマイズを表すものではありません。

<Product id>

ローカル インストール ソース パッケージ、インストールの状態 ("常にインストール" など)、言語 MUI パッケージ、プロダクト ID、機能および ID、ショートカット、およびアップグレード可能なアプリケーションに関する情報を示します。

これらの要素は、コードにより内部的に使用されるだけで、実際のカスタマイズを表すものではありません。

<SecurityApps>

OCT の [設定\Office セキュリティ設定] の [以下のパスを信頼できる場所の一覧に追加する] 領域で、ドロップダウン リストに表示される、安全な場所が含まれるアプリケーションの一覧を示します。

これらの要素は、コードにより内部的に使用されるだけで、実際のカスタマイズを表すものではありません。

<SecurityAppSettings>

OCT の [設定\Office セキュリティ設定] 領域に表示されるセキュリティ設定の一覧を示します。この一覧に対するカスタマイズは、後の <SecuritySettings> 要素に表示されます。

これらの要素は、コードにより内部的に使用されるだけで、実際のカスタマイズを表すものではありません。

<SecurityPossibleSettingValues>

<SecurityAppSettings> で使用できるセキュリティ オプションの一覧を示します。

これらの要素は、コードにより内部的に使用されるだけで、実際のカスタマイズを表すものではありません。

<GlobalSettings>

OCT の [設定\セットアップのプロパティの変更] セクションにあるセットアップのプロパティに関する情報を示します。

<UserSettings>

OCT の [機能\ユーザー設定の変更] セクションで構成されているすべての設定に関する情報とレジストリ キー データを示します。

<File>

OCT の [追加内容\ファイルの追加] オプションまたは [ファイルの削除] オプションを使用して追加または削除されたすべてのファイルに関する情報を示します。

<Registry>

OCT の [追加内容\レジストリ エントリの追加] または [レジストリ エントリの削除] オプションを使用して追加または削除されたすべてのレジストリ エントリに関する情報を示します。

<Shortcuts>

OCT の [追加内容\ショートカットの構成] オプションを使用して追加されたショートカットに関する情報を示します。

<Install>

OCT の [設定\インストール先と組織名]、[設定\追加のネットワーク ソース]、および [設定\使用許諾契約とユーザー インターフェイス] の各オプションにあるインストール設定に関する情報を示します。

<ChildInstalls>

OCT の [設定\インストール環境の追加とプログラムの実行] オプションにあるその他のポストインストール アクションに関する情報を示します。

<Options>

アプリケーションの機能の状態に関する設定を示します。

<SecuritySettings>

既定のセキュリティ設定に対して、OCT の [設定\Office セキュリティ設定\既定のセキュリティ設定] セクションを使って行われた変更に関する情報を示します。

<SecurityTrustedLocations>

OCT の [設定\Office セキュリティ設定] オプションの [以下のパスを信頼できる場所の一覧に追加する] で追加された信頼できる場所に関する情報を示します。

<SecurityCertificates>

OCT の [設定\Office セキュリティ設定] オプションの [以下のデジタル証明書を信頼できる発行元の一覧に追加する] で追加された証明書に関する情報を示します。

<Outlook>

OCT の [Outlook] オプションで作成された [Outlook プロファイル] カスタマイズに関する情報を示します。

以下の例は、OCT の MSP カスタマイズ ファイルを使って ExtractOctXml.vbs スクリプトを実行したときに Internet Explorer で開く XML ファイル内で、設定を見つける方法を示します。

この例では、Microsoft Office Professional 2007 と MSP カスタマイズ ファイルを使用します。Microsoft Office Access 2007 だけがインストールされており、Access の既定のファイル形式には Access 2007 が設定されています。Access の [既定のファイル形式] ユーザー設定は、OCT の [ユーザー設定の変更] 画面の [Microsoft Office Access 2007\その他] ノードにあります。

メモ帳などのテキスト エディタを使用して、Access 2007 の OPA 設定ファイル access12.opa を開きます (Office 2007 ソース ファイルの場所のルートにある Admin フォルダにあります)。OCT に表示される [既定のファイル形式] ユーザー設定は、"Default file format" という文字列で示されるので、これを検索します。この結果、access12.opa ファイルの次のセクションが表示されます。

KEYNAME Software\Microsoft\Office\12.0\Access\Settings

PART !!L_Empty DROPDOWNLIST

VALUENAME "Default File Format"

ITEMLIST

NAME !!L_Access2007 VALUE NUMERIC 12 DEFAULT

NAME !!L_Access20022003 VALUE NUMERIC 10

END ITEMLIST

このユーザー設定情報からは、この設定に対応するレジストリ キー (この場合は Software\Microsoft\Office\12.0\Access\Settings) および指定できるレジストリ値を確認できます。Default File Format の値が 12 の場合は既定のファイル形式が Access 2007 に設定され、Default File Format が 10 の場合は既定のファイル形式が Access 2002-2003 に設定されます。

access12.opa ファイルからこの情報を取得したら、目的のレジストリ キーまたはレジストリ値をカスタマイズ metadata.xml ファイルで検索できます (Software\Microsoft\Office\12.0\Access\Settings など)。この例でこれを行うと、metadata.xml ファイルの次のセクションが表示されます。

<AddRegistries>

<AddRegistry root="HKCU" key="Software\Microsoft\Office\12.0\Access\Settings" name="Default File Format" emptykey="false" flags="0" type="0" value="12" guid="{2A044E97-7BB1-4644-BF84-A35A5B2E5D51}" />

OPA ファイルの情報を使用して、Default File Format キーの値が 12 であり、既定のファイル形式が Access 2007 に設定されることを確認できます。

この例で XML ファイルの <Options> セクションがどのように表示されるかを次に示します。

<Option id="ACCESSFiles" installState="3" />

<Option id="Access_PIA" installState="3" />

<Option id="AccessWizards" installState="3" />

<Option id="CalendarControl" installState="3" />

<Option id="DeveloperWizards" installState="3" />

<Option id="AccessHelpFiles" installState="3" />

<Option id="AccessTemplatesIntl" installState="3" />

<Option id="EXCELFiles" installState="1" />

.

.

<Option id="OUTLOOKFiles" installState="1" />

.

.

<Option id="PPTFiles" installState="1" />

OptionState ID の詳細については、記事「2007 Office system の Config.xml ファイル」の「OptionState 要素」セクションを参照してください。