通过 PowerShell 获取站点分类

Get Site Classification via PowerShell

对于内部审计/验证,我是否需要加载我的租户中的所有网站,其中网站的 classification 设置为“仅限内部”(为我们的租户创建的自定义分类)。

我似乎无法使用标准 PowerShell 模块 Microsoft.Online.SharePoint.PowerShell 检索分类 - Get-SPOSite 返回的对象根本没有提供 属性 Classification

我找到的唯一方法是使用 PnP.PowerShell, see Microsoft documentation Programmatically read the classification of a site:

Connect-PnPOnline "https://[tenant].sharepoint.com/sites/[modernsite]" -Credentials [credentials]

$site = Get-PnPSite
$classificationValue = Get-PnPProperty -ClientObject $site -Property Classification
Write-Host $classificationValue

但是基于 PnP.PowerShell 的方法的问题在于我需要成为该站点的管理员/所有者才能加载站点对象。如果我不是管理员/所有者,则在执行 Get-PnPSite:

时会出现以下错误
Get-PnPSite : The remote server returned an error: (401) Unauthorized.

现在的问题是,如果我不是网站集管理员,是否可以检索租户中所有网站的分类?

您确实需要 SharePoint 管理员角色才能正常工作...没有办法解决它。

网站集管理员是检索分类所必需的 属性。

作为租户管理员,您可以通过 powershell 将自己添加为网站集管理员。检索信息后,只需从站点集合管理员中删除 Admin 帐户即可。

喜欢下面的:

$site="https://[tenant].sharepoint.com/sites/[modernsite]"
$admin="admin@tenant.com"
#Add Admin account as an additional site collection adminstrator
Set-PnPTenantSite  $site -Owners $admin

Connect-PnPOnline $site -Credentials [credentials]

$site = Get-PnPSite
$classificationValue = Get-PnPProperty -ClientObject $site -Property Classification
Write-Host $classificationValue

#Remove Admin account from site colletion administrators
Remove-PnPSiteCollectionAdmin -Owners $admin