diff --git a/src/Web/autopilot-monitor-web/app/settings/sectionFieldMap.ts b/src/Web/autopilot-monitor-web/app/settings/sectionFieldMap.ts
index 53d908bf..e728d4ec 100644
--- a/src/Web/autopilot-monitor-web/app/settings/sectionFieldMap.ts
+++ b/src/Web/autopilot-monitor-web/app/settings/sectionFieldMap.ts
@@ -67,6 +67,7 @@ export const SECTION_FIELD_MAP = {
"performanceCollectorIntervalSeconds",
"helloWaitTimeoutSeconds",
"enableRealmJoinWatcher",
+ "enableConfigMgrWatcher",
"selfDestructOnComplete",
"keepLogFile",
"rebootOnComplete",
diff --git a/src/Web/autopilot-monitor-web/app/settings/types.ts b/src/Web/autopilot-monitor-web/app/settings/types.ts
index 376cd977..50798754 100644
--- a/src/Web/autopilot-monitor-web/app/settings/types.ts
+++ b/src/Web/autopilot-monitor-web/app/settings/types.ts
@@ -130,6 +130,7 @@ export interface TenantConfiguration {
enableSoftwareInventoryAnalyzer?: boolean;
enableIntegrityBypassAnalyzer?: boolean;
enableRealmJoinWatcher?: boolean;
+ enableConfigMgrWatcher?: boolean;
keepAwakeDuringUserEsp?: boolean;
enableConsoleBypassDetection?: boolean;
// Bootstrap token
diff --git a/src/Web/autopilot-monitor-web/lib/generated/shared-manifests.generated.ts b/src/Web/autopilot-monitor-web/lib/generated/shared-manifests.generated.ts
index 5c1df7ce..fcf37130 100644
--- a/src/Web/autopilot-monitor-web/lib/generated/shared-manifests.generated.ts
+++ b/src/Web/autopilot-monitor-web/lib/generated/shared-manifests.generated.ts
@@ -199,6 +199,7 @@ export const SHARED_MANIFEST = {
"enableSoftwareInventoryAnalyzer",
"enableIntegrityBypassAnalyzer",
"enableRealmJoinWatcher",
+ "enableConfigMgrWatcher",
"keepAwakeDuringUserEsp",
"enableConsoleBypassDetection",
"localAdminAllowedAccountsJson",
@@ -304,6 +305,7 @@ export const SHARED_MANIFEST = {
"enableSoftwareInventoryAnalyzer": null,
"enableIntegrityBypassAnalyzer": null,
"enableRealmJoinWatcher": null,
+ "enableConfigMgrWatcher": null,
"keepAwakeDuringUserEsp": null,
"enableConsoleBypassDetection": null,
"localAdminAllowedAccountsJson": null,
@@ -446,6 +448,7 @@ export const SHARED_MANIFEST = {
"enableSoftwareInventoryAnalyzer": false,
"enableIntegrityBypassAnalyzer": true,
"enableRealmJoinWatcher": false,
+ "enableConfigMgrWatcher": false,
"keepAwakeDuringUserEsp": false,
"enableConsoleBypassDetection": true
}
diff --git a/src/Web/autopilot-monitor-web/lib/generated/shared-manifests.json b/src/Web/autopilot-monitor-web/lib/generated/shared-manifests.json
index 866bf64f..745a45de 100644
--- a/src/Web/autopilot-monitor-web/lib/generated/shared-manifests.json
+++ b/src/Web/autopilot-monitor-web/lib/generated/shared-manifests.json
@@ -195,6 +195,7 @@
"enableSoftwareInventoryAnalyzer",
"enableIntegrityBypassAnalyzer",
"enableRealmJoinWatcher",
+ "enableConfigMgrWatcher",
"keepAwakeDuringUserEsp",
"enableConsoleBypassDetection",
"localAdminAllowedAccountsJson",
@@ -300,6 +301,7 @@
"enableSoftwareInventoryAnalyzer": null,
"enableIntegrityBypassAnalyzer": null,
"enableRealmJoinWatcher": null,
+ "enableConfigMgrWatcher": null,
"keepAwakeDuringUserEsp": null,
"enableConsoleBypassDetection": null,
"localAdminAllowedAccountsJson": null,
@@ -442,6 +444,7 @@
"enableSoftwareInventoryAnalyzer": false,
"enableIntegrityBypassAnalyzer": true,
"enableRealmJoinWatcher": false,
+ "enableConfigMgrWatcher": false,
"keepAwakeDuringUserEsp": false,
"enableConsoleBypassDetection": true
}
@@ -2945,6 +2948,14 @@
},
"doc": "Whether to enable the RealmJoin watcher, which tracks RealmJoin deployment state and enrollment packages during provisioning. This is not an IAgentAnalyzer; the flag gates creation of the RealmJoin collector host in the agent runtime. Default: false (opt-in; most tenants do not deploy via RealmJoin)."
},
+ {
+ "name": "enableConfigMgrWatcher",
+ "type": {
+ "kind": "primitive",
+ "name": "boolean"
+ },
+ "doc": "Whether to enable the ConfigMgr watcher, which reports whether the Configuration Manager client is installed (service state, version, site code). This is not an IAgentAnalyzer; the flag gates creation of the ConfigMgr client host in the agent runtime. Default: false (opt-in; most tenants do not co-manage with ConfigMgr)."
+ },
{
"name": "keepAwakeDuringUserEsp",
"type": {
@@ -24648,6 +24659,16 @@
"optional": true,
"doc": "Whether the RealmJoin watcher is enabled for this tenant's devices. RealmJoin enrollment-package tracking is off by default; enable only for tenants that deploy via RealmJoin. null = use agent default (false)."
},
+ {
+ "name": "enableConfigMgrWatcher",
+ "type": {
+ "kind": "primitive",
+ "name": "boolean",
+ "nullable": true
+ },
+ "optional": true,
+ "doc": "Whether the ConfigMgr watcher is enabled for this tenant's devices: the agent reports whether the Configuration Manager client is installed (service state, version, site code). Off by default; enable for tenants that co-manage with ConfigMgr. null = use agent default (false)."
+ },
{
"name": "keepAwakeDuringUserEsp",
"type": {
diff --git a/src/Web/autopilot-monitor-web/lib/generated/wire-types.generated.ts b/src/Web/autopilot-monitor-web/lib/generated/wire-types.generated.ts
index 94ff09ec..60b85a5a 100644
--- a/src/Web/autopilot-monitor-web/lib/generated/wire-types.generated.ts
+++ b/src/Web/autopilot-monitor-web/lib/generated/wire-types.generated.ts
@@ -421,6 +421,8 @@ export interface AnalyzerConfiguration {
enableIntegrityBypassAnalyzer: boolean;
/** Whether to enable the RealmJoin watcher, which tracks RealmJoin deployment state and enrollment packages during provisioning. This is not an IAgentAnalyzer; the flag gates creation of the RealmJoin collector host in the agent runtime. Default: false (opt-in; most tenants do not deploy via RealmJoin). */
enableRealmJoinWatcher: boolean;
+ /** Whether to enable the ConfigMgr watcher, which reports whether the Configuration Manager client is installed (service state, version, site code). This is not an IAgentAnalyzer; the flag gates creation of the ConfigMgr client host in the agent runtime. Default: false (opt-in; most tenants do not co-manage with ConfigMgr). */
+ enableConfigMgrWatcher: boolean;
/** Whether to keep the device awake (system + display) during the User-ESP (AccountSetup) phase so idle standby/sleep cannot stall app installs or account provisioning. This is not an IAgentAnalyzer; the flag gates creation of the UserEspKeepAwake host in the agent runtime. Reboots are unaffected (the hold only resets idle timers). Default: false (opt-in per tenant). */
keepAwakeDuringUserEsp: boolean;
/** Whether to detect an interactive console opened during enrollment — the classic Shift+F10 OOBE bypass. Gates BOTH the live ConsoleBypass host (an interactive-session cmd.exe with a bare, non-scripted command line; stopped on real-user desktop arrival) and the startup ConsolePrefetchScanner (CMD.EXE-*.pf ran after boot). Detection is best-effort, not gapless — a press before the agent installs is only coarsely covered by the prefetch artifact. Security-sensitive; not an IAgentAnalyzer toggle in the usual sense (it also gates a collector host). Default: true (opt-out per tenant — a Shift+F10 console during enrollment is a finding worth surfacing by default; tenants that knowingly use Shift+F10 for support can disable it). */
@@ -5359,6 +5361,8 @@ export interface TenantConfiguration {
enableIntegrityBypassAnalyzer?: boolean | null;
/** Whether the RealmJoin watcher is enabled for this tenant's devices. RealmJoin enrollment-package tracking is off by default; enable only for tenants that deploy via RealmJoin. null = use agent default (false). */
enableRealmJoinWatcher?: boolean | null;
+ /** Whether the ConfigMgr watcher is enabled for this tenant's devices: the agent reports whether the Configuration Manager client is installed (service state, version, site code). Off by default; enable for tenants that co-manage with ConfigMgr. null = use agent default (false). */
+ enableConfigMgrWatcher?: boolean | null;
/** Whether to keep the device awake during the User-ESP (AccountSetup) phase for this tenant's devices. Prevents idle standby/sleep from stalling app installs / account provisioning; reboots are unaffected. Off by default. null = use agent default (false). */
keepAwakeDuringUserEsp?: boolean | null;
/** Whether to detect a SYSTEM console opened during enrollment (Shift+F10 OOBE bypass) for this tenant's devices. Gates the live ConsoleBypass watcher + the startup prefetch scanner. On by default (opt-out); tenants that knowingly use Shift+F10 for support can disable it. null = use agent default (true). */