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

This is the article no 05 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 COUNTRY SET IN THEIR PROFILE (This Article)

In this article I’m demonstrating the steps it takes to find out the users who has not set their relevant country in Office 365 profiles (or simply, delve profile). 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:

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

$cred = get-Credential
Connect-AzureAD -Credential $cred
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 the relevant Country)

$NoCountryUsers = @()

Now we will dig in through each user, and check if they have any value set in their Azure AD user profile. If not, we will save them in to the array we crated. And then finally export these set of users in to a CSV file called “NoCountryUsers.csv“.

foreach ($user in $Users)
{
    if ($user.Country -eq $null)
    {
        $NoCountryUsers += $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 “NoCountryUsers
$NoCountryUsers | Select DisplayName, UserPrincipalName | Export-Csv -Path "C:\Tools\Reports\NoCountryUsers.csv" -NoTypeInformation
 
DISCLAIMER NOTE: This is an enthusiast post and is not sponsored by Microsoft or any other vendor.

 

 

 

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.