スクリプト ライブラリ管理

この記事には、以下のトピックが含まれています。
casm173
この記事には、以下のトピックが含まれています。
同じスクリプト機能を使用して特定のデータを収集するか、または各種の自動タスクでリモート マシンに特定の変更を行うことができます。 サポート オートメーションには、このような再利用可能コードをパッケージするスクリプト ライブラリの概念が用意されています。 スクリプト ライブラリは、コードの再利用およびメンテナンスに役立ちます。 これらのライブラリには、自動タスクが呼び出すことのできる、JavaScript または VBScript で作成された関数が含まれています。 自動化タスク エディタの自動コード完了機能により、自動タスク ステップ スクリプト コードを編集するときに、関数の説明文と引数の説明が提供されます。
独自のライブラリを作成することができます。 自動化タスク エディタでは、定義済みの JavaScript ライブラリと VBScript ライブラリが左ペインに表示されます。 スクリプト ライブラリでは、以下の操作を実行できます。
  • ライブラリおよび関数を作成する。
  • 関数の引数の説明を提供する。
  • XSDF ファイルから、または直接にサポート オートメーション サーバから、エクスポートおよびインポートする。
  • 関数の名前、説明、引数、およびスクリプト テキストを定義する。
ライブラリ関数からオブジェクトを返す
HTML コンポーネントを作成するライブラリ関数などのように、ライブラリ関数を使ってオブジェクトのインスタンスを返すことができます。 オブジェクトを返すには、クラスを宣言し、そのクラスのインスタンスをインスタンス化する必要があります。 クラス宣言は、JavaScript と VBScript で方法が異なります。
JavaScript では、クラスの実際のコンストラクタになる関数を宣言してクラスを定義します。 パブリック プロパティとメソッドは、
this
キーワードを使ってクラスに追加します。 プライベート プロパティは
var
キーワードを使って宣言します。 JavaScript では、関数定義の中にクラスを宣言できます。
VBScript では、関数内にクラスを定義できません。ただし、指定した関数を実装するコードは記述できます。 以下のいずれかの方法を使って、クラス定義を作成します。
  • 文字列としてクラス定義コードを作成し、それを
    ExecuteGlobal
    で実行します。
  • 2 番目の関数をコールし、この関数で返されるものをすべて返します。 関数を終了します。 クラスを宣言し、次に 2 番目の関数を宣言します。
ローカル ファイル システム/レジストリ アクセス
多くの自動タスクで、ファイル システムまたはレジストリの読み取りまたは変更が必要になります。 Windows Script Host(WSH)には、スクリプトによってファイル システムまたはレジストリの読み取りまたは変更を可能にする、いくつかのスクリプト可能な COM コンポーネント(FileSystemObject など)が用意されています。 一部のアンチウィルス プログラムには、これらの COM コンポーネントを妨げるスクリプト ブロッカ ユーティリティが実装されており、関連するコンポーネントをインスタンス化しようとするスクリプトがあると、悪意のあるものとしてそのスクリプトにフラグが立てられます。 スクリプト ブロッカが、問題を修正している信頼できるアナリストの作業の邪魔をすることが望ましくないのは、言うまでもありません。 CA SDM 関数のライブラリには、スクリプト ブロッカー プログラムのアクションの影響を受けることなく、Windows コンポーネントで見られるのとほぼ同じ機能を可能にするファイル システムやレジストリを扱う関数が含まれています。
標準の WSH コンポーネントは、エンド ユーザ コンピュータの状態が既知であり、かつスクリプト ブロッカが存在しないことを前提とする、社内環境向けの自動タスクを作成する場合に使用されます。 サポートを提供している組織がエンド ユーザのコンピュータ環境設定を管理しない場合、外部の環境(自宅やパブリック インターネット)に対するファイル システム、またはレジストリ活動の実装では、 CA SDM 関数の COM コンポーネントの機能性を使用できます。
Windows Management Instrumentation(WMI)のサポート
自動タスクは、Windows Management Instrumentation (WMI)をサポートしています。これは Windows オペレーティング システムのコンポーネントであり、企業環境に管理情報と制御機能を提供します。 業界標準の WMI を使って、デスクトップ システム、アプリケーション、ネットワーク、その他エンタープライズ コンポーネントに関する情報の照会や設定が可能です。
WMI では、オペレーティング システムにアクセスして変更することができます。 WMI は、SQL スタイルのクエリを基本としており、自動タスクでオペレーティング システムに情報を問い合わせ、オブジェクトを使ってそのデータを操作できます。 WMI は強力なシステムであるため、自動タスクでそれぞれの目的を達成するためによく使われる方法です。
例: 現在設定されているオペレーティング システム サービスを列挙するスクリプトの一部
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colRunningServices = objWMIService.ExecQuery("Select * from Win32_Service") For Each objService in colRunningServices Wscript.Echo objService.DisplayName & VbTab & objService.State Next
静的コンテンツ管理
自動タスクは、正しく表示するにはイメージや CSS ファイルを使用する必要があるユーザ インターフェースを表示することがあります。 自動タスクが静的コンテンツに従属するように、この静的コンテンツ(イメージおよび CSS ファイル)は自動タスク定義に関連付けます。 以下を実行できます。
  • 静的コンテンツをインポートして、自動タスクに関連付ける。
  • 追加、編集、削除、およびサポート オートメーション サーバへのアップロードを行う。
  • イメージまたはテキスト ファイルを選択して、グローバル一意識別子(GUID)を割り当てる。
  • 自動化タスク エディタを使用して、自動タスクに静的コンテンツを割り当てる。
静的コンテンツ アイテムを割り当てるときに、自動タスクを関連付けます。これで、静的コンテンツ アイテムは、タスクと共に XSDF で保存されます。 静的コンテンツは、従属する自動タスクが展開されると、自動的にサーバに展開されます。
静的コンテンツは、サーバ上のサポート オートメーション データベースに保管されます。 サーブレットが、これらのイメージの ID に基づいて、イメージへのアクセスを提供します。 関数ライブラリ コール
Functions.GetStaticContentItemRef()
により、そのサーブレットに URL が返され、サーブレットはパラメータとして ID を取得します。 自動化タスク エディタには、[静的コンテンツ アイテム]ダイアログ ボックスを表示するツール ボタンがあり、ここで、目的のアイテムを選択することができます。 [OK]をクリックすると、
Functions.GetStaticContentItemRef()
コールが、関連 ID と共に、自動的にコードに挿入されます。
静的コンテンツには、コンテンツ当たり 50 KB という制限があります。
関数と WScript の使用
CA SDM で実行するすべての自動タスクにアクセスできる、スクリプト可能な 2 つの COM コンポーネントがフレームワークとして用意されています。 これらの COM コンポーネントとは関数と WScript です。
関数
関数コンポーネントは、以下で使われるプロシージャ コールの集まりです。
  • ウィルス対策プログラムのスクリプト ブロッカーを起動せずにローカル ファイル システムやレジストリにアクセスする
  • 以下に示すサポート オートメーション サーバ機能にアクセスする
    • セッション ログ エントリの書き込み
    • 自動タスクで取得したデータの格納
    • 自動タスクの実行状態の設定
    • 電子メールの送信
    • 製品間のエスカレート
    • カスタム サーバ ルーチンの実行