如何创建windows服务以运行powershell脚本?

如何创建windows服务以运行powershell脚本?,windows,powershell,windows-services,powershell-2.0,windows-server-2008-r2,Windows,Powershell,Windows Services,Powershell 2.0,Windows Server 2008 R2,我有无限循环PowerShell(测试目的)脚本,我想在WindowsServer2008R2(标准)中作为服务运行 我正在使用以下命令创建Windows服务 sc.exe create "My PS1Service" binPath= "powershell.exe -NoLogo -Path D:\TEST\test.ps1" 结果是[SC]CreateService SUCCESS 但是当我尝试运行服务时,它返回以下错误 Windows Could not srart the My PS

我有无限循环PowerShell(测试目的)脚本,我想在WindowsServer2008R2(标准)中作为服务运行

我正在使用以下命令创建Windows服务

sc.exe create "My PS1Service" binPath= "powershell.exe -NoLogo -Path D:\TEST\test.ps1"
结果是
[SC]CreateService SUCCESS

但是当我尝试运行服务时,它返回以下错误

Windows Could not srart the My PS1Service service on Local
Computer
Error 1053: The service did not respond to the start or control
request in a family
这里有任何帮助

由于文章的长度,我不想把它们粘贴到答案中

查看这篇文章,这是我找到的有关powershell服务的最全面的信息来源:

哪些链接指向示例powershell服务:

我最终没有成功地修改它,因为阅读和理解它所花费的时间要比在我的用例中使用不同的方法所花费的时间更长,但如果我将来需要在powershell中创建服务,我肯定会回到这一点


还有这一点:

我在非吸吮式服务管理器(NSSM)方面也取得了成功

我一直在到处寻找一种让PS1成为服务的好方法。 我发现最简单的方法是使用Winsw:


工作起来很有魅力。

您可以通过以下步骤创建:

  • 首先转到PowerShell脚本所在的路径
  • 然后运行以下命令: powershell.exe-执行策略不受限制-文件。\filename.ps1

  • 查看:
    获取帮助新服务
    可能重复。还要指定
    powershell.exe
    的完整路径。您不能将任何可执行文件作为服务运行。它必须响应服务控制管理器的请求。通常,在C语言中,这将涉及从
    System.ServiceProcess.ServiceBase
    继承。你在测试中做过类似的事情吗?ps1?@mikez,不,我没有做类似C#的事情。这只是一个PS1脚本,它有无限循环&将数字写入一个使用本地ID运行的fileTry创建服务。还要检查执行策略。我通常不会在回答中发布链接,因为它们可能会断开,但这些都是很长的文章。该杂志包含使用bit.ly的死链接。这是一个法国人的回购协议: