首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不使用sc的情况下获得Windows服务可执行文件的路径?

如何在不使用sc的情况下获得Windows服务可执行文件的路径?
EN

Server Fault用户
提问于 2011-11-22 23:03:18
回答 4查看 87K关注 0票数 19

我需要通过命令提示符查询windows服务到它的可执行路径的路径。我认为我这样做的方式是:sc qc myServiceName,但是当我这样做时,我会得到以下错误:

SC QueryServiceConfig失败122:传递给系统调用的数据区域太小。SC GetServiceConfig需要1094字节

我认为这意味着sc命令正在向其他库发送数据结构,这些库对于需要返回的数据来说太小了。它没有很好地用更大的数据结构(1094字节)重新尝试,而是给了我这个丑陋的错误信息。谢谢您的微信。

那么有办法解决这个错误吗?我只需要通往可执行文件的路径,但是如果需要的话,我会将它从其他文本中解析出来。

EN

回答 4

Server Fault用户

回答已采纳

发布于 2011-11-23 15:06:31

我找到了一个可行的解决方案:

reg query "HKLM\System\CurrentControlSet\Services\<serviceName>" /v "ImagePath"

当然,这需要一些解析,但它为我提供了services.msc对话框提供的完整路径。

票数 14
EN

Server Fault用户

发布于 2014-08-21 13:44:56

当我试图获取到可执行文件的路径非常长的服务的细节时,我也遇到了这个问题。这一讨论包含一个解决方案;您可以将缓冲区大小作为参数传递给sc qc。也就是说,如果你这样做了:

代码语言:javascript
运行
复制
sc qc <service name> 5000

“传递给系统调用的数据区域太小”错误消失了。

还请参见SC QC MSDN页面:

代码语言:javascript
运行
复制
sc [<ServerName>] qc [<ServiceName>] [<BufferSize>]

其中:

指定缓冲区的大小(以字节为单位)。默认缓冲区大小为1,024字节。

票数 24
EN

Server Fault用户

发布于 2011-11-22 23:12:27

使用wmic命令行实用程序尝试它。下面是我的机器上一个名为CrashPlanService的服务的示例。

代码语言:javascript
运行
复制
C:\Users\Ben>wmic service CrashPlanService get PathName

PathName
"C:\Program Files\CrashPlan\CrashPlanService.exe"

基本上,wmic service <<YourService>> get PathName

票数 7
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/333904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档