Mac 上でリモートアクション用スクリプトを作成する
この記事で説明されている操作の実行についてサポートが必要な場合は、Nexthink認定パートナーにお問い合わせください。
このページでは、MacでNexthinkリモートアクションスクリプトを準備する方法について説明します。 スクリプトは、多くのUNIX系オペレーティングシステムでサポートされているコマンドラインシェルおよびスクリプト言語であるBashで作成し、セキュリティのために証明書で署名します。
Bashスクリプトは、タスクの自動化および構成管理に適しており、従業員のデバイスでリモートアクションを実行できます。
現在、Mobile Accountsが有効なmacOSデバイスでは、リモートアクションはサポートされていません。 このモードでは、アクションが成功したように見えても、実際には変更が適用されません。
リモートアクションの主なユースケースには、デバイスからのオンデマンドデータ収集、自己修復タスク、および構成設定の変更が含まれます。
この記事は、読者がBashスクリプティングに精通していることを前提としています。
詳細については、CommunityのRemote actionsグループのドキュメントを参照してください。
スクリプトを安全に実行する方法の詳細については、Nexthink SecurityのRemote Actionsのセキュリティベストプラクティスを参照してください。
スクリプトの作成
汎用スクリプトと入力変数
汎用スクリプトは、デジタル署名済みスクリプトをカスタマイズする必要がある場合に役立ちます。 署名済みスクリプトを変更すると署名が無効になりますが、汎用スクリプトは署名を維持したままパラメータでカスタマイズできます。
Bashの位置パラメータ用のパラメータをスクリプトの先頭で宣言し、次のように一対の特別なコメントで囲みます:
# NXT_PARAMETERS_BEGIN
Parameter1=$1
Parameter2=$2
Parameter3=$3
# NXT_PARAMETERS_ENDリモートアクションの設定時にスクリプトをアップロードすると、システムはBashスクリプト内の特別なNexthinkコメントの間にあるパラメータを取得します。 これらはスクリプトテキストの下にあるパラメータセクションに一覧表示されます。 各パラメータ名の右側に表示されるテキスト入力ボックスに、パラメータの実際の値を入力します。
実際の値は常にテキストとしてスクリプトに渡されます。 スクリプトでstring以外の型のパラメータを宣言している場合は、スクリプトが想定する型に変換できる値を指定してください。
出力変数の作成
スクリプトを実行すると、オンデマンドデータとして保存したい出力が生成される場合があります。 Nexthinkは、Collectorと同時に従業員のデバイスにインストールされるBashスクリプト(nxt_ra_script_output.sh)を提供します。 このスクリプトには、結果をデータレイヤーに書き込む関数が含まれています。
リモートアクションの出力でNexthinkスクリプトの関数を使用するには、Bashスクリプトの先頭に次のヘッダーを追加します:
すべての書き込みメソッドは、出力名と書き込む値を引数として受け取ります。 たとえば、ディレクトリ内のファイル数をデータレイヤーに返す場合、スクリプト内の変数nfilesにその数が格納されます。 FileNumberという名前の出力を介してnfilesの値をデータレイヤーに書き込むには、符号なし整数を書き込む関数を呼び出します:
Remote Actionsエディタはスクリプト内の出力書き込み呼び出しを認識し、出力変数を「出力」セクションに一覧表示します。 調査およびメトリクスでの参照方法を示すように、出力のラベルを設定します。
各writeメソッドの末尾は出力の型を示します。 Bashは緩やかな型付けの言語であるため、出力の型はコンテキストに応じて解釈されます。 使用可能なメソッドの一覧は次のとおりです:
nxt_write_output_string
0 ~ 1024 バイト(大きい場合は出力が切り捨てられます)
nxt_write_output_bool
true / false
nxt_write_output_uint32
最小: 0
最大: 4 294 967 295
nxt_write_output_float
最小: -3.4E+38
最大: 3.4E+38
nxt_write_output_size
最小: 0
最大: 3.4E+38
nxt_write_output_ratio
nxt_write_output_bitrate
nxt_write_output_duration
最小: 0 ms
最大: 49日
ミリ秒単位の精度
nxt_write_output_date_time
想定値: エポック時刻(整数)
出力: YYYY-MM-DD HH:MM:SS
nxt_write_output_string_list
0 ~ 1024 バイト(大きい場合は出力が切り捨てられます)
出力フィールドの定義
スクリプトを作成するときは、必ず次の点を確認してください:
すべての出力フィールド名を事前に定義する: これにより、スクリプトの実行中に出力テーブルの正しいフィールドが確実に入力されます。 predefined な field 名がない場合、script は output schema が不明なため失敗する可能性があります。
出力フィールド名は常に
string形式である必要があります。例:
nxt_write_output_string 'output_field_name' "$output_value"
出力フィールドの数を定義する: スクリプトでは常に、固定数の出力フィールドを指定する必要があります。 固定スキーマにより、結果の予測可能性と互換性が確保されます。
動的なフィールドを避けてください。 動的な出力構造は、プラットフォームにおける不整合や処理エラーを引き起こす可能性があります。
スクリプトを実行する際に、出力フィールドを定義するためにループを使用することは避けてください。
キャンペーンの実装
リモートアクションとキャンペーンを組み合わせて、従業員が自立して問題を解決できるようにします。 キャンペーンを使用すると、問題が検出されたことを従業員に通知し、その解決に向けて案内できます。
デバイスを操作している従業員のデスクトップにキャンペーンを表示するには:
キャンペーンには リモートアクション のトリガーがあり、公開されている必要があります。
リモートアクションのスクリプトは、次のいずれかの方法で実行できます。
アクションに特別な権限が不要な場合は、従業員のコンテキストで実行されます。
ローカル システム アカウントのコンテキストで、アクションに管理者特権が必要な場合。
キャンペーン識別子の取得
リモートアクションからキャンペーンを実行するためのメソッドでは、引数としてキャンペーン識別子を渡す必要があります。 キャンペーンの NQL ID(推奨)とキャンペーンの UID(従来のオプション)の両方を使用できます。
キャンペーン識別子をリモートアクションに渡すには、必要な各キャンペーンごとに、リモートアクションのスクリプト内でパラメーターを宣言します。 リモートアクションを編集する際、パラメーターの実際の値として NQL ID(または UID)を使用します。
NQL IDまたはキャンペーンのUIDの取得方法については、キャンペーンのトリガーのドキュメントを参照してください。
リモートアクションのスクリプトからキャンペーンを実行する
エラーログは /Library/Logs/nxtcod.log にあります。
これはファイル構造によって異なる場合があります。
以下の関数は、リモートアクションのスクリプト機能を拡張します。
この関数は、パラメーターとして渡された NQL ID(推奨)または UID に一致するキャンペーンを実行し、回答を内部に保存します。
キャンペーンのステータスが受信された場合、関数は 0 を返します。
その他のすべての場合には関数は 1 を返し、エラーはログに記録されます。
この関数を呼び出すと、従業員がキャンペーンを完了するか却下するまで、リモートアクションの実行が一時停止されます。
この関数は、パラメーターとして渡されたタイムアウト(秒単位、0 < T < 1 週間)を用いて、NQL ID(推奨)または UID に一致するキャンペーンを実行し、回答を内部に保存します。
キャンペーンのステータスを受信した場合、関数は 0 を返します。
関数はその他のすべての場合に 1 を返し、エラーはログに記録されます。
この関数を呼び出すと、従業員がキャンペーンを完了するか、却下するか、タイムアウトまでにキャンペーンを完了できなかった場合のいずれかになるまで、リモートアクションの実行が一時停止されます。
この関数は、パラメーターとして渡された NQL ID(推奨)または UID に一致するキャンペーンを実行し、回答を内部に保存します。
キャンペーンのステータスが受信された場合、関数は 0 を返します。
その他すべての場合には関数は1を返し、エラーはログに記録されます。
関数を呼び出すとキャンペーンが開始され、従業員の回答を待たずにリモートアクションの実行が継続されます。
関数:
キャンペーンステータスが
res_varに正常に保存された場合は 0 を返します。それ以外の場合は 1 を返します。
その後、キャンペーンのステータスを文字列値として抽出し、指定された変数 res_var に保存します。 関数が結果として 0 を返した場合、res_var には次のいずれかの値が設定されます。
完全: 従業員はキャンペーンの質問に完全に回答しました。
timeout:ユーザーが回答を終える前にキャンペーンがタイムアウトしました。
postponed:従業員はキャンペーンへの参加に同意しました。
declined:従業員はキャンペーンへの参加を辞退しました。
connectionfailed: スクリプトがキャンペーン通知を制御する Collector コンポーネントに接続できませんでした。
notificationfailed: スクリプトは、次のいずれかの理由によりキャンペーンを正常に表示できませんでした:
キャンペーンが存在しない、または未公開のため、プラットフォームからキャンペーン定義を取得できませんでした。
別のキャンペーンが従業員にすでに表示されています。
フォーカス保護またはCollectorの「通知しない」ルールにより、非緊急のキャンペーンを表示できません。 詳細については、キャンペーンの受信率を制限するドキュメントを参照してください。
最後のキャンペーンが失敗した場合は空になります。
質問ラベルを文字列パラメーター query_key として使用して、最後のキャンペーンをクエリします。 この関数は回答を文字列値として抽出し、指定された変数 res_var に保存します。
キャンペーンの回答が
res_varに正常に保存された場合は 0 を返します。それ以外の場合は 1 を返します。
スクリプトのエンコード
リモートアクション用の Bash スクリプトを作成するには:
スクリプトを含むファイルを UTF-8(BOM なし)でエンコードしてください。
コード内の各行は、UNIX システムで通常使用される文字「LF」で終わらせてください。
エラーやスクリプトの不具合を防ぐため、適切なエンコードを使用してください。
コード例
<0>キャンペーンの呼び出し</0>
この例では、リモートアクションが ID を使用して基本的なキャンペーン呼び出しを実行し、成功した場合はステータスメッセージを、失敗した場合はエラーメッセージを出力します。
レスポンスへのアクセス
この例では、リモートアクションがキャンペーンの回答データを要求し、配列として出力します。 各回答は、それぞれ対応する番号付きオプションで表されます。 Bash は最小の選択肢として 0 を使用しますが、Zsh は 1 を使用します。
<0>タイムアウト付きでキャンペーンを実行する</0>
この例では、リモートアクションが、秒を入力として指定した時間後にタイムアウトして終了するキャンペーンを実行するように設定されています。
<0>非ブロッキングキャンペーンの実行</0>
この例では、リモートアクションはユーザー入力を必要とせず、キャンペーンをトリガーした後も実行を続けます。 ユーザーはいつでもキャンペーンを閉じることができます。 これは主に、データを取得するのではなく、ユーザーに情報を提供するために使用されます。
詳細については、魅力的なキャンペーンの実施ドキュメントを参照してください。
スクリプトの署名
Nexthink は、macOS 上で署名されたスクリプトを検証するために、システム証明書ストアに依存する方法と、証明書ピンニングを使用する方法の 2 つのアプローチをサポートしています。 どちらの方法でもスクリプトの完全性は確保されますが、証明書ピンニングを使用することで、macOS の証明書信頼に依存せずに済み、Apple がセキュリティモデルを進化させ続ける中でも、より堅牢なソリューションを提供できます。
macOS で信頼性の高いスクリプト署名を行うには、login.keychain に保存された証明書を使用してください。 System.keychain 内の証明書は、特に自動化された非対話型環境では、プライベートキーへのアクセスが制限されているために失敗する可能性があります。
セキュリティ上の理由から、NexthinkではmacOS上のリモートアクション用Bashスクリプトをcodesignツールでデジタル署名する必要があります。 Apple は署名をファイルの拡張属性に保存します。 拡張属性を保持するため、署名済みスクリプトをtar.gzファイルとしてパッケージ化します。 Nexthink の Web インターフェイスは、macOS を対象とするリモートアクション用のスクリプトをインポートする際、tar.gz ファイルのみを受け付けます。
Nexthinkでは、本番環境のすべてのスクリプトに署名することを推奨しています。 未署名のスクリプトはテスト環境でのみ使用してください。
オプション 1:証明書ピンニング(Nexthink 推奨)
証明書ピンニングが有効な場合、署名されていないスクリプトは実行されません。 Collector は、SHA-256 フィンガープリントが設定済みの cert_fingerprints の値と一致する証明書で署名された場合にのみスクリプトを実行します。
サポートされている実行ポリシーには、signed_pinned と signed_pinned_or_nexthink が含まれます。 後者では、設定内で Nexthink 証明書のフィンガープリントを必要とせずに、Nexthink Library のリモートアクションを実行できるようになります。
Collectorバージョン2025.9.1.x以降、MacOS Collectorでは、実行できるスクリプトを制御するための追加の実行ポリシーがサポートされています。 このセクションでは、その詳細について説明します。
新しい実行ポリシー
macOSには、以下の新しい実行ポリシーが導入されています:
signed_pinned
signed_pinned_or_nexthink
さらに、新しいインストーラーオプションcert_fingerprintsが追加されました。
「cert_fingerprints」インストーラーオプション
cert_fingerprintsオプションでは、スクリプト署名サムプリントの許可リストを定義できます(単一の,文字で区切り、前後にスペースを入れません)。 スクリプト署名のサムプリントは リーフ証明書 のサムプリントと一致している必要があります。
次のスクリプトを使用して、署名済みスクリプトファイルのリーフ証明書のサムプリントを抽出できます:
cert_fingerprintsオプションは、新しい実行ポリシー(signed_pinnedおよびsigned_pinned_or_nexthink)を使用する場合にのみ適用されます。 他の実行ポリシーには影響しません。
ポリシーの動作
signed_pinned
未署名のスクリプトは許可されません。 実行時に失敗し、Collectorは該当するステータスを報告します。
Nexthink LibraryのRAスクリプト:
cert_fingerprintsに署名のリーフ証明書のサムプリントが含まれている場合にのみ実行が許可されます。 それ以外の場合、実行はブロックされ、ステータスが報告されます。その他のスクリプト:
cert_fingerprintsに署名のリーフ証明書のサムプリントが含まれている場合にのみ実行が許可されます。 それ以外の場合、実行はブロックされ、ステータスが報告されます。
signed_pinned_or_nexthink
未署名のスクリプトは許可されません。 実行時に失敗し、Collectorは該当するステータスを報告します。
Nexthink LibraryのRAスクリプト: 常に実行が許可されます(ポリシーによってブロックされません)。
その他のスクリプト:
cert_fingerprintsに署名のリーフ証明書のサムプリントが含まれている場合にのみ実行が許可されます。 それ以外の場合、実行はブロックされ、ステータスが報告されます。
実行ポリシーの概要表
signed_trusted(既存)
ブロック
ブロック
信頼された証明書による署名の場合に許可
影響なし
signed_trusted_or_nexthink(既存)
ブロック
常に許可
信頼された証明書による署名の場合に許可
影響なし
signed_pinned
ブロック
許可リスト(cert_fingerprints)にサムプリントが含まれる場合に許可
許可リスト(cert_fingerprints)にサムプリントが含まれる場合に許可
必要
signed_pinned_or_nexthink
ブロック
常に許可
許可リスト(cert_fingerprints)にサムプリントが含まれる場合に許可
必要
証明書ピン留め用のコード署名証明書を作成する
証明書ピンニングでは、あらゆる種類のコード署名証明書がサポートされます:
AppleのDeveloperサイトで作成したコード署名証明書
AppleのCertificate Assistantで作成したコード署名証明書
プライベートRoot CAを使用するコード署名証明書
パブリックRoot CAを使用するコード署名証明書
その他のあらゆる種類
プライベートRoot CAを使用するコード署名証明書を使用する場合は、具体的な手順を上記で確認できます。
署名済みリモートアクションスクリプトのパッケージ化と既知の制限事項
コード署名証明書を作成したら、それをダブルクリックしてKeychain Accessアプリケーションで開きます。 証明書を右クリックし、「情報を見る」をクリックします。

下部までスクロールし、そこにあるSHA-1をコピー&ペーストします。 リモートアクションスクリプトの署名に使用するため、値からスペースを削除します。

コード署名証明書を使用してスクリプトに署名します:

以下のようにコマンドを実行して、前のスクリプト署名手順が成功したことを確認します。

パッケージ化
リモートアクションスクリプトを、.tarアーカイブと.gzip圧縮でパッケージ化します。 拡張子「.tar.gz」は必須です。
スクリプトファイルが署名されている場合、tarユーティリティはその拡張属性もパッケージ化します。 これにより、システムはコード署名とスクリプトファイルを転送できます。
制限事項
各アーカイブには、スクリプトを1つだけ格納できます。
スクリプトファイルはルートパッケージフォルダーに配置する必要があります。
./myscript/myscript.shのパスは正しくありません。スクリプトには.sh拡張子が必要です。
スクリプトファイル名はUTF-8でエンコードする必要があります。これはmacOSのデフォルトです。
例
test.shスクリプトをパッケージ化する例:
生成されたexample_ra_script.tar.gzがリモートアクションスクリプトファイルです。
Nexthinkでは、署名とパッケージ化のプロセスを簡略化するために、このスクリプトを使用することを推奨しています。
署名証明書のRoot CAをエンドポイントに展開する
証明書ピン留めでは、証明書をエンドポイントに展開する必要はありません。 上記の説明に従い、すべてのエンドポイントでcert_fingerprints Collectorインストーラーオプションを設定するだけです。
オプション 2: システム証明書ストア(Nexthink は推奨しません)
署名証明書の作成
MacOS Sequoia(バージョン15)以降では、Appleによる変更により、(Windowsで行うように)署名証明書自体をすべてのデバイスに信頼済みとして展開するのではなく、署名証明書のルート認証局(CA)を展開する必要があります。 オペレーティングシステムに事前インストールされているパブリックRoot CAは使用できません。
リモートアクションを実行するすべてのデバイスに、次のいずれかのオプションを展開できます。
リモートアクション専用の自己署名Root CA
企業のRoot CA
以下は、自己署名Root CAを作成し、それを使用してリモートアクションへの署名用コード署名証明書を生成する例です:
MacデバイスでKeychain Accessを起動します。
「Keychain Access」>「Certificate Assistant」> 「証明機関を作成…」 に移動します

認証局の名前を入力します。
ユーザー証明書としてコード署名を選択します。
メールアドレス(管理目的の連絡先)を入力します。
**「作成」**をクリックして証明書を生成します。

以下は、コード署名証明書自体を作成する例です:
MacデバイスでKeychain Accessを起動します。
「Keychain Access」>「Certificate Assistant」> 「証明書を作成…」 に移動します

証明書の名前を入力します。

この証明書の発行者としてRoot CAを選択します。

**「作成」**をクリックして証明書を生成すると、以下のような確認が表示されます。

証明書が作成されると、Keychain Accessアプリケーションで表示されます。 証明書を右クリックし、「情報を見る」をクリックします。

下部までスクロールし、そこにあるSHA-1をコピー&ペーストします。 リモートアクションスクリプトの署名に使用するため、値からスペースを削除します。

コード署名証明書を使用してスクリプトに署名します:

以下のようにコマンドを実行して、前のスクリプト署名手順が成功したことを確認します。

パッケージ化
リモートアクションスクリプトを、.tarアーカイブと.gzip圧縮でパッケージ化します。 拡張子「.tar.gz」は必須です。
スクリプトファイルが署名されている場合、tarユーティリティはその拡張属性もパッケージ化します。 これにより、システムはコード署名とスクリプトファイルを転送できます。
制限事項
各アーカイブには、スクリプトを1つだけ格納できます。
スクリプトファイルはルートパッケージフォルダーに配置する必要があります。
./myscript/myscript.shのパスは正しくありません。スクリプトには.sh拡張子が必要です。
スクリプトファイル名はUTF-8でエンコードする必要があります。これはmacOSのデフォルトです。
例
test.shスクリプトをパッケージ化する例:
生成されたexample_ra_script.tar.gzがリモートアクションスクリプトファイルです。
Nexthinkでは、署名とパッケージ化のプロセスを簡略化するために、このスクリプトを使用することを推奨しています。
Root CAを生成したマシンで署名済みスクリプトをテストする
Root CAを作成した同じマシンで署名済みスクリプトをテストする場合は、次の手順を実行する必要があります。
Root CAをシステムキーチェーンにコピーして信頼済みとしてマークする
Appleはデフォルトで、生成されたRoot CAを**「login」キーチェーンに配置します。 ただし、適切に機能させるには「System」**キーチェーンにインストールする必要があります。
証明書をSystemキーチェーンにコピーするには、次の手順に従います:
Keychain Accessを開きます。
Root CA証明書を右クリックし、**「書き出す」**を選択してエクスポートします。 ポップアップウィンドウで、**Certificate (.cer)**ファイル形式を選択します。

Terminalアプリケーションを開きます。
次のコマンドを実行して、Root CAをSystemキーチェーンにインポートします。
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain Certificate.cerインポート後、証明書がSystemキーチェーンに表示されることを確認します:
Keychain Accessに戻ります。
左側のサイドバーでSystemセクションを選択します。
右上隅の検索バーを使用して証明書を探します。
結果テーブルで、キーチェーン列にSystemと表示されていることを確認します。
Root CA証明書を右クリックし、**「情報を見る」**を選択して、信頼済みとしてマークします。
信頼セクションで、Root CAを信頼済みとしてマークするよう設定を調整します。

署名証明書のRoot CAをエンドポイントに展開する
MacOS Sequoiaバージョン15以降では、Windowsのように署名証明書をすべてのデバイスに信頼済みとして展開するのではなく、署名証明書のルート認証局(CA)を展開する必要があります。
Collector Cloud 24.10.2.10およびCollectorオンプレミス24.10.30.26では、展開済みの署名証明書に代わる方法として、展開済みRoot CAに基づくリモートアクションスクリプトの信頼済みソース検証がサポートされています。
Root CAは複数の方法で展開できますが、主に以下で説明するJAMFを使用した構成プロファイルの作成によって展開します。
Root CAで作成した証明書をエクスポートする
ポップアップウィンドウで、_Certificate (.cer)_ファイル形式を選択します。


上記の構成プロファイルを使用して、すべてのエンドポイントに展開します。 Root CAは自動的に信頼済みとしてマークされます。


証明書がエンドポイントに正しくインポートされたことを確認する
署名済みリモートアクションスクリプトをエンドポイントにコピーし、展開します。
署名を検証します。
署名証明書のRoot CAが正しくインポートされている場合、次の出力が表示されます:

<0>オプション 3: 証明書の生成、署名、デプロイ、検証(非推奨の方法<1>,</1>macOS Sequoia 以降とは互換性がありません)</0>
Root CAを使用しない証明書生成方法
この証明書生成方法はすべてのデバイスで引き続き機能しますが、デバイスで信頼済みとしてマークするにはユーザー操作が必要です。
MacデバイスでKeychain Accessを起動します。
「Keychain Access」>「Certificate Assistant」> 「証明書を作成…」 に移動します

証明書の名前を入力します。
証明書の種類としてコード署名を選択します。
テスト目的の場合、デフォルトを上書きするはオフのままにできます。

「作成」、次に**「完了」**をクリックします。 システムにより証明書が生成されます。

署名
標準のmacOS codesignユーティリティを使用して、リモートアクションスクリプトに署名します。
パラメータ:
コード署名証明書のIDはキーチェーンにあります。 通常、証明書サブジェクトの共通名または証明書ハッシュです。 詳細については、SS64のcodesignマニュアルページを参照してください。
署名の信頼できるタイムスタンプです。
コード署名識別子のプレフィックスです。 企業IDを識別子に付加し、識別子を一意にするのに役立ちます。 コード署名識別子の生成ルールについては、UNIXのcodesignマニュアルページのドキュメントを参照してください。
既存のコード署名がある場合に、強制的に書き換えます。
例
_example_ra_script.sh_リモートアクションスクリプト用テスト証明書の例:
スクリプトファイルの署名は、ファイルに関連付けられたファイルシステムの拡張属性に生成されます。 codesignユーティリティを使用してコード署名の詳細を取得し、署名を検証します:

署名証明書をエンドポイントに展開する
この展開方法は引き続き機能しますが、ユーザー操作が必要です。

ポップアップウィンドウで、パブリック証明書用の_Certificate (.cer)_ファイル形式を選択します。
エンドポイントのキーチェーンに証明書をインポートする
_Trusted Publisher_実行ポリシーでリモートアクションスクリプトを使用するには、コード署名証明書をSystemキーチェーンにインポートします。
.cerファイルをダブルクリックし、キーチェーンドロップダウンメニューでSystemオプションを選択します。

ルートパスワードを入力して証明書をインポートします。

これらのタスクを自動化するには、securityユーティリティ(外部リンク)または自動化フレームワークを使用します。
証明書がエンドポイントに正しくインポートされたことを確認する
署名済みリモートアクションスクリプトをエンドポイントにコピーし、展開します。
署名を検証します。
署名が正しくインポートされている場合、次の出力が表示されます:

スクリプトの保守
比較と検証
リモートアクションスクリプトを展開する前に、Nexthinkが準備した他のスクリプトと比較できます。 この手順は任意ですが、初めてスクリプトを準備する場合は推奨されます。
Nexthink Libraryで、コンテンツを選択します。
リモートアクションでフィルタリングします。
Remote Actions管理ページに移動します。
対象のオペレーティングシステムに一致し、Nexthink Libraryから直接インストールされた任意のリモートアクションスクリプトを選択します。
スクリプトをエクスポートし、構文を自分のスクリプトと比較します。
スクリプトの終了とタイムアウト
リモートアクションスクリプトからサブプロセスを起動した場合、リモートアクションスクリプトが終了またはタイムアウトすると、Collectorがサブプロセスを自動的に終了します。 リモートアクションの終了後もサブプロセスを実行し続けるには、たとえば次のように、スクリプトで&文字を使用してサブプロセスをデタッチしてください:
Zshコマンドインタープリター
Collectorバージョン6.27.2以降では、Zsh Unixシェル用に記述されたスクリプトを実行できます。 シェルスクリプトの先頭に、次のコード行を追加する必要があります:
これはシバン(外部リンク)と呼ばれる文字列です。
システムが Mac でリモートアクションをトリガーすると、Collector はコードの先頭行を確認し、指定されたインタープリターを使用して残りの命令を実行します。 _shebang_のないスクリプトは、Bashコマンドインタープリターで実行されます。
Nexthink では、シェルスクリプトには常に shebang を使用し、標準的なインタープリターを利用することを推奨しています。
最終更新
役に立ちましたか?