用于创建用户并添加到Servicedesk的Powershell脚本突然不起作用

时间:2018-07-19 06:58:24

标签: json powershell jira jira-rest-api

去年,我创建了一个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

1 个答案:

答案 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"
相关问题