PowerShell プローブ

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:4分
  • PowerShell プローブは、MID サーバーホストで PowerShell V2 スクリプトを実行します。

    PowerShell スクリプトは、パラメーター名としてファイル名を持つプローブパラメーターとして定義されます。プローブの ECC キュートピックとして PowerShell を指定すると、プローブのプローブタイプとして使用できます。

    PowerShell プローブパラメーター

    パラメーター名 説明
    ソース [必要] 接続する最初のホストです。

    デフォルト:なし

    <script name>.ps1

    [必要] 実行する PowerShell スクリプトのファイル名です。有効なファイル名のプリフィックスで <script name> を置き換えます。

    デフォルト:なし

    powershell_command_parameter_passing

    コマンドラインでスクリプトパラメーターを渡すかどうかを指定します。このパラメーターの値に関係なく、ServiceNow ではコマンドライン上のすべてのスクリプトパラメーターを環境変数として自動的に PowerShell スクリプトで使用できるようにしています。

    デフォルト:false

    powershell_param_<script parameter name> 実行する PowerShell スクリプトに追加のパラメーターを渡します。各パラメーターは、スクリプト内では $env:SNC_<script parameter name> という形式の環境変数になります。このプリフィックスを持つパラメーターは暗号化されていないとみなされ、そのままスクリプトに渡されます。powershell_param_<script parameter name>powershell_<script parameter name> の間で適切なパラメーターを選択していることを確認してください。誤ったプリフィックスを使用すると、PowerShell の実行でエラーが発生します。これは、ECC キュー入力内のインスタンスに戻されます。

    デフォルト:なし

    powershell_<script parameter name>

    実行する PowerShell スクリプトに追加のパラメーターを渡します。各パラメーターは、スクリプト内では $env:SNC_<script parameter name> という形式の環境変数になります。MID サーバーでは、このプリフィックスを持つすべてのパラメーターが暗号化され、復号化が試行されることを前提としています。powershell_param_<script parameter name>powershell_<script parameter name> の間で適切なパラメーターを選択していることを確認してください。誤ったプリフィックスを使用すると、PowerShell の実行でエラーが発生します。これは、ECC キュー入力内のインスタンスに戻されます。

    デフォルト:なし

    debug プローブ中のデバッグログ出力を有効にします。

    デフォルト:false

    credentials_debug ECC キューに <credentials_debug> セクションを表示します。これは認証情報のトラブルシューティングに役立ちます。このプロパティを true に設定すると、認証情報に問題がない場合でも、認証情報のトラブルシューティング情報が ECC キューに出力されます。

    デフォルト:false

    スクリプト要件

    カスタム PowerShell スクリプトは、任意の非ブーリアンコマンドラインパラメーターを渡すために環境変数を使用する必要があります。スクリプトの Param() 部の非ブーリアンパラメーターを、同じ名前のスクリプト変数に置き換えます。SNC_ のプリフィックスを持つ環境の一部としてスクリプト変数を定義します。したがって、次のような文字列パラメーターは、

    Param([string]$paramName)

    次のようなスクリプト変数になります。

    if(test-path env:\SNC_paramName) {
        $paramName = $env:SNC_paramName
    }

    たとえば、PSScript.ps1 スクリプトからのこのパラメーター定義には、スクリプト変数としての再定義が必要な複数の文字列パラメーターが含まれています。

    Param([string]$computer, [string]$script, [string]$user, [string]$password, [boolean]$useCred, [boolean]$isDiscovery, [boolean]$debug)

    非ブーリアンパラメーターをスクリプト変数として定義すると、次のようなスクリプトが生成されます。

    Param([boolean]$useCred, [boolean]$isDiscovery, [boolean]$debug)
     
    # Copy the environment variables to the params
    if(test-path env:\SNC_computer) {
      $computer=$env:SNC_computer
    }
     
    if(test-path env:\SNC_script) {
      $script=$env:SNC_script
    }
     
    if(test-path env:\SNC_user) {
      $user=$env:SNC_user
      $password=$env:SNC_password
    }