Есть ли способ Out-Null $ PSinstance.BeginInvoke () для Runspaces? - PullRequest
0 голосов
/ 07 февраля 2019

Я пытался:

$PSinstance.BeginInvoke() | Out-Null

, но когда я делаю это, он ожидает нажатия клавиши ввода, чтобы продолжить.Это странно, потому что без out-null это продолжается нормально.Я также попытался присвоить его переменной, и он ведет себя так же.Если я пишу host после этой строки, она также продолжится, но я не хочу вывод

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

1 Ответ

0 голосов
/ 08 февраля 2019

Я понял это.Внизу вы можете сделать это, чтобы обойти повешение:

$PSinstance.RunspacePool = $RunspacePool
$PSinstance.BeginInvoke() | Out-Null 
Write-Host "$($PSinstance.Streams.Information)"
...