How do you easily identify Cloud and On Premise users in your Office 365/Azure AD instance? With PowerShell of course!
Prerequisite – Windows Azure Active Directory Module
Using the ‘get-msoluser -all’ command, you can find all your users in Office 365/Azure AD. Getting the results of which users are cloud only based, or synced via an on-premise LDAP such as Active Directory may not be easy at first glance.
If you expand out all the details possible from a user, the fields are as follows:
None of these are obvious to indicate where the account is primarily located.
After a quick comparison of an on-premise account and a cloud account, I noticed the ‘ImmutableId’ was blank for the cloud users. I found a great blog post about what the value was for here, which proved my guess – the value corresponds to the ‘objectGUID’ of the account, which cloud-only accounts don’t use.
Based on that, the rest is simple. Here’s some example commands:
get-msoluser -all | where immutableid -eq $null
Get a list of all cloud only accounts
get-msoluser -all | where immutableid -eq $null |fl
Get all cloud only accounts with all values
get-msoluser -all | where immutableid -ne $null
Get all synced on-premise accounts (e.g. DirSync, Azure AD Connect, ADFS)
get-msoluser -all | where immutableid -eq $null |measure
Show a count of how many cloud only accounts
get-msoluser -all | where immutableid -eq $null | export-csv cloudusers.csv
Export the list of cloud only accounts to a csv file