See the the required data format here
This module contains 3 cmdlets:
- Get-CsE911NeededChange => This cmdlet processes all the LIS information provided in the source CSV, along with all LIS information already confiigured in Teams, determines what changes/updates are required and creates all the PowerShell one-liners to execute the changes/updates to the online and source environments
- Set-CsE911OnlineChange => This cmdlet executes all the changes/updates online (in Teams service) and writes any Warnings or EntryHashes back to the source data that can then be exported to overwrite the source CSV with the latest updates
- In the future, if the same CSV is processed, any rows with an EntryHash that matches the current row with no be re-processed.
- This also has added the ability to to a ValidationOnly pass, and generate an Execution plan, which is a text output of all the commands that would have been run had this been an actual workflow pass.
- Get-CsE911OnlineConfiguration => This cmdlet allows exporting all information from Teams in the source data format required for the TeamsE911Automation module to process and can be used as a potential backup source file
the TeamsE911Automation module leverages Azure Maps to perform civic address validation and obtain proper geocodes. This requires the use of your own Azure Maps api key. More information on obtaining an Azure Maps api key can be found here: https://docs.microsoft.com/en-us/azure/azure-maps/how-to-manage-authentication
$env:AZUREMAPS_API_KEY = '<UPDATE_WITH_API_KEY>'
Import-Module ".\TeamsE911Automation"
The TeamsE911Automation module requires using the MicrosoftTeams PowerShell module to execute all required changes/updates against the Teams service
Connect-MicrosoftTeams
$CsvPath1 = "$PSScriptRoot\e911LisSourceData.csv"
$RawInput1 = Import-Csv -Path $CsvPath1
You can choose to execute each step of the process (Get-CsE911NeededChange => Set-CsE911OnlineChange => Set-CsE911SourceChange) individually, or pipe them together to execute in a single run. The following example chains the 3 steps in a single execution.
Process the imported csv data to analyze the current teams tenant configuration and prepare changes to online and source data
$RawOutput1 = $RawInput1 | Get-CsE911NeededChange | # determine any needed changes
Set-CsE911OnlineChange # process online changes (adding any warning data if a provided input failed to process for any reason)
$RawOutput1 | Export-Csv -Path $CsvPath1 -NoTypeInformation
Display count of processed inputs (rows from csv) and outputs (changes to be made to online and source data)
Write-Information "$($RawInput1.Count) inputs provided to pipeline" -InformationAction Continue
Write-Information "$($RawOutput1.Count) outputs generated from pipeline" -InformationAction Continue