如何通过PnP.PowerShell获取Microsoft 365组的AllowToAddGuests设置
解决PnP PowerShell获取Microsoft 365组访客访问设置的问题
问题说明
原本使用AzureADPreview模块可直接通过索引获取AllowToAddGuests的布尔值,但使用Get-PnPMicrosoft365GroupSettings后,返回的Values属性是PnP.PowerShell.Commands.Model.Microsoft365GroupSettingItemValues对象集合,无法直接通过索引取值。
解决方案
可通过以下两种方式获取目标设置值:
方式1:筛选指定名称的设置项并提取值
$groupSettings = Get-PnPMicrosoft365GroupSettings -Identity $groupId $guestAccessEnabled = ($groupSettings.Values | Where-Object { $_.Name -eq "AllowToAddGuests" }).Value Write-Host $guestAccessEnabled
方式2:转换为哈希表后直接索引
如果需要多次调用不同设置项,先将Values集合转为哈希表会更便捷:
$groupSettings = Get-PnPMicrosoft365GroupSettings -Identity $groupId $settingsHash = @{} $groupSettings.Values | ForEach-Object { $settingsHash[$_.Name] = $_.Value } $guestAccessEnabled = $settingsHash["AllowToAddGuests"] Write-Host $guestAccessEnabled
补充说明
Get-PnPMicrosoft365GroupSettings返回的Values是包含多个Microsoft365GroupSettingItemValues对象的集合,每个对象都包含Name(设置项名称)和Value(设置值)两个属性,因此需要先筛选出目标名称对应的对象,再提取其Value属性。
内容的提问来源于stack exchange,提问作者dev123
相关产品推荐
相关产品推荐

