我使用Visual Studios '05在Visual Basic中创建了一个自定义Windows服务。
该服务位于运行Windows Server 2003的服务器上。我已安装该服务,当我手动进入Computer Management
和Start
服务时,它运行正常。
我已使用NET START
命令创建了一个批处理文件来启动服务。每当我运行批处理文件时,服务都无法启动。我从命令提示符处收到此消息:
“服务名称”正在启动。
无法启动“服务名称”。该服务未报告错误。输入NET HELPMSG 3543即可获得更多帮助。
我不知道该怎么做。 (已经“谷歌搜索”了几个小时。)它在我手动运行时启动,但它不会通过批处理文件启动。谢谢!
答案 0 :(得分:0)
尝试强制它在批处理文件中提升。
@ECHO OFF
:: Automatically elevate...
@ECHO OFF
SETLOCAL
:: Check if script was run with administrator privilages
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
:: If the error flag is set, we do not have admin.
IF "%ERRORLEVEL%"=="0" GOTO GOTADMIN
:UACPROMPT
ECHO. Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
ECHO. UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%TEMP%\getadmin.vbs"
EXIT /B
:GOTADMIN
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
CD /D "%~dp0"
ENDLOCAL
GOTO SCRIPTSTART
:: THE ACTUAL SCRIPT STARTS HERE
:SCRIPTSTART
NET START [whatever service]