Как заново реализовать концепцию переменной SessionVariable/WebSession Invoke-RestMethod в PowerShell?

Я хочу завернуть несколько Invoke-RestMethod вызовы двумя функциями, и я должен передать WebSessionпеременная между ними. Цель:

Login -SessionVariable MySession
# do some work while using $MySession
Logout -WebSession $MySession

В Login а также Logout функции, вероятно, будут выглядеть так:

function Login {

    Param(
        [String]SessionVariable
    )
    Invoke-RestMethod ... -SessionVariable $SessionVariable
    Invoke-RestMethod ... -WebSession ???
    Invoke-RestMethod ... -WebSession ???
}

function Logout {

    Param(
        WebSession
    )
    Invoke-RestMethod ... -WebSession $WebSession
}

Но как я могу использовать имя переменной сеанса в Login передать это -WebSessionпараметр? Возможно ли вообще реализовать эту концепцию SessionVariable/WebSession дляInvoke-RestMethod? Я думаю, это как-то связано сcall-by-reference от [ref], но как мне построить мост между именем переменной (строкой) и реальной переменной?

1 ответ

Укажите модификатор глобальной области видимости в строковом значении вашей переменной сеанса, например:

      Login -SessionVariable "global:MySession"

См. эту ссылку для получения более подробной информации о модификаторах области PowerShell.

Другие вопросы по тегам