如何通过PowerShell或Graph API为Azure权利管理目录添加所有者?
你遇到的问题是用错了操作端点——添加目录所有者不是通过PATCH目录本身实现的,而是需要操作目录的owners关系集合。下面是两种可行的实现方式:
使用Microsoft Graph PowerShell模块
不要用Update-MgEntitlementManagementCatalog(这个命令仅用于修改目录的基础属性,比如名称、描述),改用New-MgEntitlementManagementCatalogOwner命令来添加所有者:
# 替换为你的目录ID和目标用户ID $catalogId = "your-catalog-id" $userId = "target-user-id" # 添加用户作为目录所有者 New-MgEntitlementManagementCatalogOwner -AccessPackageCatalogId $catalogId -DirectoryObjectId $userId
这个命令本质是调用Graph API的POST /identityGovernance/entitlementManagement/catalogs/{id}/owners/$ref端点,成功执行后会返回204状态码,此时用户已被添加为目录所有者。
直接调用Graph API
发送POST请求到以下端点,而不是PATCH目录:POST https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/catalogs/{catalogId}/owners/$ref
请求体格式如下:
{ "@odata.id": "https://graph.microsoft.com/v1.0/users/{userId}" }
同样,成功的请求会返回204状态码,你可以通过GET /identityGovernance/entitlementManagement/catalogs/{catalogId}/owners端点验证所有者是否已添加。
为什么之前的PATCH操作无效
PATCH /identityGovernance/entitlementManagement/catalogs/{id}仅用于更新目录的核心属性(如displayName、description、isExternallyVisible等),并不支持直接在请求体中设置所有者。你之前的请求返回204是因为PATCH请求本身格式合法,但并没有对所有者进行任何实际修改。
内容的提问来源于stack exchange,提问作者Paul

