
# 按桌面标签下发执行脚本或命令 - ExecuteScriptByDesktopTag
#### 功能介绍
按桌面标签下发执行脚本或命令。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/Workspace/doc?api=ExecuteScriptByDesktopTag)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-workspace/workspace_09_0128.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                   | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                                      | 别名 | 依赖的授权项                    |
  |:---|:---|:---|:---|:---|:---|
  | workspace:scripts:executeByDesktopTag | Write | -           | - g:RequestTag/\<tag-key\>   - g:TagKeys    | -  | workspace:scripts:execute |
     
  
 
#### URI
POST /v2/{project_id}/script-executions/by-desktop-tag
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID。 |
   
#### 请求参数
表2请求Body参数 
| 参数                  | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| desktop_tag         | 是    | String           | 桌面标签。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| script_ids          | 否    | Array of strings | 执行的脚本id列表，与command二选一。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| gray_count          | 否    | Integer          | 首批执行的桌面数量，优先级高于gray_desktop_ids。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| gray_desktop_ids    | 否    | Array of strings | 首批执行的桌面id列表，优先级低于gray_count。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| gray_fail_threshold | 否    | Integer          | 灰度失败阈值，灰度执行失败次数达到该值时，不执行下一批任务。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| pre_start           | 否    | String           | 执行脚本前置步骤。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| post_finish         | 否    | String           | 执行脚本完成后置步骤，当前支持关机（stop）、重启（reboot）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| command_content     | 否    | String           | 执行的命令行，与script_ids二选一。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| command_type        | 否    | String           | 命令行类型，执行命令行时必传。 - POWERSHELL：WINDOWS系统使用。   - BAT：WINDOWS系统使用。   - SHELL：LINUX系统使用。    |
| execution_timeout   | 否    | Integer          | 执行脚本的超时时间，单位分钟，默认1分钟。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数      | 参数类型   | 描述    |
|:---|:---|:---|
| task_id | String | 任务id。 |
   
**状态码：400**
表4响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：401**
表5响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：403**
表6响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：404**
表7响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：500**
表8响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
#### 请求示例
```
POST /v2/0bec5db98280d2d02fd6c00c2de791ce/script-executions/by-desktop-tag
{
  "desktop_tag" : [ "key|value" ],
  "script_ids" : [ "0006e69f-5970-4af5-a652-e111055e630b" ],
  "gray_desktop_ids" : [ "00298bb0-104a-4467-9b15-876c6fb7a99f" ],
  "post_finish" : "reboot"
}
```
#### 响应示例
**状态码：200**
正常。
```
{
  "task_id" : "00298bb0-104a-4467-9b15-876c6fb7a99f"
}
```
#### 状态码
| 状态码 | 描述                      |
|:---|:---|
| 200 | 正常。                     |
| 400 | 由于包含语法错误，当前请求无法被服务器理解。  |
| 401 | 鉴权失败。                   |
| 403 | 没有操作权限。                 |
| 404 | 找不到资源。                  |
| 500 | 服务内部错误，具体返回错误码请参见错误码说明。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-workspace/ErrorCode.html)。
