A lightweight cli that extracts installed app from an Intune instance, enriches with metadata from the Apple App and Google Play Stores, and output the data in sqlite3, .csv and .json formats.
- Extracts installed applications from an Intune instance.
- Enriches extracted data with metadata from the Apple App Store and Google Play Store.
- Outputs data in multiple formats: SQLite3, CSV, and JSON.
- Lightweight CLI built on Node.js for fast integration in various workflows.
- Go to Azure Portal.
- Navigate to Microsoft Entra Id > Manage > App registrations > New registration.
- Give it a name (e.g. Intune App Extract), and select the correct supported account types.
- Click Register
- Save Application (client) ID
- Save Directory (tenant) ID
- Client credentials > New Client secret and store it securely.
- Go to Manage > API permissions for your app registration:
- Add permission: Microsoft Graph > Application permissions > Select permissions
- Add DeviceManagementApps.Read.All
- DeviceManagementManagedDevices.Read.All (optional for broader info)
- Click Add Permission
- Click "Grant admin consent for " and authorize the account
- Node.js (v18 or above)
- Git
git clone https://github.com/ahoog42/export-intune-apps.git
cd export-intune-apps
npm install- Create a new
.envfile in the project root. - Add the following variable:
CLIENT_SECRET=<your-client-secret>
Tip: you can also add TENANT_ID and CLIENT_ID to the .env so you don't have to add command line each time. The cli option provides a more scriptable interface and better support for multiple environments (e.g. test vs production)
You can run the cli as follows:
node intune-export.js --tenantId <your-tenant-id> --clientId <your-client-id>
If you want to populate app metadata from the Apple App or Google Play stores, add the --metadata switch:
node intune-export.js --metadata --tenantId <your-tenant-id> --clientId <your-client-id>
Usage: intune-export [options]
Options:
--tenantId <tenantId> Azure Tenant ID
--clientId <clientId> Azure Client ID
--debug Enable debug logging
--metadata Enrich app metadata
--output <filename> Filename (default: "intune_apps")
-h, --help display help for command
Note: added --no-deprecation flag to node to supress deprecation notice
node --no-deprecation intune-export.js --metadata
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Commit your changes and push the branch.
- Open a pull request.
This project is licensed under the MIT License.