需要您的意见,如何将脚本的重新安排部分进入功能脚本中调用它,组装新的凭据。
这里是一个脚本:
$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
谁能给我一个例子,如何这部分代码组装成的功能,将其调入,如果在错误的情况下/ 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变量的任何值。谁能给我一个提示,就是我错了doint:
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
基于@boxdog的回答,我能够组装修正功能:
function Ask-Creds {
param(
[ValidateNotNull()]
$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
echo "$rawcontent"
}
Ask-Creds