スクリプトからCustom Fieldsの値を読み書きします。標準では取得できない情報を収集してデバイスの属性として保持し、その値を監視条件やレポートに使えるようになります。
この組み合わせで何ができるか
Custom Fieldsは手動でも入力できますが、スクリプトから書き込めるようにすると用途が大きく広がります。
| 使い方 | 例 |
|---|---|
| 独自の情報を収集する | 業務アプリのバージョン、設定値、ライセンスの状態 |
| 点検結果を記録する | 設定が基準どおりかの判定結果 |
| 収集した値で監視する | 基準から外れた値をConditionで検知する |
| レポートに含める | 標準項目にない情報を集計する |
3番目が特に強力です。標準の監視項目にない独自の基準で、デバイスを自動監視できるようになります。
読み書きのコマンド
スクリプトエディターでは、getまたはsetと入力するとCustom Fieldを操作するコマンドの候補が表示されます。

getまたはsetと入力するとCustom Fieldのコマンドが呼び出せるctrlとspaceを同時に押せば、スニペットの一覧も表示されます。コマンドの正確な書式を覚えていなくても、ここから呼び出せます。
参照するのはCustom FieldのNameです。画面に表示されるLabelではありません。この2つの違いはCustom Fieldsの基礎と活用で説明しています。
【注意】 Custom Fieldの
Nameを後から変更すると、その値を参照している全てのスクリプトが動かなくなります。しかもエラーにならず、値が取得できないまま処理が進む場合があります。命名は作成時に確定させてください。
権限の設定
スクリプトから読み書きするには、Custom Field側で権限を許可する必要があります。
| 操作 | 必要な設定 |
|---|---|
| スクリプトから読む | スクリプトによる読み取りを許可 |
| スクリプトから書く | スクリプトによる書き込みを許可 |
権限が不足していると、スクリプトは正常終了するのに値が更新されません。エラーとして表面化しないため、原因の特定に時間がかかります。
【運用のポイント】 書き込みが反映されない場合、最初に権限設定を確認してください。スクリプトのロジックを疑う前にここを見ると、切り分けが速くなります。
実装の流れ
典型的な手順は次の通りです。
- Custom Fieldを作成する。型と
Nameを決める - 権限でスクリプトからの読み書きを許可する
- スクリプトを作成し、値を取得または書き込む処理を実装する
- 1台で手動実行し、値が反映されるか確認する
- Scheduled Automationsで定期実行に設定する
- 翌日、複数デバイスで値が入っているか確認する
4番目と6番目を省かないでください。手動では動くが自動実行では動かない、という事象が起こります。原因は実行アカウントの違いです。
活用例
業務アプリのバージョン管理
Software Inventoryで取得できないアプリケーションのバージョンを、スクリプトで調べてCustom Fieldに記録します。
記録した値をConditionの条件にすれば、古いバージョンが残っているデバイスを自動検知できます。
設定値の点検
セキュリティー基準として決めた設定が守られているかを、スクリプトで点検します。結果を「準拠」「非準拠」としてCustom Fieldに書き込みます。
Compound Conditionsでこの値を条件に使えば、非準拠のデバイスを検知して通知できます。組み合わせ方はCompound Conditionsを参照してください。
資産情報の同期
外部の資産管理システムから取得した情報を書き込みます。購入日やリース契約の情報をデバイスの属性として保持でき、デバイス一覧で一緒に確認できます。
よくあるエラーと対処
| 症状 | 原因 |
|---|---|
| 値が書き込まれない | 権限が不足している |
| 値が取得できない | Nameが間違っている、またはフィールドが存在しない |
| 型が合わないエラー | 数値型に文字列を書き込もうとしている |
| 手動では動くが自動では動かない | 実行アカウントの権限が異なる |
| 一部のデバイスだけ値が入らない | そのデバイスで前提条件が満たされていない |
型の不一致は見落とされがちです。日付として扱いたい値をテキスト型のフィールドに書き込むと、日付での絞り込みができません。フィールドの型は作成時に確定させてください。