Find and export list of users with no Profile Picture set in Office 365 Account

This is the article no 04 in the series

Having a complete profile in Office365 is not just a benefit for user himself, but for the entire organization which directly impacts on productivity. A finished profile leads to better visibility and eventually results in faster communications across hundreds of thousands of employees in an enterprise setup. Ultimate idea of Office Delve (latest interface of profile comes with more capabilities such as recent activities) is to provide overall insights of a user information and his activities/engagements which makes obvious sense for anyone.

clip_image001_thumb2_thumb[3]

Nevertheless, none of these would be in action unless you have a complete profile with basic details entered in. No matter how much HR would try to push, we still spot a lot of random users who haven’t completed their profiles.

With this short and sweet article series, I’m trying to give you the steps that we followed during the identifying process as requested by our HR. screenshots may differ than our production setup, but you surely will get the point here.

I had to use some PowerShell scripting to get this list out from Office 365 and generate a CSV file for each criteria so that HR can directly reach out to the user via emails and advice to take an action to update the profile on the spot. As a result, we were able to get 100% completeness of profiles across a 5000+ employee organization.

There is no out of the box reporting when it comes to Profile Completeness in Office 365, therefore we have no option other than PowerShell. PowerShell is the ultimate tool for O365 administration, whenever graphical interface has a barrier, hence, make sure you dig around it to understand its capabilities to go beyond.

FINDING USERS WITH NO PROFILE PICTURE SET IN THEIR PROFILE (This Article)

Profile picture on a name helps recognizing coworkers easily among thousands of other people in a organization. Not setting a picture in a profile would not look nice as it reflects to most of the productivity, communication and collaboration apps such as  SharePoint Online, Delve, Teams and Exchange. A gray sample placeholder like below, is not suitable for a corporate setup and not the optimal experience, so let’s find out how we can fetch such users so our HR can alert them to take action.

ProfilePic

In this article I’m trying to explain the steps it takes to find out the users who has not set Profile Picture in Office 365 accounts. This isn’t sort of a blog I wanted to write but since this daily requests comes from HR to find users (not criminals though !), this might be a common case in most places and why not write down the steps right?

So here we go, following are the requirements before we get started. Make sure you setup your environment with these:

  • Azure AD Administrator
  • Exchange Online Administrator
  • AzureAD PowerShell Module
  • Exchange Online PowerShell Module (only if MFA in use)

Script steps breakdown:

First and foremost, we need to fetch the Office365 credentials and then connect to Azure Active Directory and the Exchange Online.

$cred = get-Credential
Connect-AzureAD -Credential $cred
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $Session

Then let’s fetch all users in this tenant, who are internal to the company and that have at least one license assigned to them.

$Users = Get-AzureADUser | Where {$_.UserType -eq 'Member' -and $_.AssignedLicenses -ne $null}
Now to create an empty array in which we will later store the output (user list who has not set a Picture)

$NoPicUsers = @()

Now we will dig in through each user, and check if they have set a picture as part of their profile.If not we will add that user in the newly created array. and Then lastly we will export these set of users in to a CSV file called “NoPicUsers.csv“.

foreach ($user in $Users)
{
    $Picture = Get-UserPhoto -Identity $user.UserPrincipalName -ErrorAction SilentlyContinue
    if ($Picture -eq $null)
    {
        $NoPicUsers += $user
    }
}

And, finally we can export the SharePoint result to a CSV through below part. This line will save the data that we extracted and stored in the array we created as “NoPicUsers

$NoPicUsers | Select DisplayName, UserPrincipalName | Export-Csv -Path "C:\Tools\Reports\NoPicUsers.csv" -NoTypeInformation

DISCLAIMER NOTE: This is an enthusiast post and is not sponsored by Microsoft or any other vendor.

7 thoughts on “Find and export list of users with no Profile Picture set in Office 365 Account

  1. Pingback: Find and export the list of users who has not completed About Me section in their Office 365 profile – Microsoft Cloud Services & Technology Journal

  2. Pingback: Find and export list of users with no Skills Defined in Office 365 profile – Microsoft Cloud Services & Technology Journal

  3. Pingback: Find and export list of users with no Department set in Office 365 profile – Microsoft Cloud Services & Technology Journal

  4. Pingback: Find and export list of users with no Country set in Office 365 Profile – Microsoft Cloud Services & Technology Journal

  5. Pingback: Find and export list of users with no Birthday set in Office 365 profile – Microsoft Cloud Services & Technology Journal

  6. Pingback: Find and export list of users with no Manager Name set in Office 365 profile – Microsoft Cloud Services & Technology Journal

  7. Pingback: Find and export list of users with no phone number set in Office 365 profile – Microsoft Cloud Services & Technology Journal

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s