MID Serverの PowerShell ファイル

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む7読むのに数分
  • PowerShell 関数は、PowerShell スクリプト モジュール (*.psm1) ファイル名拡張子を使用するスクリプト ファイル (*.ps1) に保存されます。

    PowerShell 関数は、次のアクティビティパックに含まれる PowerShell MID Server スクリプト ファイルによって使用されます。
    • Active Directory
    • Exchange
    • SCCM
    • PowerShell

    PSScript.ps1

    このスクリプトは、資格情報のテスト、パスワードの暗号化、Orchestration アクティビティデザイナーまたは MID スクリプト ファイルで設定されたスクリプトの実行など、いくつかのタスクを実行します。ただし、この文書は、PSScript.ps1 がリモート ホストへのアクセスをテストするために credential.psm1 モジュールを使用する方法について説明します。

    通常、PowerShell 変数は、PowerShell 実行コマンドで直接使用するか、指定した MID Server スクリプト ファイルの引数として使用します。credType など、PSScript.ps1 に渡される特別な変数があります。
    図 : 1. 実行パラメーターで credType を使用する
    実行パラメーターで credType を使用する

    PowerShell credTypes

    PowerShell 資格情報タイプ:

    タイプ 説明
    WMI testCredentialWMI
    Exchange testCredentilExchange
    AD testCredentilAD
    SCCM testCredentilSCCM

    PSScrip.ps1 スクリプトに資格情報タイプが渡されない場合、MID Serverは、ターゲット ホストへのアクセスをテストするために WMI テスト関数をデフォルトに設定します。資格情報タイプを使用する場合、MID Serverはその資格情報タイプに対応するテスト関数を実行します。

    終了コード

    次の終了コードは、PSScript.ps1 スクリプトから返され、MID Serverのログ ファイルに記録されます。

    表 : 1. PSScript.ps1 終了コード
    タイプ テスト関数
    0 PowerShell コマンド/スクリプトが正常に実行されました。
    1 テストは正常に終了しましたが、コマンド/スクリプトの実行に失敗しました。
    2 不正な構文がスクリプトに渡されました。
    3 MID Server サービス アカウントを含むすべての資格情報がコマンド/スクリプトを実行できませんでした。
    4 テストに合格し、アクティビティを実行しましたが、エラーが返されました。ユーザーの例が見つかりません。

    DiagnosticsUtil.psm1

    MID Serverはこのモジュール ファイルを使用して、PowerShell スクリプトを使用して Orchestration アクティビティのデバッグをサポートする PowerShell ロギングを実行します。デバッグ ステートメントをカスタム スクリプトに直接追加することもできます。
    表 : 2. PowerShell 診断ユーティリティ
    ユーティリティ 説明
    SNCLog-DebugInfo PowerShell スクリプトまたは PowerShell Orchestration アクティビティ用のデバッグ メッセージを記録します。例:
    • SNCLog-DebugInfo -message "My debug message..."
    • SNCLog-DebugInfo "My debug message"
    SNCLog-ParameterInfo 関数のパラメーター値を記録します。"function getHostName{ param( [String] $target )" の場合、PowerShell ハッシュテーブルは、実行する関数を示す文字列と、それぞれの関数パラメーターの値です。例:
    • 単一パラメーターを持つ関数:SNCLog-ParameterInfo @("Running getHostName", $target)
      注:
      デバッグ メッセージは、'Running getHostName $target:[actual value of $target]' となります。
    • 複数のパラメーターを持つ関数:SNCLog-ParameterInfo @("Running functionName", $param1, $param2, $param3)
    SNCObfuscate-Value セキュリティ上の理由から値を暗号化するには、このユーティリティを使用します。関数には "$variableName":*** と表示されます。*** は難読化された値です。例:
    SNCObfuscate-Value $password
    注:
    デバッグ メッセージは "$password : ***" となります。

    Credentials.psm1

    MID Serverはこのモジュール ファイルを使用して、ターゲット ホストへのアクセスをテストします。MID Serverは、PowerShell アクティビティで資格情報タイプ credType が定義されるまで、次のアクセス タイプ関数を使用して自身の資格情報テーブル内に保存されているすべての Windows 資格情報間をループします。ServiceNow® で作成されたすべての PowerShell アクティビティは、特定の資格情報タイプを使用するようにハードコードされています。その結果、MID Serverは指定された関数に対する資格情報アクセスのみをテストします。
    表 : 3. PowerShell のテスト関数
    関数 説明
    testCredentialWMI Get-WMI オブジェクトを使用して、ターゲットホストで指定されたユーザーとパスワードをテストします。
    testCredentilAD 組み込まれている DirectoryEntry オブジェクトを使用して、ターゲットホストで指定されたユーザーとパスワードをテストします。
    testCredentialExchange 指定されたユーザーとパスワードをテストして Exchange ホストでセッションを作成します。このテストでは、リモート ホストで組み込まれている PowerShell リモート機能を使用します。WinRM は Exchange サーバー上にデフォルトで設定されます。
    testCredentialSCCM 指定されたユーザーとパスワードをテストして、SCCM サーバーでセッションを作成します。このテストでは、リモート ホストで組み込まれている PowerShell リモート機能を使用します。このテストでは、WinRM を設定する必要があります。
    testNoCredentialAccessWMI Get-WMI オブジェクトを使用して、ターゲットホストで指定されたユーザーとパスワードをテストします。credType が使用されない場合にこのテストを使用します。
    注:
    これらの機能のいずれかを使用してテストに合格すると、その資格情報が PowerShell スクリプト/コマンドの実行に使用されます。これらの機能を使用してターゲット ホストへのアクセスのテストに失敗した場合、MID Serverは MID Server サービスのアカウントで PowerShell スクリプト/コマンドを実行します。

    次の図は、PowerShell アクティビティの対象となるホストでの資格情報の選択動作の依存関係を示しています。ターゲット ホストが MID Serverの IP アドレスまたはホスト名の場合、MID Serverは Credentials テーブルのすべての資格情報をバイパスし、MID Server サービスのアカウントを使用します。ターゲット ホストが MID Serverではない場合、すべての Windows 資格情報が最初に使用されます。PowerShell アクティビティの実行時に Credentials テーブルのすべての資格情報が失敗した場合、MID Serverは MID Server サービス アカウントを使用します。

    図 : 2. PowerShell 資格情報の選択基準
    PowerShell 資格情報の選択基準

    ActiveDirectory.psm1

    このモジュール ファイルには、Active Directory アクティビティパックに付属する PowerShell スクリプトで使用される関数が保存されています。

    Exchange.psm1

    このモジュール ファイルには、Exchange アクティビティパックに付属する PowerShell スクリプトで使用される関数が保存されています。

    SCCM.psm1

    このモジュール ファイルには、SCCM アクティビティパックに付属する PowerShell スクリプトで使用される関数が保存されています。