Нужен ваш совет, как переставить часть скрипта в функцию, чтобы вызвать ее в скрипте, собрать новые учетные данные.
Вот скрипт:
$vault="3.3.3.3:8500"
# Check Vault login for Tech profile
# Input Login & password
$pair = (Get-Credential)
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Headers = @{Authorization = $basicAuthValue}
$rawcontent=(Invoke-WebRequest -Uri $vault -Headers $Headers).StatusCode
МожетКто-нибудь даст мне пример, как собрать эту часть кода в функцию, чтобы вызвать ее в раздел if / elseif в случае неправильного ввода учетных данных?
if ( $rawcontent -contains '200' ) { Write-Host "Technician is authenticated!" }
[ elseif ( $rawcontent -contains '400' ) {Write-Host "Bad credentials!" | # call Ask-Creds function to re-enter creds } ]
[ elseif ( $rawcontent -contains '000' ) {Write-Host "Connection failed!" | Exit 1 } ]
UPD1 - приведенный выше код работает.Я попытался собрать некоторую функцию, основанную на приведенном выше коде, но она не возвращает никакого значения переменной $ rawcontent.Может кто-нибудь дать мне подсказку, что я не так делаю:
function Ask-Creds {
param(
$Credential = (Get-credential -message 'Please enter Technician`s login & password for Terminal registration:')
)
$vault="3.3.3.3:8500"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($Credential))
$basicAuthValue = "Basic $encodedCreds"
$Headers = @{Authorization = $basicAuthValue}
$rawcontent=(Invoke-WebRequest -Uri $vault -Headers $Headers).StatusCode
}
Ask-Creds
echo $rawcontent #returns nothing