【问题标题】:Cannot start a VB Windows Service from batch无法从批处理中启动 VB Windows 服务
【发布时间】:2012-05-30 04:13:43
【问题描述】:

我使用 Visual Studios '05 在 Visual Basic 中创建了一个自定义 Windows 服务。

该服务在我们运行 Windows Server 2003 的服务器上。我已经安装了该服务,当我手动进入Computer ManagementStart 服务时,它可以完美运行。

我创建了一个批处理文件来使用NET START 命令启动服务。每当我运行批处理文件时,服务都不会启动。我从命令提示符收到此消息:

“服务名称”正在启动。

“服务名称”无法启动。该服务没有报告错误。键入 NET HELPMSG 3543 可获得更多帮助。

我不知道该怎么办。 (已经“谷歌搜索”了几个小时。)当我手动运行它时它会启动,但它不会通过批处理文件启动。谢谢!

【问题讨论】:

  • 执行批处理文件“以管理员身份运行”
  • 它在 windows server 2003 上。没有“以管理员身份运行”选项。另外,我以管理员身份登录。谢谢!
  • 请参阅support.microsoft.com/kb/325859 以启用 Windows 2003 中的运行方式选项
  • 好吧,我计划将批处理文件作为“计划任务”运行。它需要每晚自行运行。

标签: vb.net windows-services batch-file windows-server-2003


【解决方案1】:

尝试强制它在批处理文件中提升。

@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]

【讨论】:

    猜你喜欢
    • 2012-05-23
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    相关资源
    最近更新 更多