PowerShell中进行函数从工作代码

问题描述 投票:0回答:1

需要您的意见,如何将脚本的重新安排部分进入功能脚本中调用它,组装新的凭据。

这里是一个脚本:

$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
function powershell
1个回答
0
投票

基于@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
© www.soinside.com 2019 - 2024. All rights reserved.