去年,我创建了一个PS脚本,该脚本负责自动创建用户并将其添加到我们的服务台,为此我们使用了一个特殊的用户创建帐户,凭据在本地保存在文本文件中。一切正常,但是脚本似乎不再起作用,JIRA API发生了变化吗?
我收到以下错误消息:Invoke-Rest-Method:远程服务器返回错误(401)未经授权,响应= Invoke-Rest-Method -Uri ... etc
我检查了一下,我们的用户创建帐户仍然拥有创建用户的所有权限,我可以手动创建它们,并且日志显示该用户也可以通过脚本正常登录。
希望有人可以帮助解决我的问题!
代码如下:
$jiraCredentials = Get-Content -Raw -Path "C:\PowerShellScripts\New-AdUser\credentials.json" |ConvertFrom-Json
$bytes = [System.Text.Encoding]::ASCII.GetBytes("${$jiraCredentials.username}:${$jiraCredentials.password}")
$base64 = [System.Convert]::ToBase64String($bytes)
$basicAuthValue = "Basic $base64"
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.add("Authorization", $basicAuthValue)
$headers.add("X-Experimentalapi", "opt-in")
$headers.add("Content-Type", "application/json")
#$headers.add("X-Atlassian-Token", "nocheck")
$JSON = @"
{
"fullName": "$emailAddressClean",
"email": "$emailAddressClean"
}
"@
$response = Invoke-RestMethod -Uri https://jira.dilax.com/rest/servicedeskapi/customer -Method POST -Body $JSON -ContentType "application/json" -Headers $headers
#add customer to servicedesk
$JSON2 = @"
{
"usernames":[
"$emailAddressClean"
]
}
"@
$response2 = Invoke-RestMethod -Uri https://jira.dilax.com/rest/servicedeskapi/servicedesk/9/customer -Method POST -Body $JSON2 -ContentType "application/json" -Headers $headers
答案 0 :(得分:0)
设法解决此问题,因为未正确传输登录凭据:
$jiraCredentials = Get-Content -Raw -Path "C:\PowerShellScripts\New-AdUser\credentials.json" |ConvertFrom-Json
$user = $jiraCredentials.username
$pass = $jiraCredentials.password
$pair = "${user}:${pass}"
$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
$base64 = [System.Convert]::ToBase64String($bytes)
$basicAuthValue = "Basic $base64"