微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我需要通过命令提示查询 Windows服务以获取其可执行文件的路径.我认为我这样做的方式是:sc qc myServiceName,但是当我这样做时,我收到以下错误

[SC] QueryServiceConfig Failed 122:

The data area passed to a system call is too small.

[SC] GetServiceConfig needs 1094 bytes

我认为这意味着sc命令正在将数据结构发送到某个其他库,这个库对于需要返回的数据来说太小了.而不是SC很好地重用更大的数据结构(1094字节),它轰炸出来,并给我这个丑陋的错误信息.谢谢Micro $oft.

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

在尝试获取可执行文件的路径很长的服务的详细信息时,我也遇到了这个问题. This discussion包含一个解决方法;您可以将缓冲区大小作为参数传递给sc qc.也就是说,如果你这样做:
sc qc <service name> 5000

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

另见SC QC MSDN页面

sc [<ServerName>] qc [<ServiceName>] [<BufferSize>]

哪里:

<BufferSize> Specifies the size (in bytes) of the buffer. The default buffer size is 1,024 bytes.

原文地址:https://www.jb51.cc/windows/369543.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐