Dua*_* Le 6 .net c# windows service
我正在寻找一种方法来找出任何 Windows服务的命令行参数.
对于非服务过程中,命令行参数,可以在Windows任务管理器如本使用WMI发现,或者通过编程后.
不幸的是,这两个解决方案不适用于由ServiceController.Start(String [] args)方法启动的Windows服务 .它们都只在命令行中显示可执行文件路径,即使传入了一些参数.
更新:
我还尝试创建一个简单的服务,只记录它对事件日志的任何命令行参数.我开始使用"sc.exe start <my service> <arg1>"并验证了<arg1>写入事件日志的内容.但是,没有一个解决方案对我有用.我看到的仍然只是可执行文件的路径.我的操作系统版本是Windows Server 2008 R2 SP1 x64 Enterprise.
服务有两种类型的参数
第二种类型的参数可能仅由服务本身知道,如果实现使用它,而许多服务不是这种情况.当我们看到像PEB这样的低级窗口结构时,我不认为Windows会跟踪这个:http://msdn.microsoft.com/en-us/library/ms684855(v = VS.85).aspx,甚至它的未记录部分http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/NT%20Objects/Process/PEB.html
您可以找到服务 EXE 文件的详细信息并进行编辑,或者仅查看服务注册表项中的命令行选项。你会发现在下面
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services
Run Code Online (Sandbox Code Playgroud)
如果您决定更改此设置,请务必重新启动“服务”窗口,因为它不会实时重新阅读。