From 667579bc2d6a0862e551afc960df69e1024fbe54 Mon Sep 17 00:00:00 2001 From: Luke Tainton Date: Fri, 7 Aug 2020 17:29:01 +0100 Subject: [PATCH 1/3] :sparkles: Add optional Delimiter flag Signed-off-by: Luke Tainton --- TeamsUserEnroller.psm1 | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/TeamsUserEnroller.psm1 b/TeamsUserEnroller.psm1 index cec5e88..3204d81 100644 --- a/TeamsUserEnroller.psm1 +++ b/TeamsUserEnroller.psm1 @@ -13,6 +13,9 @@ Function Import-TeamsUsers { .PARAMETER Create If specified, create a new Group first, then add the users from the CSV file. + .PARAMETER Delimiter + If specified, overrides the default CSV delimiter of ','. + .EXAMPLE Import-TeamsUsers -File "users.csv" @@ -24,14 +27,20 @@ Function Import-TeamsUsers { [parameter(Mandatory=$true, position=1, ParameterSetName='Params', HelpMessage="Specify CSV file")] [string]$File, [parameter(Mandatory=$false, position=2, ParameterSetName='Params', HelpMessage="Create new Teams group")] - [switch]$Create + [switch]$Create, + [parameter(Mandatory=$false, position=3, ParameterSetName='Params', HelpMessage="Override default CSV delimiter")] + [string]$Delimiter ) Begin { $ErrorActionPreference = 'Stop' ##### IMPORT CSV FILE ##### Try { - $Users = Import-CSV $File + If ($Delimiter) { + $Users = Import-CSV $File -Delimiter $Delimiter + } Else { + $Users = Import-CSV $File + } } Catch { Write-Host -ForegroundColor Red "$File is not a valid CSV file." } -- 2.49.1 From 5828c120cf61f253d0cc6de3e3a15c548ec7c3ba Mon Sep 17 00:00:00 2001 From: Luke Tainton Date: Fri, 7 Aug 2020 17:29:24 +0100 Subject: [PATCH 2/3] :bookmark: Update version to 2.2.0 Signed-off-by: Luke Tainton --- TeamsUserEnroller.psd1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TeamsUserEnroller.psd1 b/TeamsUserEnroller.psd1 index 773cce8..ee3e255 100644 --- a/TeamsUserEnroller.psd1 +++ b/TeamsUserEnroller.psd1 @@ -12,7 +12,7 @@ # RootModule = '' # Version number of this module. -ModuleVersion = '2.1.2' +ModuleVersion = '2.2.0' # Supported PSEditions # CompatiblePSEditions = @() -- 2.49.1 From fdc1dd3c0ba463776b13746729306182af259a03 Mon Sep 17 00:00:00 2001 From: Luke Tainton Date: Fri, 7 Aug 2020 17:46:17 +0100 Subject: [PATCH 3/3] :sparkles: Add optional -Encoding flag Signed-off-by: Luke Tainton --- TeamsUserEnroller.psm1 | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/TeamsUserEnroller.psm1 b/TeamsUserEnroller.psm1 index 3204d81..852fa6e 100644 --- a/TeamsUserEnroller.psm1 +++ b/TeamsUserEnroller.psm1 @@ -16,6 +16,9 @@ Function Import-TeamsUsers { .PARAMETER Delimiter If specified, overrides the default CSV delimiter of ','. + .PARAMETER Encoding + If specified, manually sets the encoding of the CSV file. + .EXAMPLE Import-TeamsUsers -File "users.csv" @@ -29,27 +32,35 @@ Function Import-TeamsUsers { [parameter(Mandatory=$false, position=2, ParameterSetName='Params', HelpMessage="Create new Teams group")] [switch]$Create, [parameter(Mandatory=$false, position=3, ParameterSetName='Params', HelpMessage="Override default CSV delimiter")] - [string]$Delimiter + [string]$Delimiter, + [parameter(Mandatory=$false, position=4, ParameterSetName='Params', HelpMessage="Manually set CSV encoding")] + [string]$Encoding ) Begin { $ErrorActionPreference = 'Stop' ##### IMPORT CSV FILE ##### Try { - If ($Delimiter) { - $Users = Import-CSV $File -Delimiter $Delimiter - } Else { - $Users = Import-CSV $File - } + $ImportCmd = "Import-CSV $File" + If ($Delimiter) { $ImportCmd = $ImportCmd + " -Delimiter $Delimiter" } + If ($Encoding) { $ImportCmd = $ImportCmd + " -Encoding $Encoding" } + $Users = Invoke-Expression $ImportCmd } Catch { Write-Host -ForegroundColor Red "$File is not a valid CSV file." + Exit } ##### CHECK MODULE IS INSTALLED AND IMPORTED ##### if (Get-Module -ListAvailable -Name MicrosoftTeams) { - Import-Module -Name MicrosoftTeams - $Email = (Connect-MicrosoftTeams -Verbose:$false).Account + try { + Import-Module -Name MicrosoftTeams + $Email = (Connect-MicrosoftTeams -Verbose:$false).Account + } Catch { + Write-Host -ForegroundColor Red "There was an error during authentication." + Write-Host "If you're not on Windows and use Multi-Factor Authentication, please manually pass the MFA check in your browser, then try again." + Exit + } } else { Write-Host -ForegroundColor Red "Module MicrosoftTeams doesn't exist. Please run 'Install-Module -Name MicrosoftTeams' and retry." Exit -- 2.49.1