如何在不显示窗口的情况下将powershell脚本作为后台任务运行?

如何在不显示窗口的情况下将powershell脚本作为后台任务运行?,powershell,command-line,background,Powershell,Command Line,Background,我正在创建一个脚本,该脚本将启动性能计数器并将它们存储在.csv文件中,当文件太大时会滚动。从powershell提示符或ISE(我运行的是v.2/win server 2008)运行脚本工作正常,文件运行正常 但是,当我尝试使用下面的cmd提示符行执行命令时(甚至尝试在cmd上使用/k开关),命令提示符会立即关闭,文件不会运行 powershell.exe -windowstyle hidden {iis_test.ps1} 我还尝试了以下操作,虽然我看到Powershell没有停止(我通过

我正在创建一个脚本,该脚本将启动性能计数器并将它们存储在.csv文件中,当文件太大时会滚动。从powershell提示符或ISE(我运行的是v.2/win server 2008)运行脚本工作正常,文件运行正常

但是,当我尝试使用下面的cmd提示符行执行命令时(甚至尝试在cmd上使用/k开关),命令提示符会立即关闭,文件不会运行

powershell.exe -windowstyle hidden {iis_test.ps1}
我还尝试了以下操作,虽然我看到Powershell没有停止(我通过任务管理器监视它,寻找Powershell.exe显示),但我没有看到正在创建的文件

powershell.exe -noexit -windowstyle hidden {iis_test.ps1}
我也没有看到在任何可能的地方(事件查看器、命令提示窗口本身)捕获到任何错误

有什么想法吗?最终,我的目标是让一个vb winforms东西调用这些脚本文件,当然我认为找出命令提示符命令会很有帮助请注意此脚本的可移植性以及在任何Windows 2008 Server系统上运行非常重要(因此我需要远离需要进一步安装的第三方实体)


编辑:我需要使用-file参数来指定要运行的文件。

从DOS/CMD shell尝试以下操作:

powershell.exe -windowstyle hidden -file C:\iis_test.ps1
但当您运行此命令时,将出现一个CMD窗口。
但是,您可以改用VBscript

Set objShell = CreateObject("WScript.Shell")
objShell.Run "CMD /C START /B " & objShell.ExpandEnvironmentStrings("%SystemRoot%") & "\System32\WindowsPowerShell\v1.0\powershell.exe -file " & "YourScript.ps1", 0, False
Set objShell = Nothing

这仍然显示一个窗口,尽管在启动时会短暂显示
Set objShell = CreateObject("WScript.Shell")
objShell.Run "CMD /C START /B " & objShell.ExpandEnvironmentStrings("%SystemRoot%") & "\System32\WindowsPowerShell\v1.0\powershell.exe -file " & "YourScript.ps1", 0, False
Set objShell = Nothing