{"record":{"id":"70bb0af367518252","repo":"OdysseusYuan/LKY_OfficeTools","slug":"serv-name-serv-description","errorCode":null,"errorMessage":"修改服务 {serv_name} 的描述信息为 {serv_description} 失败！","messagePattern":"修改服务 (.+?) 的描述信息为 (.+?) 失败！","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"LKY_OfficeTools/Common/Com_ServiceOS.cs","lineNumber":471,"sourceCode":"                        {\n                            //已经创建服务，才进行修改\n                            string cmd_modify_desc = $\"sc description \\\"{serv_name}\\\" \\\"{serv_description}\\\"\";\n                            var modify_result = Com_ExeOS.Run.Cmd(cmd_modify_desc);\n\n                            //非空判断，若返回值为空，则为假\n                            if (string.IsNullOrEmpty(modify_result))\n                            {\n                                throw new Exception($\"执行修改 {serv_name} 描述信息时，返回值为空！\");\n                            }\n\n                            //判断是否修改描述成功\n                            if (modify_result.Contains(\"成功\") || modify_result.ToLower().Contains(\"success\"))\n                            {\n                                return true;\n                            }\n                            else\n                            {\n                                throw new Exception($\"修改服务 {serv_name} 的描述信息为 {serv_description} 失败！\");\n                            }\n                        }\n                        else\n                        {\n                            throw new Exception($\"尝试修改服务 {serv_name} 的描述信息为 {serv_description}，但该服务未安装！\");\n                        }\n                    }\n                    catch (Exception Ex)\n                    {\n                        new Log(Ex.ToString());\n                        return false;\n                    }\n                }\n            }\n        }\n    }\n}\n","sourceCodeStart":453,"sourceCodeEnd":489,"githubUrl":"https://github.com/OdysseusYuan/LKY_OfficeTools/blob/6f9a1bd471918f3310e6be4a6d7f42d0d6e467cf/LKY_OfficeTools/Common/Com_ServiceOS.cs#L453-L489","documentation":"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).","triggerScenarios":"Calling Modify.Description without admin rights (sc description requires elevation), or with malformed/oversized description text that sc rejects.","commonSituations":"Non-elevated service-management tool; description exceeding SCM limits; reconfiguration while SCM is busy.","solutions":["Run elevated; sc description requires administrator privileges.","Keep the description within SCM length limits and avoid illegal characters.","Check the bool return and the logged sc output for the exact failure.","Retry after elevating; confirm via `sc qdescription <name>`."],"exampleFix":"// before\nCom_ServiceOS.Config.Modify.Description(name, desc);\n\n// after\nbool ok = Com_ServiceOS.Config.Modify.Description(name, desc);\nif (!ok) { /* elevate and retry; see log for sc error */ }","handlingStrategy":"validation","validationCode":"bool ok = Com_ServiceOS.Config.Modify.Description(name, desc);\nif (!ok) { /* elevate and retry; see log for sc error */ }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run elevated; sc description requires administrator privileges.","Keep description length within SCM limits and avoid illegal characters.","Check the bool return and the logged sc output for the exact reason.","Confirm with `sc qdescription <name>` after a successful change."],"tags":["windows-service","scm","service-config","access-denied"],"backgroundTag":null,"analyzedSha":"6f9a1bd471918f3310e6be4a6d7f42d0d6e467cf","analyzedAt":"2026-08-13T18:00:34.810Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}