> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/ja/zi-dong-hua/runbooks/runbook-references/org/devices/report-realmjoin-agent-contact_scheduled.md).

# RealmJoin エージェント連絡先レポート（スケジュール）

RealmJoin エージェントの報告が停止したデバイスをレポートします

{% hint style="info" %}
これはスケジュールされた runbook です。単一のオブジェクトに対してトリガーされるのではなく、繰り返しのスケジュールで実行されるように設計されています。詳細は [スケジューリング](/ja/zi-dong-hua/runbooks/scheduling.md) runbook のスケジュールの設定方法の詳細については
{% endhint %}

### 説明

Windows デバイスについて、RealmJoin が最後にそのデバイスを確認した時点と、Intune と最後に同期した時点を比較します。Intune が RealmJoin よりかなり後にそのデバイスを確認している場合、RealmJoin エージェントが見つからない、ブロックされている、または壊れていることを示します。RealmJoin が一度も見ていないデバイスや、片方にしか存在しないことが分かっているデバイスも一覧表示できます。レポートはメールで送信することも、ダウンロード リンクとして提供することもできます。

### 仕組み

runbook は 2 つの一覧を読み込み、Entra デバイス ID で照合します（代替として Intune デバイス ID を使用します）:

* **Intune**: 直近の ～ 以内に同期を完了したすべての Windows デバイス *Intune の最終同期が (日) 以内*. Intune との同期が止まったデバイスは意図的に除外されています。これらは **古いデバイスをレポート（定期実行）** runbook です。
* **RealmJoin**: RealmJoin 顧客 API のデバイス一覧です。各デバイスについて、RealmJoin エージェントがサインイン済みとして報告したユーザーを保持し、各ユーザーには *最終確認時刻* タイムスタンプ。RealmJoin は各エージェント レポートでユーザーとデバイスの両方に同じタイムスタンプを書き込むため、これらの値のうち最新のものがデバイスの最後のエージェント接触です。

各 Intune デバイスについて、runbook は **ギャップ**: RealmJoin エージェントが最後に報告した後、Intune がそのデバイスを何日間見続けたか。各デバイスには 1 つの状態が付きます：

| 状態                   | 意味                                                                                                                                                               |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `同期済み`               | エージェントの報告は十分最近で、ギャップは許容値を下回っています。                                                                                                                                |
| `エージェント期限切れ`         | Intune がそのデバイスを少なくとも *RealmJoin 最終確認からの許容ギャップ（日数）* エージェントが最後に報告してからです。エージェントが報告しなかった間もデバイスは使用されていました。エージェントが見つからない、プロキシまたはファイアウォールでブロックされている、実行されていない、または壊れています。 |
| `未確認`                | RealmJoin はそのデバイスを認識していますが、エージェントはそのデバイス上でサインイン済みユーザーを一度も報告していません。たとえば、登録されたまま使われていないデバイスやキオスクです。                                                                |
| `MissingInRealmJoin` | そのデバイスは Intune には存在しますが RealmJoin には存在しません。エージェントが登録したことがありません。                                                                                                  |
| `MissingInIntune`    | そのデバイスは RealmJoin には存在しますが、同期ウィンドウ内に Intune と同期されませんでした。RealmJoin デバイスには照合用のデバイス名がないため、デバイス名のプレフィックスとは一緒に使えません。                                                  |

`エージェント期限切れ` は常にレポートに含まれます。その他のカテゴリは、 *含める ...* の選択肢です。実行の「Output Data」タブには要約とカテゴリごとの表が 1 つずつ表示されます。レポート ファイルには同じ行が含まれます。

デバイスの主要ユーザーが一致するかどうかと、誰がそのデバイスにログオンするかは別の問題です。runbook は **プライマリ ユーザーの不一致をレポート（定期実行）** それらに答えます。

#### なぜ年齢ではなくギャップなのか

RealmJoin のタイムスタンプを今日と比較すると、たとえば休暇中のように単に電源が切れているだけのデバイスまで含まれてしまいます。ギャップは 2 つのソース同士を比較します。Intune がそのデバイスを見ていない場合でも、RealmJoin エージェントの問題とは限りません。RealmJoin だけが応答を受け取れず、Intune にだけ継続して応答しているデバイスだけが、エージェントの問題を示します。既定の 14 日は、RealmJoin Portal がデバイスを古いものとしてマークする時点に一致します。

#### RealmJoin のタイムスタンプの意味

RealmJoin エージェントはサインイン中のユーザーのコンテキストで実行され、誰かがサインインしている間は 15 分ごとに報告します。各レポートは *最終確認時刻* そのユーザーのそのデバイス上の値と、デバイス自体の値を更新します。サインイン済みユーザーがいないデバイス、たとえばキオスク デバイス、サインイン済みアカウントのない共有デバイス、または更新のためだけに電源が入っているデバイスは、新しいタイムスタンプを生成せず、 `エージェント期限切れ` エージェント自体は正常でもあります。そのようなデバイスは *Exclude devices from group*、または許容ギャップを広げてください。

この *最終確認* RealmJoin Portal の列の値は同じではありません。Portal は、エージェント接触、Intune 同期、Entra ID サインイン アクティビティのうち最新のものを表示します。このレポートでは、エージェントが動作しているかを示すのはエージェント接触なので、意図的にそれだけを使っています。

#### 妥当性の目安

runbook は RealmJoin 独自のクライアント統計も読み取り、RealmJoin がアクティブと数えるクライアント数を出力します。その数の背後にあるしきい値は RealmJoin の Tenant 設定（既定では 90 日）なので、この数は通常、ここで同期されているデバイス数より大きくなります。逆方向に大きな差がある場合は、同期ウィンドウまたは許容ギャップがその Tenant に対して厳しすぎることを意味します。

### RealmJoin API 資格情報に関するセットアップ

runbook は RealmJoin 顧客 API を照会し、Azure Automation Account に保存された専用の資格情報を必要とします。同じ資格情報は API を使用するすべての runbook で使われるため、これは Automation Account ごとに 1 回だけのセットアップです。

1. **API 資格情報を取得する** - まだ RealmJoin API 資格情報がない場合は、<support@realmjoin.com> で依頼してください。ユーザー名の形式は次のとおりです。 `t-<Tenant ID>`、パスワードは API シークレットです。ここではポータルのログインは使えません。
2. **デバイス ユーザー機能を依頼する** - 顧客 API のデバイス一覧は、RealmJoin が Tenant ごとに有効化する機能です。資格情報とあわせて有効化するようサポートに依頼してください。これがないと API は HTTP 403 を返し、runbook はそのメッセージで停止します。
3. **Automation Account を開く** - Azure Portal で、runbook に使用している Automation Account を開きます。
4. **Shared Resources > Credentials に移動する** - 左側メニューの *Shared Resources*、 *Credentials*.
5. **新しい資格情報を追加する** - *資格情報を追加*.
6. **名前は正確に次のとおりにします `RJAPI`** - runbook はこの名前で検索します。これ以外の名前では資格情報の検索に失敗します。
7. **API のユーザー名とシークレットを入力する** - 手順 1 の値を使用します。
8. **保存** - *作成* して、runbook をもう一度実行します。

API は Tenant ごとに 1 分あたり 30 リクエストまで許可し、それを超えると HTTP 429 を返します。runbook は 1 回の実行で 2 リクエスト必要で、スロットリングされたリクエストは短い遅延の後に最大 5 回まで再試行してから諦めます。

### レポート配信

結果は、RealmJoin Portal の実行結果の Output Data タブに、必ず名前付きテーブルとして表示されます。レポート ファイルが生成されるのは、 **レポート配信** オプションにメールおよび/またはダウンロード リンクが含まれている場合のみです; *Output Data のみ* それ以外ではレポート ファイルは作成されません。メール配信とダウンロード リンクの生成は独立しており、組み合わせることができます。

ダウンロードリンクの場合、レポートファイルは、 `RJReport.StorageAccount.*` テナント設定で構成された Azure Storage Account にアップロードされ、時間制限付きの SAS ダウンロードリンクが返されます。ストレージへのアップロードは Automation アカウントのマネージド ID で認証します。その ID には、 **Reader and Data Access** RBAC ロールがターゲットの Storage Account に必要です（これは Azure RBAC の割り当てであり、Graph アプリケーション権限ではありません）。

### メール送信に関する設定

メールレポートの送信は任意であり、次の場合にのみ行われます。 *レポートもメール送信* または *メール送信とダウンロードリンクも追加* レポート配信として選択されると、受信者が必要になります。送信者アドレスは `RJReport.EmailSender` テナント設定から取得されます。

この runbook は Microsoft Graph API を使用してメールを送信します。Graph API 経由でメールを送信するには、runbook のカスタマイズで既存のメールアドレスを設定する必要があります。

詳細については [RealmJoin Report Settings のドキュメント](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings) を参照してください。

#### メールのブランディング

レポートメールでは、任意の `RJReport.Branding.*` テナント設定が反映されます:

* **ヘッダーおよびフッター画像** - 公開 HTTPS URL、PNG/JPEG/GIF、各最大 200 KB
* **フッターリンク** - フッター画像の参照先
* **アクセントカラーとテキストカラー** - 6桁の16進数値、例: `#0052cc`

これらの設定が構成されていない場合は、既定の RealmJoin のグラフィックと色が使用されます。ダウンロードできない、または検証できない画像、あるいは無効な色値があっても、レポートメールが妨げられることはありません。代わりに該当する既定値が使用されます。

設定手順と画像要件: [メールのブランディング](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings#email-branding-optional).

### スケジューリング

レポートは毎週実行してください。まず、許容ギャップは既定の 14 日、同期ウィンドウは 30 日から始めます。リストがきれいになったらギャップを短くし、アイドル期間の長いデバイスが引き続き表示される場合はギャップを広げます。

両方の値を固定し、レポートをメールで配信するカスタマイズ：

```json
"rjgit-org_devices_report-realmjoin-agent-contact_scheduled": {
    "parameters": {
        "SyncThresholdDays": {
            "Default": 30
        },
        "AgentContactThresholdDays": {
            "Default": 14
        },
        "EmailTo": {
            "Default": "endpoint-team@contoso.com"
        }
    }
}
```

詳細については [ランブック カスタマイズ ガイド](https://docs.realmjoin.com/automation/runbooks/runbook-customization) が構文です。

### 注記と制限

* RealmJoin エージェントは Windows 上で動作するため、比較対象は Windows デバイスのみです。
* RealmJoin の customer API は、エージェントのバージョンもデバイスごとの Intune 同期時刻も公開しません。比較は上で説明したエージェント接触に基づいています。
* 表に表示される Intune のプライマリ ユーザーは、Intune に記録されているユーザーであり、エージェントが最後に見たユーザーとは限りません。どちらも `エージェント期限切れ` 行のために一覧表示されます。

### 場所

Organization → Devices → RealmJoin エージェント接触レポート（スケジュール済み）

**完全な Runbook 名**

rjgit-org\_devices\_report-realmjoin-agent-contact\_scheduled

### 詳細

| プロパティ    | 値                                                                                                                  |
| -------- | ------------------------------------------------------------------------------------------------------------------ |
| バージョン    | 1.0.0                                                                                                              |
| 必須モジュール  | <p>RealmJoin.RunbookHelper (>= 0.8.10)<br>Microsoft.Graph.Authentication (>= 2.41.2)<br>Az.Accounts (>= 5.5.2)</p> |
| スケジュール可能 | はい                                                                                                                 |

### 権限

#### アプリケーションのアクセス許可

* **種類**: Microsoft Graph
  * DeviceManagementManagedDevices.Read.All
    * *比較のために、Intune の Windows デバイスをプライマリ ユーザーと最終同期時刻付きで読み取ります*
  * GroupMember.Read.All
    * *対象範囲を絞り込む、任意の含めるグループと除外グループのデバイス メンバーを読み取ります*
  * Mail.Send *(オプション — 機能: メール レポート)*
    * *メール配信が選択されている場合、Send-RjRbReportEmail を使用してレポートメールを送信します*
  * Organization.Read.All *(オプション — 機能: メール レポート)*
    * *メール件名、メール本文、およびレポート ファイル名のためにテナントの表示名を読み取ります*

#### アクセス許可に関する注意

RealmJoin 顧客 API: RealmJoin サポートが発行した、Tenant の API ユーザー名 (t-) とシークレットを含む Automation Account の資格情報 'RJAPI'。RealmJoin 顧客 API: この API の device users 機能は、Tenant に対して RealmJoin サポートが有効化する必要があります（有効でない場合、デバイス一覧は HTTP 403 を返します）。Azure Storage Account: 対象 Storage Account 上の Automation Account のマネージド ID に対して 'Reader and Data Access' ロールを付与します。アップロードでは listKeys を介してアカウント キーを取得します（ダウンロード リンク オプションでのみ必要）。

### パラメーター

#### SyncThresholdDays

この日数以内に Intune と同期したデバイスのみが比較されます。まったく同期しなくなったデバイスは、代わりに古いデバイス レポートに含まれます。

| プロパティ   | 値                    |
| ------- | -------------------- |
| 必須      | false                |
| 既定値     | 30                   |
| 種類      | Int32                |
| ポータル表示名 | Intune の最終同期が (日) 以内 |

#### AgentContactThresholdDays

Intune が RealmJoin より少なくともこの日数だけ後にそのデバイスを見た場合、デバイスはエージェント期限切れと見なされます。エージェントはユーザーがサインインしている間だけ報告するため、短いギャップは正常です。

| プロパティ   | 値                           |
| ------- | --------------------------- |
| 必須      | false                       |
| 既定値     | 14                          |
| 種類      | Int32                       |
| ポータル表示名 | RealmJoin 最終確認からの許容ギャップ（日数） |

#### DeviceNamePrefix

名前がこの文字列で始まるデバイスのみ。すべて対象にする場合は空欄にします。

| プロパティ   | 値             |
| ------- | ------------- |
| 必須      | false         |
| 既定値     |               |
| 種類      | 文字列           |
| ポータル表示名 | デバイス名のプレフィックス |

#### IncludeAgentStale

RealmJoin が最後に見たよりずっと後に Intune が確認したデバイスを一覧表示します。これは、もはや報告しないエージェントの兆候です。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      | True                      |
| 種類       | ブール値                      |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### IncludeNeverSeen

RealmJoin は認識しているが、サインイン済みユーザーを一度も見たことのないデバイス、たとえば登録はされたもののまだ使われていないデバイスを一覧表示します。

| プロパティ   | 値                                |
| ------- | -------------------------------- |
| 必須      | false                            |
| 既定値     | True                             |
| 種類      | ブール値                             |
| ポータル表示名 | RealmJoin が一度も見たことのないデバイスを含めますか？ |

**ポータルのオプション**

| ポータル オプション | 値     |
| ---------- | ----- |
| はい         | true  |
| いいえ        | false |

#### IncludeMissingInRealmJoin

Intune には存在するが RealmJoin には存在しないデバイスを一覧表示します。

| プロパティ   | 値                        |
| ------- | ------------------------ |
| 必須      | false                    |
| 既定値     | False                    |
| 種類      | ブール値                     |
| ポータル表示名 | RealmJoin にないデバイスを含めますか？ |

**ポータルのオプション**

| ポータル オプション | 値     |
| ---------- | ----- |
| はい         | true  |
| いいえ        | false |

#### IncludeMissingInIntune

RealmJoin には存在するが、同期ウィンドウ内に Intune と同期されなかったデバイスを一覧表示します。デバイス名のプレフィックスとは一緒に使用できません。

| プロパティ   | 値                     |
| ------- | --------------------- |
| 必須      | false                 |
| 既定値     | False                 |
| 種類      | ブール値                  |
| ポータル表示名 | Intune にないデバイスを含めますか？ |

**ポータルのオプション**

| ポータル オプション | 値     |
| ---------- | ----- |
| はい         | true  |
| いいえ        | false |

#### IncludeDeviceGroup

この Entra ID グループ内のデバイスのみ。すべてのデバイスを対象にする場合は空欄にします。

| プロパティ   | 値                          |
| ------- | -------------------------- |
| 必須      | false                      |
| 既定値     |                            |
| 種類      | 文字列                        |
| ポータル表示名 | Include devices from group |

#### ExcludeDeviceGroup

この Entra ID グループ内のデバイスをスキップします。たとえば、サインイン済みユーザーがほとんどいないキオスクや共有デバイスです。何もスキップしない場合は空欄のままにしてください。

| プロパティ   | 値                          |
| ------- | -------------------------- |
| 必須      | false                      |
| 既定値     |                            |
| 種類      | 文字列                        |
| ポータル表示名 | Exclude devices from group |

#### EmailFrom

レポートメールの送信元アドレス。テナント設定 RJReport.EmailSender から取得されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### BrandingHeaderImageUrl

レポートメールのヘッダー画像 (HTTPS URL、PNG/JPEG/GIF、最大 200 KB)。テナント設定 RJReport.Branding.HeaderImageUrl から取得されます。空の場合は既定の RealmJoin ヘッダーが使用されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### BrandingFooterImageUrl

レポートメールのフッター画像 (HTTPS URL、PNG/JPEG/GIF、最大 200 KB)。テナント設定 RJReport.Branding.FooterImageUrl から取得されます。空の場合は既定の RealmJoin フッターが使用されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### BrandingFooterLink

レポートメールのフッター画像のリンク先。テナント設定 RJReport.Branding.FooterLink から取得されます。空の場合は realmjoin.com が使用されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### BrandingAccentColor

レポートメールのアクセントカラーを 6 桁の 16 進数値で指定します。テナント設定 RJReport.Branding.AccentColor から取得されます。空または無効な場合は RealmJoin の既定値が使用されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### BrandingTextColor

レポートメールのテキストカラーを 6 桁の 16 進数値で指定します。テナント設定 RJReport.Branding.TextColor から取得されます。空または無効な場合は RealmJoin の既定値が使用されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### SendEmailReport

レポートを受信者のメールアドレスに送信します。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      | False                     |
| 種類       | ブール値                      |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### EmailTo

レポートをこれらの宛先に送信します。複数ある場合はカンマで区切ってください。各受信者には個別のメールが届きます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータル表示名  | 宛先メールアドレス                 |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### ReportFileFormat

レポートを CSV、Excel ブック、またはその両方で配信します。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      | CSV と XLSX                |
| 種類       | 文字列                       |
| ポータル表示名  | レポート ファイルの形式              |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

**ポータルのオプション**

| ポータル オプション | 値          |
| ---------- | ---------- |
| CSV と XLSX | CSV と XLSX |
| CSV のみ     | CSV のみ     |
| XLSX のみ    | XLSX のみ    |

#### CreateDownloadLink

レポートもアップロードし、数日後に期限切れになるダウンロード リンクを返します。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      | False                     |
| 種類       | ブール値                      |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### コンテナー名

レポート ファイルがアップロードされるストレージ コンテナーです。runbook ごとに設定します。

| プロパティ    | 値                              |
| -------- | ------------------------------ |
| 必須       | false                          |
| 既定値      | report-realmjoin-agent-contact |
| 種類       | 文字列                            |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定)      |

#### リソース グループ名

レポート アップロード用のストレージ アカウントのリソース グループです。Tenant 設定 RJReport.StorageAccount.ResourceGroup から取得されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### Storage Account 名

レポート アップロード用の Storage Account です。Tenant 設定 RJReport.StorageAccount.StorageAccountName から取得されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### LinkExpiryDays

ダウンロード リンクが有効なままの期間（日数）です。Tenant 設定 RJReport.StorageAccount.LinkExpiryDays から取得されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      | 6                         |
| 種類       | Int32                     |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

[Runbook リファレンスの概要に戻る](/ja/zi-dong-hua/runbooks/runbook-references.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.realmjoin.com/ja/zi-dong-hua/runbooks/runbook-references/org/devices/report-realmjoin-agent-contact_scheduled.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
