使用以下代码:
payload = {
"UserName": new_user_name,
"Password": new_user_password,
"RoleId": "Administrator",
"Enabled": True
}
url = f"https://{idrac_ip}/redfish/v1/AccountService/Accounts"
headers = {'Content-Type': 'application/json'}
response = requests.post(url, auth=HTTPBasicAuth(admin_username, admin_password), headers=headers, data=json.dumps(payload), verify=False)
我收到以下错误:
{
"statusCode": 405,
"body": "\"Failed to create user. Response: {\\\"error\\\":{\\\"@Message.ExtendedInfo\\\":[{\\\"Message\\\":\\\"Unable to run the method because the requested HTTP method is not allowed.\\\",\\\"MessageArgs\\\":[],\\\"[email protected]\\\":0,\\\"MessageId\\\":\\\"IDRAC.2.5.SYS402\\\",\\\"RelatedProperties\\\":[],\\\"[email protected]\\\":0,\\\"Resolution\\\":\\\"Enter a valid HTTP method and retry the operation. For information about valid methods, see the Redfish Users Guide available on the support site.\\\",\\\"Severity\\\":\\\"Informational\\\"}],\\\"code\\\":\\\"Base.1.8.GeneralError\\\",\\\"message\\\":\\\"A general error has occurred. See ExtendedInfo for more information\\\"}}\""
}
我能够返回允许的方法:
Allowed methods: GET,HEAD,POST,OPTIONS
不确定我在这里缺少什么,我已经确定:
它是 iDRAC 9 固件版本 5.10.30.00。
你的帖子正是我过去几天经历的事情。 我能够使用 Postman 尝试各种可能的方式来查看对象,从而弄清楚这一点。 要创建新用户,请尝试此路径并使用 PATCH 方法:https://{idrac}/redfish/v1/AccountService/Accounts/x,其中 x 是 1 到 16 之间的任意数字(默认管理员 = 1)。 最好先查看帐户中已有的内容,否则 PATCH 方法会覆盖现有帐户。 有效负载应包含以下内容:
payload = {
"UserName": newuser,
"Password": newpassword,
"RoleId": "Administrator", # Default role, change as needed
"Enabled": True
}
如果您想拥有更具体的权限(例如仅允许“登录”或“配置用户”),路径为 https://{idrac}/redfish/v1/Managers/iDRAC.Embedded.1/Attributes,方法是 PATCH(再次)。 有效负载为(x 代表帐户 ID)
payload = {
"Attributes":
{
"Users.x.Privilege": 5
}
}
仅供大家一笑,这里是特殊权限的具体数字(例如登录 (1) + 配置用户 (4) = 5)。
Login 1 Configure 2 Configure Users 4 Logs 8 System Control 16 Access Virtual Console 32 Access Virtual Media 64 System Operations 128 Debug 256
希望这有帮助。