MID サーバーの PowerShell ファイル

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

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

    PSScript.ps1

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

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

    PowerShell credTypes

    PowerShell 認証情報タイプ:

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

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

    終了コード

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

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

    DiagnosticsUtil.psm1

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

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

    図 : 2. PowerShell 認証情報の選択基準
    PowerShell 認証情報の選択基準

    ActiveDirectory.psm1

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

    Exchange.psm1

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

    SCCM.psm1

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