Windows-Server-2012-R2
從 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>