大家下午好
用戶“Theo”非常友好地向我展示了以下代碼,該代碼旨在回傳 MS Teams 所有者和成員及其各自的團隊名稱和組 ID。
Import-Module Microsoftteams
Connect-MicrosoftTeams
#=========================================================================
$GUIDList = 'C:\users\Your_User_Name_Here\TeamOwnerReport\ListGUID.txt'
#=========================================================================
$TeamList = Get-Content -Path "$GUIDList" | Where-Object { $_ -match '\S' }
$TeamReport = Get-Team | Where-object {$TeamList -contains $_.GroupId} | ForEach-Object {
$owners= Get-TeamUser -GroupId $_.GroupId -Role Owner
$members= Get-TeamUser -GroupId $_.GroupID -Role Member
[PsCustomObject]@{
TeamName = $_.DisplayName
GUID = $_.GroupID
TeamOwners = ($owners.User -join '; ')
TeamMembers = ($members.User -join '; ')
}
}
#=========================================================================
$FileName = 'MSTeamOwnMem'
$path = 'C:\Users\Your_User_Name_Here\TeamOwnerReport'
#=========================================================================
$OutputPath = "$path\$FileName-{0:yyyy-MM-dd-HHmm}.csv" -f (Get-Date)
$TeamReport | Export-Csv -Path $OutputPath -NoTypeInformation
Disconnect-MicrosoftTeams
這會產生一個可愛的 .csv 表格,如下所示。
| 隊名 | 組ID | 團隊所有者 | 團隊成員 |
|---|---|---|---|
| 團隊1 | GUID1 | 所有者[email protected];[email protected] | [email protected]; [email protected] |
| 團隊2 | GUID2 | 所有者[email protected];Owner4nhs.net | [email protected] |
我希望代碼生成一個如下所示的 .csv 表
| 隊名 | 組ID | 用戶名 | 角色 |
|---|---|---|---|
| 團隊1 | GUID1 | [email protected] | 所有者 |
| 團隊1 | GUID1 | [email protected] | 所有者 |
我曾嘗試-join從代碼中洗掉該命令,但在這里舉起手來,我不熟悉 PowerShell 所涉及的語法。
這是帶有代碼的原始帖子:PowerShell Team Owners and Team names from a List of GroupIDs
任何指標都將受到歡迎。
uj5u.com熱心網友回復:
我沒有對此進行測驗,只是快速查看您的代碼,但基本上目前它只是回圈一次,超過團隊本身的串列。您想添加更多回圈,遍歷每個所有者,然后遍歷每個成員。嘗試替換:
$TeamReport = Get-Team | Where-object {$TeamList -contains $_.GroupId} | ForEach-Object {
$owners= Get-TeamUser -GroupId $_.GroupId -Role Owner
$members= Get-TeamUser -GroupId $_.GroupID -Role Member
[PsCustomObject]@{
TeamName = $_.DisplayName
GUID = $_.GroupID
TeamOwners = ($owners.User -join '; ')
TeamMembers = ($members.User -join '; ')
}
}
有了這個:
這:
$TeamReport = @()
$teams = Get-Team | Where-object {$TeamList -contains $_.GroupId}
foreach ($team in $teams) {
$owners = Get-TeamUser -GroupId $team.GroupId -Role Owner
$members = Get-TeamUser -GroupId $team.GroupID -Role Member
foreach ($owner in $owners) {
$TeamReport = [PsCustomObject]@{
TeamName = $team.DisplayName
GUID = $team.GroupID
UserName = $owner.User
Role = 'Owner'
}
}
foreach ($member in $members) {
$TeamReport = [PsCustomObject]@{
TeamName = $team.DisplayName
GUID = $team.GroupID
UserName = $member.User
Role = 'Member'
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/474176.html
