如何用PowerShell移除SharePoint Online权限中的Use Client Integration功能
以下是可在Azure Runbook中运行的PowerShell代码,用于修改指定站点所有权限定义的Use Client Integration功能为禁用状态:
# 加载SharePoint Online模块(Runbook环境需确保已安装该模块) Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking # 认证信息(按Runbook认证方式调整,示例使用服务主体) $tenantName = "yourtenant.onmicrosoft.com" $clientId = "你的应用ID" $clientSecret = ConvertTo-SecureString "你的应用密钥" -AsPlainText -Force $credential = New-Object System.Management.Automation.PSCredential($clientId, $clientSecret) # 连接到SharePoint Online管理中心 Connect-SPOService -Url "https://$tenantName-admin.sharepoint.com" -Credential $credential # 指定目标站点URL $siteUrl = "https://yourtenant.sharepoint.com/sites/目标站点" # 获取站点权限级别集合 $permissionLevels = Get-SPOSitePermissionLevel -Site $siteUrl # 遍历并禁用每个权限级别的Use Client Integration功能 foreach ($level in $permissionLevels) { try { if ($level.ClientIntegrationEnabled) { $level.ClientIntegrationEnabled = $false $level.Update() Write-Output "已禁用权限级别「$($level.Name)」的Use Client Integration功能" } else { Write-Output "权限级别「$($level.Name)」的Use Client Integration功能已处于禁用状态" } } catch { Write-Error "处理权限级别「$($level.Name)」时出错: $_" } } # 断开连接 Disconnect-SPOService
关键说明:
- 认证适配:如果Runbook使用Azure AD Run As账户,可替换为对应自动认证逻辑,无需手动输入Client ID和密钥
- 权限要求:执行账号需拥有SharePoint Online管理员权限,以及目标站点的完全控制权限
- 模块依赖:确保Azure Automation账户已导入
Microsoft.Online.SharePoint.PowerShell最新稳定版模块 - 批量扩展:若需对所有站点操作,可将
Get-SPOSitePermissionLevel的调用嵌套在Get-SPOSite的遍历逻辑中
内容的提问来源于stack exchange,提问作者NightTom
相关产品推荐
相关产品推荐

