2016-12-12 25 views
0

我遇到问题更新发布标签,以显示它是否损坏或批准等。我有这个工作通过邮递员,所以我知道问题不是通过这个。我正在使用基本身份验证,输入了我的用户名和密码,并尝试使用它们的详细信息访问uri,但对于PowerShell,它无法正常工作。它适用于Postman,所以它不是证书。下面是我在做什么:Powershell身份验证到竹错误

$user = Read-Host -Prompt "Enter Bamboo Username" 
$pass =  Read-Host -Prompt "Enter password" -AsSecureString 
$secpass = ConvertTo-SecureString $user -AsPlainText -Force 
$credential = New-Object System.Management.Automation.PSCredential($pass,$secpass) 

$baseuri = "http://bamboo.uk.myNetwork.net/rest/api/latest/deploy/version/VersionNumber/status/Approved" 

$Headers = @{ 
'X-Atlassian-Token' = 'nochecK' 
}; 

$json = "application/json" 
Invoke-RestMethod -Uri $baseuri -Method Post -Credential $credential -Headers $Headers -ContentType $json 

这不是工作,我得到401client必须通过身份验证才能访问该资源。我也尝试了所有的下列方式对用户进行认证,但没有工作过:

<# 
$encoded = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($user+":"+$pass)) 
$EncodedUsernamePassword = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($('{0}:{1}' -f $Credential.UserName, $Credential.GetNetworkCredential().Password))) 
$pair = "$($user):$($pass)" 
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair)) 
$basicAuthValue = "Basic $encodedCreds" 
#> 

邮差,返回以下细节:

{ 
    "id": theID, 
    "userName": "myUserName", 
    "displayName": "myName", 
    "creationDate": 1481536833693, 
    "versionState": "APPROVED" 
} 

这表明,与基本身份验证和添加的URI X-Atlassian-Token:nocheck可以正常工作,但是对于PowerShell,我得到了身份验证错误为什么会这样?

+0

我不确定套管是否有问题? ''nochecK'' – 4c74356b41

+0

不,不要紧,加上它在PowerShell中是一样的,所以它会是奇怪的,如果它 –

+0

https://www.powershellgallery.com/packages/PsBamboo/1.3.0.0/Content/Functions %5CInvoke-BambooRestMethod.ps1 – Hackerman

回答

0

问题是当我使用密码作为SecureString类型时,当我改变它只是一个字符串它会工作,所以所有这些方式,包括一个Hackerman链接工作时使用凭证没有SecureString类型。