Il faut maintenant fournir les informations d’usage de Microsoft Teams, c’est ce que fait ce script.
Import-Module MSOnline
Import-Module MicrosoftTeams
[string]$ReportPath = ".\Reports\"
[string]$username = "Admin@yourtenant.onmicrosoft.com"
[string]$PwdTXTPath = "C:\SECUREDPWD\ExportedPWD-$($username).txt"
$secureStringPwd = ConvertTo-SecureString -string (Get-Content $PwdTXTPath)
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $secureStringPwd$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $session#Connect-MicrosoftTeams -Credential $cred
Connect-MicrosoftTeams[int]$i = 1;
$data = @()
[string]$ListOfChannelNames = ""
[string]$TeamOwnersEmails = ""
[string]$TeamMembersEmails = ""
[string]$TeamGuestsEmails = ""$ListOfTeams = Get-Team -user $username #Test command to focus
#$ListOfTeams = Get-TeamWrite-host " -------------------------------------------------------------------------------------------- " -ForegroundColor Magenta
foreach($MyTeams in $ListOfTeams)
{
Write-host " -------------------------------------------------------------------------------------------- " -ForegroundColor green$TeamUnifiedGroup = Get-UnifiedGroup -Identity $MyTeams.GroupId
Write-Host " ===-> Teams GroupID:", $MyTeams.GroupId, "- Name:", $MyTeams.DisplayName, "- Description:", $MyTeams.Description -ForegroundColor Yellow
Write-Host " ===-> GroupEmail:", $TeamUnifiedGroup.PrimarySmtpAddress# Current Teams Configuration implemented
Write-Host " ===-> Get-TeamMemberSettings:" -ForegroundColor Yellow
$TeamMemberSettings = Get-TeamMemberSettings -GroupId $MyTeams.GroupId
Write-Host " ====> ", $TeamMemberSettings.AllowCreateUpdateChannelsWrite-Host " ===-> Get-TeamMessagingSettings:" -ForegroundColor Yellow
$TeamMessagingSettings = Get-TeamMessagingSettings -GroupId $MyTeams.GroupId
Write-Host " ====> ", $TeamMessagingSettings.AllowUserEditMessagesWrite-Host " ===-> Get-TeamGuestSettings:" -ForegroundColor Yellow
$TeamGuestSettings = Get-TeamGuestSettings -GroupId $MyTeams.GroupId
Write-Host " ====> ", $TeamGuestSettings.AllowCreateUpdateChannelsWrite-Host " ===-> Get-TeamFunSettings:" -ForegroundColor Yellow
$TeamFunSettings = Get-TeamFunSettings -GroupId $MyTeams.GroupId
Write-Host " ====> ", $TeamFunSettings.AllowGiphy$ListOfChannelNames = ""
$TeamOwnersEmails = ""
$TeamMembersEmails = ""
$TeamGuestsEmails = ""
$CurrentListOfChannelList = Get-TeamChannel -GroupId $MyTeams.GroupId
foreach($MyChannel in $CurrentListOfChannelList)
{
Write-host " ------------------ " -ForegroundColor green
Write-Host " ===-> Channel Name:", $MyChannel.Id, "- Name:", $MyChannel.DisplayName, "- Description:", $MyChannel.Description -ForegroundColor Magenta
$ListOfChannelNames += " -|- "+ $MyChannel.DisplayName
}$TeamUsers = Get-TeamUser -GroupId $MyTeams.GroupId
Write-Host " ===-> Get-TeamUser:", $TeamUsers.Count -ForegroundColor Yellow
if ([array]$MyTeamGuest = $TeamUsers | Where {$_.Role -eq "guest"})
{
$TeamGuestsCount = $MyTeamGuest.Count
$MyTeamGuest.ForEach({ $TeamGuestsEmails += "|"+ $_.User })
Write-Host " ===-> TeamGuestsEmails:", $TeamGuestsEmails -ForegroundColor Magenta
}
else
{
$TeamGuestsCount = 0
$TeamGuestsEmails = ""
}if ([array]$MyTeamMembers = $TeamUsers | Where {$_.Role -eq "member"})
{
$TeamMembersCount = $MyTeamMembers.Count
$MyTeamMembers.ForEach({ $TeamMembersEmails += "|"+ $_.User })
Write-Host " ===-> TeamMembersEmails:", $TeamMembersEmails -ForegroundColor Magenta
}
else
{
$TeamMembersCount = 0
$TeamMembersEmails = ""
}if ([array]$MyTeamOwners = $TeamUsers | Where {$_.Role -eq "owner"})
{
$TeamOwnersCount = $MyTeamOwners.Count
$MyTeamOwners.Foreach({ $TeamOwnersEmails += "|"+ $_.User })
Write-Host " ===-> TeamOwnersEmails:", $TeamOwnersEmails -ForegroundColor Magenta
}
else
{
$TeamOwnersCount = 0
$TeamOwnersEmails = ""
}#Team name TeamMail Channels MembersCount OwnersCount GuestsCount Privacy
$data += @(
[pscustomobject]@{
GroupID = $MyTeams.GroupId
GroupTeamMail = $TeamUnifiedGroup.PrimarySmtpAddress
GroupHiddenfromOutlook = $TeamUnifiedGroup.HiddenFromExchangeClientsEnabled
GroupAccessType = $TeamUnifiedGroup.AccessType
GroupExternalMemberCount = $TeamUnifiedGroup.GroupExternalMemberCount
TeamName = $MyTeams.DisplayName
TeamDescription = $MyTeams.Description
TeamMemberSettingsAllowCreateUpdateChannels = $TeamMemberSettings.AllowCreateUpdateChannels
TeamMemberSettingsAllowDeleteChannels = $TeamMemberSettings.AllowDeleteChannels
TeamMemberSettingsAllowAddRemoveApps = $TeamMemberSettings.AllowAddRemoveApps
TeamMemberSettingsAllowCreateUpdateRemoveTabs = $TeamMemberSettings.AllowCreateUpdateRemoveTabs
TeamMemberSettingsAllowCreateUpdateRemoveConnectors = $TeamMemberSettings.AllowCreateUpdateRemoveConnectors
TeamMessagingSettingsAllowUserEditMessages = $TeamMessagingSettings.AllowUserEditMessages
TeamMessagingSettingsAllowUserDeleteMessages = $TeamMessagingSettings.AllowUserDeleteMessages
TeamMessagingSettingsAllowOwnerDeleteMessages = $TeamMessagingSettings.AllowOwnerDeleteMessages
TeamMessagingSettingsAllowTeamMentions = $TeamMessagingSettings.AllowTeamMentions
TeamMessagingSettingsAllowChannelMentions = $TeamMessagingSettings.AllowChannelMentions
TeamGuestSettingsAllowCreateUpdateChannels = $TeamGuestSettings.AllowCreateUpdateChannels
TeamGuestSettingsAllowDeleteChannels = $TeamGuestSettings.AllowDeleteChannels
TeamFunSettingsAllowGiphy = $TeamFunSettings.AllowGiphy
TeamFunSettingsGiphyContentRating = $TeamFunSettings.GiphyContentRating
TeamFunSettingsAllowStickersAndMemes = $TeamFunSettings.AllowStickersAndMemes
TeamFunSettingsAllowCustomMemes = $TeamFunSettings.AllowCustomMemes
TeamChannelsCount = $CurrentListOfChannelList.Count
TeamChannelsNames = $ListOfChannelNames
TeamOwnersCount = $TeamOwnersCount
TeamOwnersEmails = $TeamOwnersEmails
TeamMembersCount = $TeamMembersCount
TeamMembersEmails = $TeamMembersEmails
TeamGuestsCount = $TeamGuestsCount
TeamGuestsEmails = $TeamGuestsEmails
}
)
Write-host " -------------------------------------------------------------------------------------------- " -ForegroundColor green
}Write-host " -------------------------------------------------------------------------------------------- " -ForegroundColor green
$datestring = (get-date).ToString("yyyyMMdd-hhmm")
$fileName = Join-Path -Path $ReportPath -ChildPath $("O365-TeamsDetails_"+ $datestring + ".csv")
Write-host " -----------------------------------------" -ForegroundColor Green
Write-Host (" >>> writing to file {0}" -f $fileName) -ForegroundColor Green
$data | Export-csv $fileName -NoTypeInformation -enc utf8
Write-host " -----------------------------------------" -ForegroundColor Green
Vous pouvez adapter et utiliser ce script selon vos propres besoins.
Romelard Fabrice
Version Anglaise:
Sources utilisées:
- https://msunified.net/2018/01/31/how-i-create-microsoft-teams-in-powershell-in-january-2018/
- https://www.jijitechnologies.com/blogs/create-teams-microsoft-teams-powershell
- https://www.powershellgallery.com/packages/MicrosoftTeams/0.9.5
- https://blogs.technet.microsoft.com/skypehybridguy/2017/11/07/microsoft-teams-powershell-support/
- https://www.c-sharpcorner.com/article/control-microsoft-teams-using-powershell/
- https://techcommunity.microsoft.com/t5/Microsoft-Teams/Microsoft-Teams-Tenant-Wide-CSV-Report/td-p/151875
- https://www.petri.com/teams-powershell-primer
- https://practical365.com/teams-2/create-custom-reports-using-the-updated-teams-powershell-module/
Commentaires
Enregistrer un commentaire