22

I have infinite loop PowerShell (Testing purpose) script, which I want to run as a Service in Windows Server 2008 R2 (Standard).

I'm using the following command to create the Windows service,

sc.exe create "My PS1Service" binPath= "powershell.exe -NoLogo -Path D:\TEST\test.ps1"

And the result is [SC] CreateService SUCCESS

But when I try to run the service My PS1Service , it return the following error

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

Any help here !!!

7
  • possible duplicate of Can you write Windows services in Powershell Commented Oct 22, 2014 at 11:07
  • look at: get-help New-Service. Also specify the full path to powershell.exe Commented Oct 22, 2014 at 11:09
  • 1
    You can't just run any executable as a service. It has to respond to requests of the service control manager. Typically, in C# this would involve inheriting from System.ServiceProcess.ServiceBase. Are you doing anything like that in test.ps1? Commented Oct 23, 2014 at 5:09
  • @mikez , No im not doing anything like C# stuff. its just a PS1 script which has infinite loop & writes numbers into a file Commented Oct 27, 2014 at 12:08
  • Try creating service which runs with local ID. Also check the execution policy. Commented Aug 21, 2017 at 8:37

4 Answers 4

6

Due to the length of the articles I don't want to paste them in the answer.

Check out this post which is the most comprehensive source of info I've found regarding powershell services: https://msdn.microsoft.com/en-us/magazine/mt703436.aspx

which links to an example powershell service: http://jf.larvoire.free.fr/progs/PSService.ps1

I didn't end up successfully modifying this as it was going to take me longer to read through it and understand it than it would to use a different method for my use case, but I'd certainly be going back to that if I needed to create a service in powershell in the future.

Also this: https://www.sapien.com/blog/2017/07/12/write-a-windows-service-in-powershell/

Sign up to request clarification or add additional context in comments.

4 Comments

I wouldn't normally post links in an answer as they are subject to breaking but these are very long articles.
The magazine contains dead links using bit.ly. Here's the french guy repo: github.com/JFLarvoire/SysToolsLib/blob/master/PowerShell/…
You don't need to post everything, but you should post the basics.
Thank you. This is a very useful, simple to setup infrastructure. @Dimas the github link was invaluable.
3

I've been looking all over the place for a decent way to make a PS1 into a service. Easiest way I found is with Winsw: https://github.com/kohsuke/winsw

Works like a charm.

Comments

0

I have had success with Non-sucking Service Manager (NSSM) as well. https://nssm.cc/

1 Comment

I've subsequently used this and it works well and is easy to use
-7

you can create by below step:

  1. First go to the path where PowerShell script located.
  2. Then run below Command: powershell.exe -ExecutionPolicy UnRestricted -File .\filename.ps1

1 Comment

This does not work under any scenario

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.