Мне нужно запускать приведенный ниже сценарий с планировщиком задач каждые 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>