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

如何通过sfdx为Scratch Org用户分配角色并发送密码重置通知

SFDX CLI 操作Scratch Org用户创建、角色分配、密码重置方案

角色分配失效问题解决

直接在创建命令中添加UserRole='System Admin'不生效有两个原因:

  • User对象关联角色的字段API名为UserRoleId,而非UserRole,参数名本身错误
  • UserRoleId是查找关联字段,仅接受对应角色的18位Salesforce ID作为入参,直接传入角色名称无法被API识别

可行操作步骤如下:

  1. 先查询目标角色的ID,执行SOQL查询命令获取「System Admin」角色的ID值:
sfdx force:data:soql:query -u <targetusername> -q "SELECT Id, Name FROM UserRole WHERE Name = 'System Admin'"

查询返回结果中Id字段的值即为角色ID,格式为00E开头的18位字符串。

  1. 两种方式完成角色分配:
  • 方式一:创建用户时直接传入正确参数,同步完成角色分配
sfdx force:user:create -u <targetusername> -v <targetdevhubusername> Username=testuser1@my.org LastName=testuser1 Email=me@my.org profileName='System Administrator' UserRoleId='<上一步查到的角色ID>' generatepassword=true
  • 方式二:先创建用户,再单独更新用户记录绑定角色
    先执行原有不带角色参数的创建命令,拿到新创建用户的ID后,执行记录更新命令:
sfdx force:data:record:update -u <targetusername> -s User -i <新创建用户的18位ID> -v "UserRoleId=<查询到的角色ID>"

密码生成、重置及通知功能实现

对应UI操作的CLI实现方式如下:

  • 等价于「创建用户时勾选Generate new password and notify user immediately」:原有命令中添加的generatepassword=true参数已经实现该效果,执行后系统会自动生成随机密码,向用户填写的邮箱发送包含重置登录链接的通知邮件。
  • 等价于「用户创建后点击Reset Password按钮重置密码」:单独执行密码生成命令即可:
sfdx force:user:password:generate -u <targetusername> -o testuser1@my.org --notifyuser true

参数说明:

  • -o后指定需要重置密码的目标用户名,省略时默认重置当前targetusername对应用户的密码
  • --notifyuser true表示重置后自动向用户邮箱发送密码通知,和UI手动重置的触发逻辑完全一致
  • 本地调试无需发邮件场景:去掉--notifyuser参数执行命令,终端会直接返回生成的明文密码,可直接用于登录,无需查收邮件:
sfdx force:user:password:generate -u <targetusername> -o testuser1@my.org

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:18:21