I stumbled upon a pretty dazzling error the other day where the solution wasn’t too obvious for me so I thought I would share my findings.
Prerequisites which all were in place: – Apple Business Manager configured and Apple-devices where transmitted from reseller. – Integration with Intune in place and devices successfully synced to my Intune-tenant. – ABM-profile assigned to the successfully synced devices with User Affinity-setting configured.
During the provisioning of the device when the iPhone or iPad is turned on after the device has connected to cellular or WiFi, the ABM-profile is about to be downloaded to the device. But this time it only got prompted with “Invalid Profile”.
I tried deleting the device from Intune and re-synced ABM, I also tried modifying the settings for the ABM-profile and redeployed the ABM-token in Intune. I even tried resetting the whole ABM-integration between Intune and ABM but nothing solved my issue. The solution was instead, related to my Enrollment Restriction setup. You can find your enrollment restrictions in Endpoint Manager by going here and navigating to Devices/Enroll Devices and then Enrollment Restrictions.
Check out your Default restriction targeting All Users, and be sure to note the description of it: “This is the default Device Type Restriction applied with lowest priority to all users regardless of group membership.”
That’s what I had missed. I had made another Device type restriction with priority 1, that targeted my Intune Users and in that restriction iOS were allowed for enrollment. Beneath that one, in the Default restriction iOS was blocked. The result is that manual user driven Intune-enrollment for a mobile device works for users who are members of my Intune-Users group but the automatic enrollment by Apple Business Manager did not.
Conclusion: in other words, my bad! I had modified the default one way before the ABM-integration was in place and the regular iPhone-enrollments worked flawlessly. So be sure to double check your Enrollment Restrictions if you stumble upon any ABM Invalid Profile related errors.
Today I will demonstrate how you can monitor (by the help of your web-browser) which json-values are produced when you create a Compliance Policy in Intune which you then in turn can use to create the same policy in Powershell to a tenant of your choice by the help of Intune PowerShell SDK. In my example I used Microsoft Edge as browser.
Start by logging in to your tenant of choice: https://endpoint.microsoft.com Navigate to Devices/Windows/Compliance Policies. Press F12 to start recording Network Activity in your Microsoft Edge browser.
To see in the recording what actually gets sent to the backend when you create something in Microsoft Endpoint Manager (Intune), let’s create a policy. In my example I chose a Compliance policy for Windows 10. Choose a name and a value for Minimum OS version. I used these values: Name: Windows10-Compliance Minimum OS version: 10.0.18363.778
When you have created your policy, you probably noticed that many things happened in the backend (to your right in the browser) during the recording of the network activity. To filter some of the results out you can type in “Devicecompliancepolicies” in the filter-field. Browse through the different entries until you find a POST entry with the graph URL under ‘General’ which is the one we are after right now. Request URL: https:/graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies Request Method: POST
Now, to the fun part. You can use the Intune Powershell SDK to post these values into a tenant of your choice. To do this, install (if you haven’t already), import the Microsoft.Graph.Intune module and then authenticate using Connect-MSGraph.
The Intune Powershell Module is a great addition to the current Device Management-portal when it comes to Intune management. Note: An account with the role Global Administrator is required for the authentication and the consent of this module for your tenant.
1. Start Powershell as an administrator and install the Intune Powershell Module typing in the command: Install-Module -Name Microsoft.Graph.Intune Confirm the install by clicking Yes to all.
2. Then we need to authenticate to the tenant of your choice. Do this by typing in the command: Connect-MSGraph
3. Sign with your account, enter your credentials and then press Sign in
3. An account with the role Global administrator is required since the module needs to be delegated some rights on behalf of the organizaton. Check “Consent on behalf of your organization” and then press Accept.
5. When your UPN and your TenantID appears in Powershell, you’re successfully authenticated to the tenant and the module is now being operational.
6. To show all the commands the module has to offer, type in: Get-Command -Module Microsoft.Graph.Intune
7. There are plenty of commands you can utilize from this module, as of right now the total count is 914.