Как заново реализовать концепцию переменной 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.