我有一个运行良好的PowerShell脚本, 我在power shelle命令行中调用此脚本:
PS C:> .\myscript.ps1 -var1 variable1 -var2 variable2
我需要在一个带有愚蠢sc创建的服务中安装它,但我找不到启动它的方法
有什么帮助吗?
非常感谢。
答案 0 :(得分:0)
使用Windows service wrapper。它具有高度可配置性,并提供了许多有用的选项,如日志轮换,服务帐户,失败操作等。它甚至可以自动从URL下载资源并将其作为文件本地放置,因此您可以在某处托管脚本并自动更新。以下是启动和运行PowerShell服务的基本步骤:
为您的服务创建XML配置文件。例如:
<service>
<id>MyPsSvc</id>
<name>My PowerShell Service</name>
<description>Does funny stuff with your PC</description>
<executable>PowerShell.exe</executable>
<logmode>reset</logmode>
<arguments>-ExecutionPolicy Bypass -NoLogo -NoProfile -NonInteractive -WindowStyle Hidden -File "myscript.ps1" -var1 variable1 -var2 variable2</arguments>
</service>
配置文件必须与winsw可执行文件具有相同的基本名称,即:
如果您计划在没有互联网连接的PC上使用您的服务,disable digital signature verification for winsw。为此,请创建文件winsw.exe.config
。例如:
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
如果您正在运行Windows Server 2012或Windows 8,并且不想在上述配置文件中安装.Net 2.0支持specify .NET 4.0 runtime support:
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
</startup>
</configuration>
安装您的服务,从命令行运行winsw.exe install
。安装服务后,您可以从Windows服务管理器启动它。