Check UPN and SIP match Skype for Business Online

This script checks if UserprincipalName and SIP address matches for the Skype Online users.

If it doesn’t matches than it reports in CSV file as well as send the report via email.

First configure your computer to connect to Skype for Business online:

refer: https://technet.microsoft.com/en-us/library/dn362839(v=ocs.15).aspx

Ones your computer is setup than download & extract the zip from below:

https://gallery.technet.microsoft.com/scriptcenter/Check-UPN-and-SIP-match-62d2422d

Open the script file in notepad or editor of your choice, update the variables & log section:(values in bold –> change as per your enviornment)

####################Variables/Logs###########################

$log = Write-Log -Name “Skype-Mismatch” -folder “logs” -Ext “log”

$Report = Write-Log -Name “Skype-Mismatch” -folder “Report” -Ext “csv”

$domain = “tenant.onmicrosoft.com”

$smtpserver = “smtpserver”

$email1 = “VSukhija@labtest.com”

$from = “DoNotReply@labtest.com”
$collection = @()

#########################################################

now open powershell, change directory to the extracted folder & run the script.

It will prompt you for SKOB admin credentials.

ones credentials are added, script will execute & send the csv report as below:

 

Now you can fix the  user by changing SIP address as UPN address.

Run the below command on your onpremise Lync/skype server to fix the mismatch.

set-csuser “UPN” -sipaddress “sip:UPN”

 

PowerShell
<#     
    .NOTES 
    =========================================================================== 
     Created on:       6/28/2017 2:40 PM 
     Created by:       Vikas Sukhija 
     Organization:     http://SysCloudPro.com 
     Filename:         SkypeSIPMismatch.ps1 
    =========================================================================== 
    .DESCRIPTION 
        This Script will Check for SKYPe Mismatch with UPN 
#> 
###################Load Functions###################### 
$error.clear() 
try { stop-transcript | out-null } 
catch { $error.clear() } 
 
function LaunchSOL 
{ 
    param 
    ( 
        $Domain, 
        $UserCredential 
    ) 
     
    Write-Host "Enter Skype Online Credentials" -ForegroundColor Green 
    $CSSession = New-CsOnlineSession -Credential $UserCredential -OverrideAdminDomain $Domain -Verbose 
    Import-pssession $CSSession -Prefix "SOL" 
    return $UserCredential 
} 
Function RemoveSOL 
{ 
     
    $Session = Get-PSSession | where { $_.ComputerName -like "admin1a.online.lync.com" } 
    Remove-PSSession $Session 
} 
function Write-Log 
{ 
    [CmdletBinding()] 
    param 
    ( 
        [Parameter(Mandatory = $true)] 
        [array]$Name, 
        [Parameter(Mandatory = $true)] 
        [string]$Ext, 
        [Parameter(Mandatory = $true)] 
        [string]$folder 
    ) 
     
    $log = @() 
    $date1 = get-date -format d 
    $date1 = $date1.ToString().Replace("/""-") 
    $time = get-date -format t 
     
    $time = $time.ToString().Replace(":""-") 
    $time = $time.ToString().Replace(" """) 
     
    foreach ($n in $name) 
    { 
         
        $log += (Get-Location).Path + "\" + $folder + "\" + $n + "_" + $date1 + "_" + $time + "_.$Ext" 
    } 
    return $log 
} 
####################Variables/Logs########################### 
$log = Write-Log -Name "Skype-Mismatch" -folder "logs" -Ext "log" 
$Report = Write-Log -Name "Skype-Mismatch" -folder "Report" -Ext "csv" 
$domain = "tenant.onmicrosoft.com" 
$smtpserver = "smtpserver" 
$email1 = "VSukhija@labtest.com" 
$from = "DoNotReply@labtest.com" 
 
$collection = @() 
 
########################STart main script####################### 
 
Start-Transcript -Path $log 
try 
{ 
  LaunchSOL -Domain $domain -allowclobber 
} 
catch 
{ 
    $_.Exception 
    Write-Host "Exception has occured in connecting to SKOB" -ForegroundColor Yellow 
    break; 
} 
 
################Connected to SKOB , now fetch users & compare################### 
try 
{ 
    $allSKOBusers = Get-SOLCsOnlineUser -Filter { HostingProvider -eq 'sipfed.online.lync.com' } -resultsize:unlimited 
} 
catch 
{ 
    $_.Exception 
    Write-Host "Exception has occured in fetching SKOB users" -ForegroundColor Yellow 
    break; 
} 
 
$allSKOBusers | ForEach-Object{ 
    $upn = $_.userprincipalname 
    Write-Host " Processing................$upn" -ForegroundColor Green 
    $sipaddress = $_.sipaddress 
    $sipaddress = $sipaddress -split ":" 
    if ($upn -ne $sipaddress[1]) 
    { 
        $mcoll = "" | select UPN, SIPaddress 
        $mcoll.UPN = $upn 
        $mcoll.SIPaddress = $sipaddress[1] 
        $collection+=$mcoll 
    } 
} 
$collection | Export-Csv $Report -NoTypeInformation 
timeout 10 
Send-MailMessage -SmtpServer $smtpserver -To $email1 -From $from -Subject "Skype for Business SIP Mismatch report" -Attachments $Report 
Stop-Transcript 
###################################################
 Thanks for reading & downloading
 Sukhija Vikas
 http://SysCloudPro.com
Advertisements

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s