powershell - 无法在计算机上启动服务 '.'

标签 powershell

我正在尝试使用 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:服务没有及时响应启动或控制请求”

最佳答案

问题是,除非您的服务是专门为处理它而编写的,否则您需要使用特定的服务名称才能运行特定的服务(请注意该名称区分大小写) 。这是因为服务在启动时需要使用其服务名称向服务控制管理器注册以接收启动/停止通知并发送状态更新。如果您使用不同的名称安装服务,但可执行文件无法知道这一点(通过配置设置或其他方式),则此注册将失败并且服务无法启动(对于操作系统来说,它看起来就像服务无法响应)。

您可以将显示名称设置为您喜欢的任何名称,但不能使用任意服务名称,除非服务设计为支持此名称。

关于powershell - 无法在计算机上启动服务 '.',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37651152/

相关文章:

azure - 无法将 PBIX 文件上传到 PowerBI 工作区

powershell - Runbook 中的 Azure DSC 配置

mysql - 无法使用 Powershell 对 mySQL 数据库运行插入查询,但可以通过 PHPMyAdmin UI

c# - 有没有办法对 Azure Powershell Cmdlet 进行子类化,或者类似的方法?

powershell - 用新行替换字符

programming-languages - 如果我已经开始使用 PowerShell,要学习什么(脚本)语言?

windows - 在 Windows 上更改语言和区域设置

powershell - 如何禁止对未经批准的动词发出警告?

powershell - foreach 循环 : How to update collection variable within loop?

arrays - 在PowerShell中使用解压缩