PowerShell中New-Team创建Teams团队后无法返回GroupID实际值
问题原因
你遇到的输出异常本质是PowerShell字符串插值的特性导致的:直接在双引号字符串内写$team.GroupID时,PowerShell只会将$team识别为变量展开为其类型字符串,后面的.GroupID会被当做普通文本拼接,不会触发嵌套属性的读取。
解决方法
方法1:使用子表达式运算符包裹嵌套属性
在双引号内用$()包裹需要计算的嵌套属性,PowerShell会先执行括号内的属性读取逻辑,再将结果插入字符串:
$team = New-Team -MailNickname $TeamName -displayname $TeamName -Visibility Private Write-Host "Team Created: $TeamName" Write-Host "Team GUID: $($team.GroupID)"
方法2:提前将GroupID赋值给独立变量
如果不想在字符串内写复杂表达式,可以先把属性值赋值给单独变量再输出:
$team = New-Team -MailNickname $TeamName -displayname $TeamName -Visibility Private $groupId = $team.GroupID Write-Host "Team Created: $TeamName" Write-Host "Team GUID: $groupId"
模块版本兼容排查
如果上述两种方法都无法拿到实际值,说明你使用的MicrosoftTeams模块版本过旧,存在返回值结构异常的Bug,关闭所有调用Teams模块的PowerShell进程后,用管理员权限执行以下命令升级模块到最新版本后重试即可:
Update-Module -Name MicrosoftTeams -Force
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

