在一台计算机上,创建一个 Windows 服务。
我曾尝试在另一台计算机上创建相同的文件,但似乎不起作用。
为了解决我的问题,我计划询问所有与 Windows 服务相关的信息,并在两台计算机上进行比较。
虽然这看起来合乎逻辑,但并不是那么简单:有命令sc query
,,,......,这让我担心可能会遗漏某些配置。sc qc
sc qdescription
是否有一个单一的命令行命令可以显示所有与 Windows 服务相关的信息?
只是为了让您了解当前的情况:
质量控制
Prompt>sc qc Application_Server
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: Application_Server
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : E:\Application\Server 2\ApplicationServer.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : Application_Server
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem
查询
Prompt>sc query Application_Server
SERVICE_NAME: Application_Server
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
sc 描述
Prompt>sc qdescription Application_Server
[SC] QueryServiceConfig2 SUCCESS
SERVICE_NAME: Application_Server
DESCRIPTION:
答案1
所有 Windows 服务的信息都使用短服务名称存储在注册表中。例如,使用spooler
:
c:\>reg query HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\spooler
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\spooler
DependOnService REG_MULTI_SZ RPCSS\0http
Description REG_SZ @%systemroot%\system32\spoolsv.exe,-2
DisplayName REG_SZ @%systemroot%\system32\spoolsv.exe,-1
ImagePath REG_EXPAND_SZ %SystemRoot%\System32\spoolsv.exe
ObjectName REG_SZ LocalSystem
[etc...]
您可以仅导出此注册表项并将其导入另一台计算机以迁移整个服务。您仍需要以相同的方式安装底层程序(ApplicationServer.exe
在您的示例中)。您做如果服务设置为“以”用户帐户登录,则需要再次设置凭据,因为这些凭据不可导出。
要获取有关特定服务属性的更多可读详细信息,请查看其他服务控制q
命令:
c:\>sc.exe ?
qc--------------Queries the configuration information for a service.
qdescription----Queries the description for a service.
qfailure--------Queries the actions taken by a service upon failure.
qfailureflag----Queries the failure actions flag of a service.
qsidtype--------Queries the service SID type of a service.
qprivs----------Queries the required privileges of a service.
qtriggerinfo----Queries the trigger parameters of a service.
qpreferrednode--Queries the preferred NUMA node of a service.
qmanagedaccount-Queries whether a services uses an account with a password managed by LSA.
qprotection-----Queries the process protection level of a service.
quserservice----Queries for a local instance of a user service template.