Назад | Перейти на главную страницу

Получение значения переменной из сценария PowerShell

Мне нужно запускать приведенный ниже сценарий с планировщиком задач каждые 15 минут (чтобы обновить токен до истечения срока его действия). У меня есть другой сценарий, который будет использовать «значение токена», вызывая функцию «getToken».

Проблема в том, что когда я запускаю сценарий с задачей, он не сохраняет переменную $ token, поскольку сеанс PowerShell создается только для этой задачи. Когда скрипт выполняется без задачи, я могу использовать значение getToken. Создание глобальной переменной не помогло /

Есть ли решение этого или другого пути?

$refreshTokenBody = @{  grant_type = 'refresh_token'
                    client_id = 'clientID'
                    refresh_token= 'TokenNumber123124'}

$tokenRefresh = Invoke-RestMethod -Method Post -ContentType  "application/x-www-form-urlencoded" -Uri "https://url.com" -Body $refreshTokenBody 
$Global:token = $($tokenRefresh.access_token)

Function getToken{ 
       return $token
}

PowerShell сохраняет переменные только в ходе выполнения скрипта. Вам следует как-то посмотреть, как записать переменную для последующего повторного использования. Лично мне для этого нравится реестр, но файловая система также является допустимым выбором.

$Config = Get-ItemProperty "HKLM:\Software\yourregkey"
# Write to registry with this.
New-ItemProperty $Config -Name <Variable Name Here>  -Value <value here> -Type string -Force
# Read from registry with this. 
$ReadFromReg =  $Config.<Variable Name Here>