Initial
This commit is contained in:
70
server/data/intuneCatalog.js
Normal file
70
server/data/intuneCatalog.js
Normal file
@@ -0,0 +1,70 @@
|
||||
export const intuneCoverage = {
|
||||
appType: 'Windows app (Win32)',
|
||||
publishingSteps: [
|
||||
{ id: 'source', title: 'Prepare source', summary: 'Place installers in Files and supporting content in SupportFiles, Assets, Config, or Strings as appropriate.' },
|
||||
{ id: 'commands', title: 'Program commands', summary: 'Use Invoke-AppDeployToolkit.exe for PSADT v4 packages; keep legacy Deploy-Application.exe only for v3 compatibility packages.' },
|
||||
{ id: 'requirements', title: 'Requirements', summary: 'Model architecture, minimum Windows version, disk needs, and 32-bit execution flags before upload.' },
|
||||
{ id: 'detection', title: 'Detection', summary: 'Choose MSI product code, file/version, registry, or custom PowerShell detection with clear installed/not-installed behavior.' },
|
||||
{ id: 'returns', title: 'Return codes', summary: 'Map PSADT and installer exit codes so Intune retries, succeeds, or requests reboot correctly.' },
|
||||
{ id: 'assignments', title: 'Assignments', summary: 'Publish to pilot, broad, and exclusion rings with intent and group notes.' },
|
||||
{ id: 'review', title: 'Review', summary: 'Confirm UI context, ServiceUI compatibility, Graph app id, logs, and package readiness.' }
|
||||
],
|
||||
packaging: [
|
||||
{ area: 'Package source', guidance: 'Package the entire PSADT deployment folder with Microsoft Win32 Content Prep Tool so Invoke-AppDeployToolkit.exe sits at the content root for v4 packages.' },
|
||||
{ area: 'Files folder', guidance: 'Place application installers in Files; PSADT installer helpers resolve files relative to that folder.' },
|
||||
{ area: 'SupportFiles folder', guidance: 'Place helper scripts, transforms, configuration files, or content copied during post-install tasks in SupportFiles.' },
|
||||
{ area: 'Assets / Config / Strings', guidance: 'Use Assets for icons, Config for toolkit settings such as paths/UI behavior, and Strings for localized prompt text.' },
|
||||
{ area: 'Install command', guidance: 'PSADT v4: Invoke-AppDeployToolkit.exe -DeploymentType Install. Legacy v3 compatibility: Deploy-Application.exe -DeploymentType "Install" -DeployMode "Interactive".' },
|
||||
{ area: 'Uninstall command', guidance: 'PSADT v4: Invoke-AppDeployToolkit.exe -DeploymentType Uninstall. Legacy v3 compatibility: Deploy-Application.exe -DeploymentType "Uninstall" -DeployMode "Interactive".' },
|
||||
{ area: 'Install behavior', guidance: 'System is recommended for enterprise PSADT deployments; PSADT v4.1+ handles user-session UI without ServiceUI.' },
|
||||
{ area: 'Device restart behavior', guidance: 'Use return-code driven reboot behavior so PSADT can pass 3010/1703 soft reboot signals, or suppress reboot passthrough when Intune should see success.' }
|
||||
],
|
||||
returnCodes: [
|
||||
{ code: 0, type: 'success', meaning: 'Success' },
|
||||
{ code: 1602, type: 'retry', meaning: 'User deferred/cancelled; Intune recognizes this natively.' },
|
||||
{ code: 1703, type: 'softReboot', meaning: 'Legacy PSADT soft reboot mapping used in some Intune deployment examples.' },
|
||||
{ code: 1641, type: 'softReboot', meaning: 'MSI initiated reboot.' },
|
||||
{ code: 3010, type: 'softReboot', meaning: 'Soft reboot required.' },
|
||||
{ code: 60008, type: 'failed', meaning: 'PSADT initialization failure.' },
|
||||
{ code: '60000-68999', type: 'reserved', meaning: 'Reserved PSADT built-in range; do not use for custom app codes.' },
|
||||
{ code: '69000-69999', type: 'customScript', meaning: 'Recommended custom Invoke-AppDeployToolkit.ps1 range.' },
|
||||
{ code: '70000-79999', type: 'extension', meaning: 'Recommended extension module range.' }
|
||||
],
|
||||
detectionRules: [
|
||||
{ type: 'MSI product code', bestFor: 'Single MSI packages', notes: 'Prefer when zero-config MSI packaging is used and the product code is stable.' },
|
||||
{ type: 'File/version', bestFor: 'EXE installers and vendor apps', notes: 'Check a stable executable path and ProductVersion/FileVersion.' },
|
||||
{ type: 'Registry', bestFor: 'Apps with Add/Remove Programs entries or custom install markers', notes: 'Use HKLM uninstall keys or a package-specific marker value.' },
|
||||
{ type: 'Custom PowerShell', bestFor: 'Complex detection', notes: 'Return exit 0 and write output when installed; keep script fast and side-effect free.' }
|
||||
],
|
||||
requirements: [
|
||||
{ key: 'Architecture', values: ['x64', 'x86', 'both'], guidance: 'Match the package architecture and the Intune requirement rule.' },
|
||||
{ key: 'Minimum OS', values: ['Windows 10 22H2', 'Windows 11 23H2', 'Windows 11 24H2'], guidance: 'Keep this aligned with your enterprise baseline and vendor support.' },
|
||||
{ key: 'Run as 32-bit', values: ['false', 'true'], guidance: 'Use only for installers or detection scripts that require 32-bit registry/file redirection.' }
|
||||
],
|
||||
uiCompatibility: [
|
||||
{ mode: 'native-v4', label: 'PSADT v4 native UI', guidance: 'Preferred. PSADT v4.1+ can display user prompts from Intune SYSTEM installs without ServiceUI.' },
|
||||
{ mode: 'serviceui-legacy', label: 'Legacy ServiceUI bridge', guidance: 'Use only for older PSADT/v3 compatibility packages that intentionally bundle ServiceUI/Invoke-ServiceUI.' },
|
||||
{ mode: 'silent', label: 'Silent / non-interactive', guidance: 'Use for required background installs that should not prompt or defer.' }
|
||||
],
|
||||
assignmentRings: [
|
||||
{ name: 'Pilot', intent: 'available or required', guidance: 'Small operator or IT validation group; collect PSADT logs and Intune device status.' },
|
||||
{ name: 'Broad', intent: 'required', guidance: 'Main production group after pilot success.' },
|
||||
{ name: 'Exclusion', intent: 'exclude', guidance: 'Break-glass group for blocked apps, special users, or conflicting devices.' }
|
||||
],
|
||||
managementActions: [
|
||||
{ action: 'Upload package', apiStatus: 'planned', guidance: 'Future Graph integration should create/update Win32 app content versions.' },
|
||||
{ action: 'Create app metadata', apiStatus: 'planned', guidance: 'Map POSHManager PSADT profile metadata to Intune Win32 app display information.' },
|
||||
{ action: 'Configure install/uninstall commands', apiStatus: 'supported-template', guidance: 'Commands are generated today and should be used when creating Intune apps.' },
|
||||
{ action: 'Configure return codes', apiStatus: 'supported-template', guidance: 'Return-code table is modeled today for operator copy/automation.' },
|
||||
{ action: 'Configure detection rules', apiStatus: 'supported-template', guidance: 'Detection patterns are modeled today; future Graph integration can write them directly.' },
|
||||
{ action: 'Assign rings', apiStatus: 'planned', guidance: 'Future Graph integration should manage required/available assignments and exclusions.' },
|
||||
{ action: 'Monitor deployment', apiStatus: 'planned', guidance: 'Future Graph integration should pull device/user install status and correlate PSADT logs.' }
|
||||
],
|
||||
gotchas: [
|
||||
'Do not wrap PSADT with ServiceUI.exe for Intune; PSADT v4.1+ has native user-session UI handling.',
|
||||
'Use -DeferRunInterval when deferrals are enabled so Intune retry timing does not repeatedly prompt users.',
|
||||
'Avoid hard-coding -DeployMode unless required; Auto is the upstream default and respects session/process/OOBE detection.',
|
||||
'Map 1602 as retry/user defer, 3010 as soft reboot, and keep custom PSADT app codes out of 60000-68999.',
|
||||
'Test packages as SYSTEM with the launch helper patterns before broad Intune assignment.'
|
||||
]
|
||||
};
|
||||
Reference in New Issue
Block a user