OdysseusYuan/LKY_OfficeTools · error · Exception

修改服务 {serv_name} 的描述信息为 {serv_description} 失败!

Error message

修改服务 {serv_name} 的描述信息为 {serv_description} 失败!

What it means

Thrown in Com_ServiceOS.Config.Modify.Description when the `sc description ...` stdout lacks the success markers 成功/success (Com_ServiceOS.cs:465-472). This is the genuine sc rejection path; most commonly access-denied from a non-elevated caller. The throw is caught by Description's catch and it returns false (Com_ServiceOS.cs:479-483).

Source

Thrown at LKY_OfficeTools/Common/Com_ServiceOS.cs:471

                        {
                            //已经创建服务,才进行修改
                            string cmd_modify_desc = $"sc description \"{serv_name}\" \"{serv_description}\"";
                            var modify_result = Com_ExeOS.Run.Cmd(cmd_modify_desc);

                            //非空判断,若返回值为空,则为假
                            if (string.IsNullOrEmpty(modify_result))
                            {
                                throw new Exception($"执行修改 {serv_name} 描述信息时,返回值为空!");
                            }

                            //判断是否修改描述成功
                            if (modify_result.Contains("成功") || modify_result.ToLower().Contains("success"))
                            {
                                return true;
                            }
                            else
                            {
                                throw new Exception($"修改服务 {serv_name} 的描述信息为 {serv_description} 失败!");
                            }
                        }
                        else
                        {
                            throw new Exception($"尝试修改服务 {serv_name} 的描述信息为 {serv_description},但该服务未安装!");
                        }
                    }
                    catch (Exception Ex)
                    {
                        new Log(Ex.ToString());
                        return false;
                    }
                }
            }
        }
    }
}

View on GitHub (pinned to 6f9a1bd471)

Solutions

  1. Run elevated; sc description requires administrator privileges.
  2. Keep the description within SCM length limits and avoid illegal characters.
  3. Check the bool return and the logged sc output for the exact failure.
  4. Retry after elevating; confirm via `sc qdescription <name>`.

Example fix

// before
Com_ServiceOS.Config.Modify.Description(name, desc);

// after
bool ok = Com_ServiceOS.Config.Modify.Description(name, desc);
if (!ok) { /* elevate and retry; see log for sc error */ }
Defensive patterns

Strategy: validation

Validate before calling

bool ok = Com_ServiceOS.Config.Modify.Description(name, desc);
if (!ok) { /* elevate and retry; see log for sc error */ }

Prevention

When it happens

Trigger: Calling Modify.Description without admin rights (sc description requires elevation), or with malformed/oversized description text that sc rejects.

Common situations: Non-elevated service-management tool; description exceeding SCM limits; reconfiguration while SCM is busy.

Related errors


AI-assisted analysis of OdysseusYuan/LKY_OfficeTools@6f9a1bd471 (2026-08-13). Data as JSON: /api/errors/70bb0af367518252. Report an issue: GitHub.