【发布时间】:2019-02-07 19:27:00
【问题描述】:
我试过了:
$PSinstance.BeginInvoke() | Out-Null
但是当我这样做时,它会等待按下回车键以继续。这很奇怪,因为没有 out-null 它继续正常。我也尝试将它分配给一个变量,它的行为方式相同。如果我在那一行之后写主机,它也会继续,但我不想要任何输出
param(
[Parameter(Mandatory = $true)]
$Location,
[Parameter(Mandatory = $true
)]
$Logs,
[Parameter(Mandatory = $true)]
$date
)
$InitialSessionState = [System.Management.Automation.Runspaces.InitialSessionState]::CreateDefault()
foreach ($Parameter in $PSBoundParameters.Keys) {
$Variable = [System.Management.Automation.Runspaces.SessionStateVariableEntry]::new($Parameter, $PSBoundParameters[$Parameter], $Null)
$InitialSessionState.Variables.Add($Variable)
}
$RunspacePool = [runspacefactory]::CreateRunspacePool(1,[int]$env:NUMBER_OF_PROCESSORS+1, $InitialSessionState, $Host)
$RunspacePool.ApartmentState = "STA"
$RunspacePool.ThreadOptions = "ReuseThread"
$RunspacePool.Open()
$PSinstance = [powershell]::Create().AddScript({
Write-Host "$Location $Logs $date"
})
$PSinstance.RunspacePool = $RunspacePool
$PSinstance.BeginInvoke() | Out-Null
$PSinstance.Streams.Information
【问题讨论】:
-
您能为此创建一个minimal reproducible example 吗?我想尝试一些东西,但我自己没有太多机会使用
.BeginInvoke()。 -
刚刚添加了一些示例代码。 $PSinstance.Streams.Information 是我想要的唯一输出
-
@mklement0 我也在 5.1 上,但 $null= 不起作用
标签: powershell runspace