powershell 无法在计算机“.”上启动服务

bjp0bcyl  于 2023-04-21  发布在  Shell
关注(0)|答案(7)|浏览(273)

我正在尝试使用PowerShell创建并启动Windows服务。
当我使用除一个特定名称之外的其他名称时,服务已创建,但无法启动。
当我用exe文件的名称创建服务时,它可以启动,但当我给予它一个不同的名称时,它无法启动。
我正在以管理员身份运行PowerShell脚本。
有什么建议吗?

function InstallService(
    [string] $MsDeployHost,
    [string] $ServiceName,
    [string] $DisplayName,
    [string] $ServicePath,
    [string] $ServiceDescription,
    [object] $Credential) {
    if($MsDeployHost -eq "local") {        
        New-Service -name $ServiceName -binaryPathName $ServicePath -displayName $ServiceName -StartupType Automatic
        Start-Service -name $ServiceName
    } else { ....

我得到的错误:启动服务:由于以下错误,无法启动服务“Service1(Service1)”:无法在计算机“.”上启动服务Service1。
当我尝试手动启动它时,我得到:“错误1053:服务未及时响应启动或控制请求”

mhd8tkvw

mhd8tkvw1#

问题是,除非您的服务是为了处理它而编写的,否则您需要使用一个 * 特定的服务名 * 来运行一个特定的服务(注意名称区分大小写)。这是因为服务在启动时需要使用其服务名称向服务控制管理器注册,以接收启动/停止通知并发送状态更新。如果使用其他名称安装服务,但可执行文件无法知道这一点(通过配置设置或诸如此类的东西),则此注册将失败,并且服务无法启动(对于操作系统,它将看起来好像服务未能响应)。
您可以将显示名称设置为任何您喜欢的名称,但是不能使用任意的服务名称,除非服务被设计为支持此名称。

dbf7pr2w

dbf7pr2w2#

我遇到了同样的问题,对我来说,问题是服务应该使用用户的凭据运行,而用户的密码已经更改-之后服务无法再登录,无法运行。
您可以在失败后立即查看“服务控制管理器”日志,如下所示:

> Get-EventLog -LogName System -Source 'Service Control Manager' -Newest 5

   ----- ----          ---------   ------                 ---------- -------
   19762 Sep 30 12:31  Error       Service Control M...   3221232472 The SERVICE_NAME service failed to start due to the following error: ...
   19761 Sep 30 12:31  Error       Service Control M...   3221232510 The SERVICE_NAME service was unable to log on as .\USERNAME with the currently configured password due to the following error: ...
#...
> (Get-EventLog -LogName System -Source 'Service Control Manager' -Newest 5)[1] | Format-List

Index              : 19764
EntryType          : Error
InstanceId         : 3221232510
Message            : The SERVICE_NAME service was unable to log on as .\USERNAME with the currently configured password due to the following error:
                     %%1326

                     To ensure that the service is configured properly, use the Services snap-in in Microsoft Management Console (MMC).
Category           : (0)
CategoryNumber     : 0
ReplacementStrings : {SERVICE_NAME, .\USERNAME, %%1326}
Source             : Service Control Manager
TimeGenerated      : 9/30/2021 12:35:02 PM
TimeWritten        : 9/30/2021 12:35:02 PM
UserName           :

错误1326是“错误的用户名或密码”。

7d7tgy0s

7d7tgy0s3#

我的问题是服务控制管理器中的服务是Disabled
然后我把它放在manual状态和Start-Service工作。
高温高压

niwlg2el

niwlg2el4#

如果这也是一个.NET控制台应用程序,则必须调用ServiceBase。在Programidercs中的main方法中运行。这为我修复了这个错误。
在这里查看更具体的代码:.NET console application as Windows service

tuwxkamq

tuwxkamq5#

对我来说,这是一个不正确的值在appsettings.json。没有转义一些特殊字符。

qni6mghb

qni6mghb6#

此错误消息非常一般,并没有说任何有用的东西。原因可能是缺少配置文件,缺少.NET框架或程序所依赖的任何东西。
要查看真实的的原因,请打开Windows事件日志,并在Windows日志-〉应用程序下查找任何错误。

7rfyedvj

7rfyedvj7#

我得到了同样的错误,发现我错过了在服务器上安装.Net 6。值得看看事件日志。

相关问题