Есть ли более элегантный способ передать параметры в Invoke-Command? - PullRequest
0 голосов
/ 27 мая 2020

У меня есть функция, которая будет выполняться во внутренней сети, но через WINRM на сервере в DMZ.

В основном все функции будут внутри Invoke-Command. Дело в том, что у меня будет около 10 параметров.

Есть ли более элегантный способ передать параметры в invoke-command вместо того, чтобы перечислять их 3 раза?

function foo {

    Param(
        $a,
        $b,
        $c,
        $d,
        $e,
        $f
    )

    Invoke-Command -ComputerName bar -ScriptBlock { 
        Param(
            $a,
            $b,
            $c,
            $d,
            $e,
            $f
        )
        <#Stuff#> 
    } -ArgumentList $a, $b, $c, $d, $e, $f

}

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Вы могли сдать $PSBoundParameters

function foo {
    Param(
        $a,
        $b
    )
    Invoke-Command -ScriptBlock {
        param(
            $z
        )
        Write-Output $z["a"]
        Write-Output $z["b"]
    } -ArgumentList $PSBoundParameters
}

Foo -a "TEST Number 1" -b "TEST Number 2"
0 голосов
/ 27 мая 2020

Другими альтернативами являются $ using: scope или ссылка на $ args [0], $ args [1], et c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...