如何用Graph API/REST或PowerShell模块重命名SharePoint站点?
一、"Name"与"Site Name"的核心区别
- Name:是站点URL里的路径标识(比如
https://contoso.sharepoint.com/sites/TeamSite里的TeamSite),属于站点集级别的唯一属性,修改它会直接改变站点的访问URL。 - Site Name:就是站点的显示标题,是用户在页面上看到的友好名称,属于Web级属性,修改后不影响URL,仅改变展示名称。
二、Set-PnPWeb修改标题自动还原的解决办法
用Set-PnPWeb -Title "新名称"后标题自动还原,几乎都是因为你的站点关联了Microsoft 365组(比如现代团队站点)。这种站点的Web标题会和M365组的名称自动同步,单独改Web标题会被组的同步机制覆盖。
解决思路:要么直接修改M365组的名称,站点标题会自动同步;要么同时修改组和站点标题(前者更高效)。
1. PnP PowerShell修改关联组的站点名称
# 连接目标站点 Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/YourSite" -Interactive # 获取站点关联的M365组 $group = Get-PnPMicrosoft365Group -AssociatedTeamSite # 修改组名称,站点标题会自动同步 Set-PnPMicrosoft365Group -Identity $group.Id -DisplayName "新的站点名称"
2. Graph API修改方式
针对M365组关联站点
发送PATCH请求到 https://graph.microsoft.com/v1.0/groups/{group-id},请求体如下:
{ "displayName": "新的站点名称" }
修改完成后,站点的显示标题会自动同步为新的组名称。
针对无M365组关联的独立站点
发送PATCH请求到 https://graph.microsoft.com/v1.0/sites/{site-id}/web,请求体如下:
{ "title": "新的站点名称" }
3. SharePoint REST API修改独立站点标题
发送POST请求到 https://contoso.sharepoint.com/sites/YourSite/_api/web,请求头需包含:
Accept: application/json;odata=verboseContent-Type: application/json;odata=verboseX-HTTP-Method: MERGEIf-Match: *
请求体:
{ "__metadata": { "type": "SP.Web" }, "Title": "新的站点名称" }
三、修改站点的"Name"(URL路径名称)
修改这个属性会改变站点的访问URL,操作前需确认管理员权限,且旧URL会自动重定向到新URL,但部分依赖旧URL的内容可能受影响,需谨慎操作。
1. PnP PowerShell方法
Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/OldSiteName" -Interactive # 重命名站点URL路径 Rename-PnPSite -Identity "https://contoso.sharepoint.com/sites/OldSiteName" -NewUrl "https://contoso.sharepoint.com/sites/NewSiteName"
2. Graph API方法
发送POST请求到 https://graph.microsoft.com/v1.0/sites/{site-id}/rename,请求体如下:
{ "siteUrl": "https://contoso.sharepoint.com/sites/NewSiteName" }
内容的提问来源于stack exchange,提问作者endothermic
相关产品推荐
相关产品推荐

