Today I wanted to have a look if I could find all my external users in Office 365. And I’m especially interested in the active users.

First I had to connect to the Microsoft Online Service



Then I’m collecting all users

$users = Get-MsolUser


foreach ($user in $users){
Write-Host $user.UserPrincipalName $user.UserType

Ok, So No I’m getting either Guest or Member.


The Guests are all my external users.

The complete script:


$users = Get-MsolUser

foreach ($user in $users){
if ($user.UserType -eq “Guest”)
Write-Host $user.UserPrincipalName


Ok now the second part. How do I find my active users.


The closest I can get is: $user.LastPasswordChangeTimestamp

Ok, so now I know when someone’s password was last changed.

Now you just need to make sure that I force users to change their passwords on a regular basis. So that when their passwords haven’t changed the above will roughly give me the active users.

By Pieter Veenstra

Business Applications and Office Apps & Services Microsoft MVP working as a Microsoft Productivity Principal Consultant at HybrIT Services. You can contact me using

One thought on “Office 365 – How to find all your active/external users?”

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: