Я работаю над пользовательским командлетом Powershell для доступа к веб-сервису REST.
Вебсервис требует, чтобы я аутентифицировался, и когда я это сделаю, он возвращает аутентификационный токен, который я должен включить в каждый запрос после этого.Custom Powershell Cmdlet - Создать скрытую доступную переменную
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу сохранить токен желаемым образом, чтобы я мог легко использовать его в командах после аутентификации.
Я хотел бы, чтобы он мог работать так же, как Connect-MSOLService работа.
Для тех, кто не знаком с командлетами Office 365, я приведу несколько примеров.
Office 365 командлетов
$ Credentials = Get-Credential
Connect-MSOLService -Credential $ Credentials
Get-MSOLUser
В этом примере Get-MSOLUser вернется каждый пользователь Office 365, потому что Connect-MSOLService был вызван перед началом работы.
Моего Cmdlet
$ Credentials = Get-Credential
$ токены = Connect-WebService -Credential $ Credentials
Get-сервер -token $ токены
Get-Client -token $ фишки
Как вы можете видеть, я должен вернуть токен и сохранить его в переменной и использовать его в каждом вызове, который я делаю после аутентификации.
Таким образом, это приводит меня к моему вопросу, как я могу «ввести» токен в сеанс Powershell и использовать его «под капотом» для каждой команды в моем командлете/модуле после этого?
Благодарим вас за внимание.
Одна вещь, о которой я забыл упомянуть, это то, что я пишу Командлет в C#. Я проверю, можно ли вводить переменные глобальным переменным в коде C#. – Keb
После некоторых мыслей, даже если бы я смог получить токен-трафик для глобальных переменных, мне все равно нужно было бы выполнять команды, такие как Get-Service -token $ token, но спасибо за ваше предложение. – Keb
Я просто помнил, что PowerShell также имеет переменные с переменными, которые будут работать. Я просто не знаю, как это работает внутри C# Cmdlet, поскольку я никогда не писал его. Есть ли конкретная причина, по которой вы пишете ее на C#, а не в PowerShell? –