Forum Discussion
Create Teams from csv
MariusPretorius Luca VALENTINO EDU_ictGeek
Good day!
I really need your help... please....
I tried your codes but nothing happened....
attached is my .csv file for reference and below (here) is my code...
function Create-Channel
{
param (
$ChannelName,$GroupId
)
Process
{
try
{
$teamchannels = $ChannelName -split ";"
if($teamchannels)
{
for($i =0; $i -le ($teamchannels.count - 1) ; $i++)
{
New-TeamChannel -GroupId $GroupId -DisplayName
$teamchannels[$i]
}
}
}
Catch
{
}
}
}
function Add-Users
{
param(
$Users,$GroupId,$CurrentUsername,$Role
)
Process
{
try{
$teamusers = $Users -split ";"
if($teamusers)
{
for($j =0; $j -le ($teamusers.count - 1) ; $j++)
{
if($teamusers[$j] -ne $CurrentUsername)
{
Add-TeamUser -GroupId $GroupId -User
$teamusers[$j] -Role $Role
}
}
}
}
Catch
{
}
}
}
function Create-NewTeam
{
param (
$ImportPath
)
Process
{
Import-Module MicrosoftTeams
$cred = Get-Credential
$username = $cred.UserName
Connect-MicrosoftTeams -Credential $cred
$teams = Import-Csv -Path $ImportPath
foreach($team in $teams)
{
$getteam= get-team |where-object { $_.displayname -eq
$team.TeamsName}
If($getteam -eq $null)
{
Write-Host "Start creating the team: " $team.TeamsName
$group = New-Team -DisplayName $team.TeamsName -
displayname $team.TeamsName -Template $team.TeamType
Write-Host "Creating channels..."
Create-Channel -ChannelName $team.ChannelName -GroupId
$group.GroupId
Write-Host "Adding team members..."
Add-Users -Users $team.Members -GroupId $group.GroupId -
CurrentUsername $username -Role Member
Write-Host "Adding team owners..."
Add-Users -Users $team.Owners -GroupId $group.GroupId -
CurrentUsername $username -Role Owner
Write-Host "Completed creating the team: "
$team.TeamsName
$team=$null
}
}
}
}
Create-NewTeam -ImportPath "C:\Users\Admin1234\Desktop\1.csv"
Thank you very much. Best Regards.
It seems your code is missing a function name and opening curly bracket at the beginning and a closing curly bracket below your last line. Your code looks like this:
function Create-Channel
{
..
.
Create-NewTeam -ImportPath "C:\Users\Admin1234\Desktop\1.csv"
It should read like this: (I'm only including the missing code)
Function New-TeamsFromCSV
{
function Create-Channel
.
.
.
Create-NewTeam -ImportPath "C:\Users\Admin1234\Desktop\1.csv"
}
Obviously, you have to take a few steps for your code to execute in PowerShell:
- you need to use the PowerShell command line to import the module
import-module TheModuleName.psm1
- I prefer to run PowerShell in Administrator mode to make sure I don't run into permissions problems
- The name of the module you need to import is the (path and the )name of your .psm1 file
- and call the function (run it) as shown below.
New-TeamsFromCSV
Because you are connecting to Teams Admin, you will be asked for your credentials. You need to be a Teams Administrator and provide that username/email address and password. Thereafter you will be flying!
- RicMerceneApr 27, 2021Copper Contributor
Good day!
I already tried your code but this is the error message i've received...
below is the whole code...
----
Function New-TeamsFromCSV
{
function Create-Channel
{
param (
$ChannelName,$GroupId
)
Process
{
try
{
$teamchannels = $ChannelName -split ";"
if($teamchannels)
{
for($i =0; $i -le ($teamchannels.count - 1) ; $i++)
{
New-TeamChannel -GroupId $GroupId -DisplayName$teamchannels[$i]
}
}
}
Catch
{
}
}
}function Add-Users
{
param(
$Users,$GroupId,$CurrentUsername,$Role
)
Process
{
try{
$teamusers = $Users -split ";"
if($teamusers)
{
for($j =0; $j -le ($teamusers.count - 1) ; $j++)
{
if($teamusers[$j] -ne $CurrentUsername)
{
Add-TeamUser -GroupId $GroupId -User$teamusers[$j] -Role $Role
}
}
}
}
Catch
{
}
}
}function Create-NewTeam
{
param (
$ImportPath
)
Process
{
Import-Module MicrosoftTeams
$cred = Get-Credential
$username = $cred.UserName
Connect-MicrosoftTeams -Credential $cred
$teams = Import-Csv -Path $ImportPath
foreach($team in $teams)
{
$getteam= get-team |where-object { $_.displayname -eq$team.TeamsName}
If($getteam -eq $null)
{
Write-Host "Start creating the team: " $team.TeamsName
$group = New-Team -DisplayName $team.TeamsName -displayname $team.TeamsName -Template $team.TeamType
Write-Host "Creating channels..."
Create-Channel -ChannelName $team.ChannelName -GroupId$group.GroupId
Write-Host "Adding team members..."
Add-Users -Users $team.Members -GroupId $group.GroupId -CurrentUsername $username -Role Member
Write-Host "Adding team owners..."
Add-Users -Users $team.Owners -GroupId $group.GroupId -CurrentUsername $username -Role Owner
Write-Host "Completed creating the team: "$team.TeamsName
$team=$null
}
}
}
}Create-NewTeam -ImportPath "C:\Users\Admin1234\Desktop\NewTeams
\NewTeams.csv"
}
- RicMerceneApr 27, 2021Copper Contributor
Good day!
Thank you for your response.... I will definitely study and try your program and instruction...
Cheers!
Best Regards. 🙂