中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-04 07:01
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理获取已启动系统服务的DLL调用路径 查看 1,231 回复 6
楼 主 批处理获取已启动系统服务的DLL调用路径 发表于 2007-03-29 01:52 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  我们知道,在xp系统下,有很多系统服务是以svchost.exe来启动的,但是并不清楚每个服务是svchost.exe调用系统的哪一个DLL文件来启动运行的,这个路径可以用搜索注册表可以间接得到,因此有了此批处理。权当灌水~

::::::::::::::::::::::::::::::::::::::
::Modified by lxmxn@bbs.cn-dos.net ::
::Date 21:41 2007-3-27 ::
::GetService.Bat ::
::Test in Windows XP SP2 ::
::::::::::::::::::::::::::::::::::::::

@echo off&setlocal enabledelayedexpansion
echo/&echo/Service Name ExecutablePath
echo/========================================
for /f "tokens=1-2*" %%a in ('tasklist /svc /nh /fi "IMAGENAME EQ SVCHOST.EXE"') DO (
if "%%a"=="svchost.exe" (set S_list=%%c) else (set S_list=%%a%%b%%c)
for %%x in (!S_list!) do (
set "S_name=%%x"
set "S_name=!S_name! "
set "S_name=!S_name:~0,20!"
for /f "tokens=1-2*" %%h in ('REG QUERY HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\%%x\PARAMETERS /V SERVICEDLL ^| findstr "SERVICEDLL"') do (call echo/!S_name!%%j)
)
)
echo/========================================
pause&exit/b
2 发表于 2007-03-29 02:20 ·  中国 黑龙江 牡丹江 电信
中级用户
★★
积分 216
发帖 129
注册 2007-02-14 07:26
19年会员
UID 79469
性别 男
状态 离线
传说中的沙发?
这还算灌水啊
先收藏了
3 发表于 2007-03-29 03:24 ·  中国 四川 成都 教育网
中级用户
★★
积分 346
发帖 103
注册 2004-04-06 00:00
22年会员
UID 21852
性别 男
状态 离线
板凳~~顶
4 发表于 2007-03-29 03:46 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
在地板上瞻仰一下好啦。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
5 发表于 2007-03-29 04:44 ·  中国 广东 广州 海珠区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
19年会员
UID 82819
性别 男
状态 离线
'tasklist /svc /nh /fi "IMAGENAME EQ SVCHOST.EXE"
噢。这个代表了这个只有在xp下才可以运行。。

寒。那么为什么不用

regedit /e呢?
6 发表于 2007-04-26 07:09 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by flyinspace at 2007-3-28 15:44:
'tasklist /svc /nh /fi "IMAGENAME EQ SVCHOST.EXE"
噢。这个代表了这个只有在xp下才可以运行。。

寒。那么为什么不用

regedit /e呢?

为什么要用regedit /e呢?感觉用regedit /e还复杂了。
7 发表于 2007-04-26 10:39 ·  中国 广东 广州 海珠区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
19年会员
UID 82819
性别 男
状态 离线
只是为了兼容性的考虑。。
知,不觉多。不知,乃求知
论坛跳转: