You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将用户生日设置为Null、空值或默认值?

解决无法移除用户生日字段的问题

看起来你遇到的是SharePoint用户配置文件中生日字段的特殊限制问题——这个字段本质是不可空的DateTime类型,直接设null或者尝试删除都会触发错误,而Delve里显示的0001-01-01T00:00:00Z其实是系统默认的最小日期,但直接通过PATCH请求设置这个值会因为格式或校验问题报错。

下面是经过验证的解决步骤:

  • 使用SharePoint User Profile REST API的正确PATCH格式
    你需要发送一个PATCH请求到用户配置文件端点,同时指定字段的IsUserOverride属性为false,这样会重置该字段为未设置状态,而不是强制设置某个值。请求示例如下:

    PATCH https://your-sharepoint-site/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)/UserProfileProperties
    Content-Type: application/json
    {
      "@v": "'i:0#.f|membership|user@domain.com'",
      "UserProfileProperties": [
        {
          "Key": "SPS-Birthday",
          "Value": "",
          "IsUserOverride": false
        }
      ]
    }
    

    这里的关键是将Value设为空字符串,并把IsUserOverride设为false,这会告诉系统取消用户对该字段的自定义设置,恢复到未填写的状态。

  • 验证结果
    执行完这个请求后,再查看用户的配置文件,生日字段应该会显示为空,而不是0001-01-01。你也可以通过GET请求/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)来确认字段值是否已被重置。

  • 为什么之前的方法不行?

    • 直接设null:因为该字段在SharePoint用户配置元数据中被标记为不可空,所以API会拒绝这种请求。
    • 设置0001-01-01T00:00:00Z:这个日期超出了SharePoint用户配置文件允许的DateTime范围(通常是1900年之后的日期),所以触发了未知错误。
    • 使用DELETE请求:用户配置文件字段不支持单独DELETE操作,必须通过PATCH来修改属性。

如果你使用的是Microsoft Graph API,也可以尝试以下方法:
发送PATCH请求到用户端点,将birthday设为null,同时确保请求头包含Content-Type: application/json,JSON体如下:

{
  "birthday": null
}

不过需要注意,某些租户可能因为配置限制,导致birthday字段无法设为null,这时还是需要回到SharePoint用户配置文件API的方法。

内容的提问来源于stack exchange,提问作者trenoncourt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:32:39