top of page

Hvernig á að skipuleggja og stilla símanúmer í Teams með Power Automate + SharePoint


Af hverju?

Ef þú hefur símanúmer til að stjórna getur verið erfitt að vita hvar þú átt að leita að tiltækum númerum. Þess vegna er rétti staðurinn að byrja að setja allar tölurnar þínar á einum miðlægum stað.

Hvort sem það er Excel eða SharePoint eða eitthvað annað þá er það bara góð hugmynd að vita hvaða tölur þú hefur og hver hefur hvaða tölu, sérstaklega ef þú ert að flytja frá einu kerfi til annars, það er góð hugmynd að vita.

Hvernig?

Á Íslandi þar þarftu að nota Direct Routing fyrir öll íslensk númer því Microsoft býður ekki uppá númer á Íslandi. Ef þú ert eins og einn kúnninn, ert með símanúmer í mörgum löndum og þarf að fást við nokkur fjarskiptafyrirtæki, þá til að einfalda hlutina gætirðu viljað hafa öll númerin þín í skýinu á einum stað. Í sumum tilvikum gæti það jafnvel verið ódýrara, eins og raunin var hjá þessum kúnna.

Og upplýsingatæknideildin þar vildi þægilegan og auðveldan hátt til að hafa umsjón með símanúmerunum meðan þeir flytja úr Skype For Buisness

Hvað.

Þá kemur SharePoint + PowerAutomate sterkt inn með smá Powershell til að leysa þetta verkefni.

Þú getur byrjað að nota SharePoint Template frá Power Automate til að búa til Flow eða þú getur byggt það frá grunni. Þú getur líka bætt við samþykktarferli ef þess er þörf en í mínu tilfelli voru það stjórnendur UT sem höfðu aðgang að þessum SharePoint lista.

Fyrst bjó ég til SP listann eins og á myndinni hér að ofan. Bætti við aukadálki með valinu Óvirkt og Virkt, svo það er einnig hægt að nota þetta til að hreinsa upp númerið frá notandanum ef hann þarf það ekki lengur eða hættir.

Svo bý ég til og aðlaga PowerShell scriptuna.

Þegar þú notar Direct Routing þarftu að nota Powershell til að virkja Enterprisevoice og/eða talhólf innan Teams eða Skype For Business.

param ([Parameter(Mandatory=$true)] [string] $email,[Parameter(Mandatory=$true)] [string] $action,[Parameter(Mandatory=$true)] [string] $telephoneNumber ) #split up to get the SamAccountName $samaccount = $email.Split("@") $SamAccountName = $samaccount[0] $UserPrincipalName = $email $creds = Get-AutomationPSCredential -Name 'Flow Automation' # get credentials from the automation account assets connect-msolservice -credential $creds # connect to msonline see of the license is ready for use else you cant assign the enterprise voice #blocked out because customer used licensing groups to accomplish this task #Set-MsolUserLicense -UserPrincipalName $email -AddLicenses "company:MCOEV" -ErrorAction SilentlyContinue #Set-MsolUserLicense -UserPrincipalName $email -AddLicenses "company:MCOSTANDARD" -ErrorAction SilentlyContinue $phonesystemremainiing = $active - $comsumed if ($action -eq "enable" ){ do { $user = Get-MsolUser -UserPrincipalName $email $haslic = $user.Licenses | where {$_.AccountSkuId -eq "company:MCOEV"} if (!$haslic) {Write-Output "is not licansed" Start-Sleep 30 } }until ($haslic ) # loop until the user has the right licanse $session = New-CsOnlineSession -Credential $creds # connect to teamsskype online Import-PSSession $Session -AllowClobber |Out-Null Get-CsonlineUser $UserPrincipalName |Set-CsUser -EnterpriseVoiceEnabled $true -HostedVoiceMail $true set-ADUser -Identity $SamAccountName –replace @{'msRTCSIP-Line' ='tel:+'+$telephoneNumber} -OfficePhone $telephoneNumber # set the AD attributes $teamsonlineuser = get-csonlineuser -Identity $UserPrincipalName | Select-Object LineURI,EnterpriseVoiceEnabled if ($teamsonlineuser.EnterpriseVoiceEnabled -and $teamsonlineuser.LineURI) {Write-Output "success"} else {Write-Output "failed"} } if ($action -eq "disable" ) { set-ADUser -Identity $SamAccountName -Clear msRTCSIP-Line, telephoneNumber }


Nú þegar PowerShell scriptan og SharePoint listinn er tilbúinn getum við búið til Flow

Veljum Create an automated-from blank flow í listanum.

Og tengjum það við listann sem búin var til áðan og bætum við aðgerð sem kallast Switch til að ákvarða hvort það eigi að virkja eða afvirkja símanúmerið.

Þá þurfum við að fletta upp notandanum frá office365 -> Get user profiles(v2) svo við getum ákvarðað rétt notandaheiti frá userprincipalname í sp, (stundum notaði gögnin frá spnetfangið onmicrosoft.com sem olli villu)

Ef þú ert með leyfi stýrt af Groups þarftu að athuga hvort notandinn hafi verið meðlimur áður að bæta honum í bláa auglýsingahópinn.

Til að sjá hvort útkoma “check group membership” hefur gildi þarftu að nota aðgerðina „Compose“ og telja fjölda niðurstaðna frá útkomunni.

Mér finnst gott að athuga hversu mörg Phone System leyfi eru eftir til að vera viss um að ég hafi leyfi til að úthluta notandanum.

PowerShell scriptan sem ég notaði...

$cred = Get-AutomationPSCredential -Name 'Flow Automation' connect-msolservice -credential $cred $comsumed =(Get-MsolAccountSku | where {$_.AccountSkuId -eq "company:MCOEV"}).ConsumedUnits $active =(Get-MsolAccountSku | where {$_.AccountSkuId -eq "company:MCOEV"}).ActiveUnits $phonesystemremainiing = $active - $comsumed Write-Output $phonesystemremainiing

þetta gefur mér niðurstöðu sem ég get síðan notað til að panta fleiri leyfi eða senda tölvupóst til þess sem pantar leyfin,

Ég mun setja aðra færslu síðar þar sem ég útskýrir nánar hvernig á að nota CSP API til að panta leyfi

Nú lítur Flowið okkar svona út, Í þessu Flow-i er ég líka að athuga hvort notandinn sé hluti af eldri leyfishóp Azure Ad og ef svo er þá er hann tekin úr þeim hóp.

í síðasta hluta scriptunar

$teamsonlineuser = get-csonlineuser -Identity $UserPrincipalName | Select-Object LineURI,EnterpriseVoiceEnabled< if ($teamsonlineuser.EnterpriseVoiceEnabled -and $teamsonlineuser.LineURI) {Write-Output "success"} else {Write-Output "failed"}

Það kemur með annað hvort success or failed

Ég get síðan notað þessa niðurstöðu "failed" til að láta mig vita með tölvupósti ef hún mistekst eða senda kerfistjóran sem óskaði eftir breytingunni að breytingin tókst "success"

Comments


8523139

Subscribe Form / Gerast Áskrifandi

Thanks for submitting!

©2023 by Flowmar. Proudly created with Wix.com

bottom of page