10 useful Office 365 PowerShell snippets


Using the Windows Azure Active Directory Module connect to
Azure AD using the following command.

 

Connect-MsolService

 

Enter your tenant credentials. (user@contoso.onmicrosoft.com)

 

1.Export to CSV all users that are licensed and have a specific UPN domain prefix.

 

Get-MsolUser -all |where {$_.isLicensed -And $_.UserPrincipalName.ToLower().EndsWith("contoso.com")} | Export-csv userTrue.csv

 

2.Export to CSV all users that are NOT licensed and have a specific UPN domain prefix.

 

Get-MsolUser -all |where {!$_.isLicensed -And $_.UserPrincipalName.ToLower().EndsWith("contoso.com")} | Export-csv userFalse.csv

 

3.Get the Account Skus associated with a tenant (e.g License Pack(s) used to assign a license to a user)

 

Get-MsolAccountSku | ft accountskuid

 

Returns

 

AccountSkuId

------------

Contoso:ENTERPRISEPACK_B_PILOT

 

4.Report the service names associated with a particular SKU (e,g Exchange, Lync, Sharepoint, Yammer, etc)

 

$a = get-MsolAccountSku | where{$_.AccountSkuID -eq "Contoso:ENTERPRISEPACK_B_PILOT"}

 

$a.servicestatus

 

Returns

 

ServicePlan      
                               
              
ProvisioningStatus

-----------------------------

RMS_S_ENTERPRISE_B_PILOT                              Success

OFFICE_PRO_PLUS_SUBSCRIPTION_B_PILOT    Success

LYNC_S_ENTERPRISE_B_PILOT                            Success

SHAREPOINTWAC_B_PILOT                                   Success

SHAREPOINT_S_ENTERPRISE_B_PILOT              Success

EXCHANGE_S_ENTERPRISE_B_PILOT                 Success

 

5. Assign a License SKU to a particular user.

 

Set-MSOLUser -UserPrincipalName "user@contoso.com" -UsageLocation GB

 

Set-MsolUserLicense -UserPrincipalName "user@contoso.com" -AddLicenses Contoso:ENTERPRISEPACK_B_PILOT

 

6. Assign an element(s) of License SKU to a particular user (e.g Disable Lync).

 

$DisableComponents = New-MsolLicenseOptions -AccountSkuId Contoso:ENTERPRISEPACK_B_PILOT -DisabledPlans LYNC_S_ENTERPRISE_B_PILOT

 

Set-MSOLUser -UserPrincipalName "user@contoso.com" -UsageLocation GB

 

Set-MsolUserLicense -UserPrincipalName "user@contoso.com" -AddLicenses Contoso:ENTERPRISEPACK_B_PILOT -LicenseOptions $DisableComponents

 

7. Get the SKU Associated to a particular user (i.e. what license pack has been assigned)

 

$a = Get-MsolUser -UserPrincipalName "user@contoso.com"

 

$a.licenses.accountskuid

 

Returns

 

Contoso:ENTERPRISEPACK_B_PILOT

 

8.Get the provisioning status of each of the service names for a user. (i.e is Exchange enabled, Lync disabled etc)

 

$a = Get-MsolUser -UserPrincipalName "user@contoso.com"

 

$a.licenses.servicestatus

 

Returns

 

ServicePlan                            
                                       
ProvisioningStatus

-----------------------------

RMS_S_ENTERPRISE_B_PILOT                             Success

OFFICE_PRO_PLUS_SUBSCRIPTION_B_PILOT   Success

LYNC_S_ENTERPRISE_B_PILOT                            Disabled

SHAREPOINTWAC_B_PILOT                                   Success

SHAREPOINT_S_ENTERPRISE_B_PILOT              Success

EXCHANGE_S_ENTERPRISE_B_PILOT                 Success

 

9. Delete a user from the tenant and the recycle bin (managed identities)

 

Remove-MsolUser -UserPrincipalName “user@contoso.com” -Force

 

Remove-MsolUser -UserPrincipalName “user@contoso.com” -RemoveFromRecycleBin

 

 10. Convert the BASE64 GUID from a Azure AD user back to an AD GUID. (Example of usage would be a PS Script to write an attribute to AD for each user in Office365 – AD GUID provides the bind to user in AD)

 

$a = Get-MsolUser -UserPrincipalName "user@contoso.com"

 

$GUID = new-Object -TypeName System.Guid -ArgumentList(,( ([System.Convert]::FromBase64String($a.ImmutableId)) ) )

 

$getAD = Get-ADUser  -Identity $GUID

Comments (4)

  1. K. Tookes says:

    Very useful indeed!!

  2. Victor says:

    Excellent, great, help me a lot  

Skip to main content