$Creds = Get-Credential -Message “Please enter Office 365 Global Admin Credentials”
$InputFile = “C:\temp\UserInput.csv”
$OutputFile = “C:\temp\UserOutput.csv”
Connect-MsolService -Credential $Creds
#$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Creds -Authentication Basic -AllowRedirection
#Import-PSSession $Session
$AllUsersData = import-csv -Path $InputFile
if($AllUsersData)
{
$UsersInfo = @()
foreach($aUser in $AllUsersData)
{
$DomainName = “@sharepointmvp.onmicrosoft.com”
$UserPrincipalName = $aUser.Identity + $DomainName
Write-Host “Checking Licenses for: $UserPrincipalName” -ForeColor Yellow
$msolUser = Get-MsolUser -UserPrincipalName $UserPrincipalName -ErrorAction SilentlyContinue
if($msolUser)
{
$Licenses = “None”
if($msolUser.IsLicensed)
{
Write-Host “User $UserPrincipalName is Licensed:” -ForegroundColor Green
$MSOLUserLicense = $msolUser.Licenses.AccountSkuid
$Licenses = “”
for($i = 0; $i -lt $MSOLUserLicense.Count; $i++)
{
$Licenses += $msolUser.Licenses[$i].AccountSkuId
if($i -le $MSOLUserLicense.Count)
{
$Licenses += “;`n”
}
}
}
$userObj = New-Object PSObject
Add-Member -input $userObj noteproperty ‘UserPrincipalName’ $UserPrincipalName
Add-Member -input $userObj noteproperty ‘Alias’ $aUser.Alias
Add-Member -input $userObj noteproperty ‘DisplayName’ $aUser.DisplayName
Add-Member -input $userObj noteproperty ‘Licenses’ $Licenses
$UsersInfo += $userObj
}
}
$UsersInfo | Export-Csv -Path $OutputFile -NoTypeInformation -Force -Verbose
Write-host “Output written to $OutputFile”
}
start $OutputFile