如果我想要执行策略绕过,如何在后台运行powershell?

时间:2018-03-14 08:38:43

标签: powershell

我有这个运行powershell脚本的批处理文件。

我想在背景中运行它,但如果我使用" windowstyle隐藏"仍然可见。

powershell -ExecutionPolicy ByPass -windowstyle hidden -File" C:\ script.ps1"

2 个答案:

答案 0 :(得分:0)

您可以运行,例如长期运行的脚本,作为工作。

要启动它,请运行

$job = Start-Job -ScriptBlock {Get-Process}

这将在后台启动Get-Process cmdlet。该脚本也可以是一些自定义脚本或更长的脚本,它不需要是一行代码。

您可以通过运行

来检查其状态
$job | Get-Job 

并接收您运行的输出

$job | Receive-Job

请注意,一旦收到数据,它就会丢失。您只能接收一次,之后由您将其保存在变量或以后的处理中。

最后从您运行的队列中删除作业

$job | Remove-Job

答案 1 :(得分:0)

我使用以下功能:

function bg() {
  Start-Process `
   -WorkingDirectory (Get-Location) `
   -NoNewWindow `
   -FilePath "powershell" `
   -ArgumentList "-NoProfile -command `"$args`" " 
}

它将启动一个新的Powershell实例,该实例在后台执行并允许使用cmdlet。 您这样称呼:

bg "Start-Sleep 2; get-location; write 'done' "