我在PowerShell中编写了一个循环和检查内容的程序。 我想将其转换为Windows服务。 我已经创建了一个Windows服务(在Admin-> Services中),但我无法启动它。 我很确定我错过了系统需要调用的正确接口,以便启动/停止/暂停/等服务。
我在VB / C#/ MS-lang中可以找到很多例子但是没有关于如何使用PowerShell做到这一点。是否有任何文档(或优选代码示例)可以帮助解决这个问题?
答案 0 :(得分:4)
这里有一些问题:
CreateProcessAsUser
启动服务进程,因此您需要将SCM指向可执行二进制文件,而不是脚本。如果您不能使用调度程序(虽然我强烈建议您尝试),我想您可以编写一个充当服务的可执行二进制文件。然后它会代表您执行PowerShell和您的脚本。我在想像以前用于Windows Server 2003资源工具包的srvany
程序可以为你引导服务。
答案 1 :(得分:3)
您可以使用PowerGUI的编译脚本到服务选项:http://documents.software.dell.com/DOC144271
答案 2 :(得分:2)
如果您绝对想要将PowerShell代码执行到服务中,我认为您可以为PowerShell代码编写C#服务包装器。
您找到了如何使用C#和it's simple to call Powershell from C#创建服务的示例。所以我很惊讶,因为小型的SrvAny面向PowerShell还不存在。
我的建议是,您最好用C#作为服务重写代码。
答案 3 :(得分:1)
将允许您将任何内容作为服务启动。此应用程序也有免费的替代方案,也是如此。