我正在尝试使用 Powershell SOAP 在 ServiceNow 中创建票证。我有使用基本身份验证的 SoapUI 工具成功测试的有效 XML。但是当我尝试通过 Powershell 将相同的 XML 发布到 ServiceNow 时,我得到了一个错误。我不确定是身份验证标头(SoapUI 和 PS 中的凭据相同)还是其他问题,因为我从帖子中收到 500 错误,这听起来与身份验证无关。
使用 PS v4。长期使用powershell的用户。第一次使用 ServiceNow 进行 SOAP 和脚本交互。他们的 wiki 没有 powershell 示例 :(
谢谢
$uri = "https://fubar.service-now.com/u_smarts_notification.do?SOAP"
$username = 'looseLips'
$password = 'sinkShips'
$xml = [xml]@"
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://www.service-now.com/u_smarts_notification">
<soapenv:Header/>
<soapenv:Body>
<u:insert>
<u_assignment_group>Some Group</u_assignment_group>
<u_impact>4</u_impact>
<u_urgency>3</u_urgency>
<u_op_tier_1>Malfunction</u_op_tier_1>
<u_op_tier_2>Error</u_op_tier_2>
<u_op_tier_3>Break Fix</u_op_tier_3>
<u_short_description>Subject</u_short_description>
<u_work_notes>Body</u_work_notes>
</u:insert>
</soapenv:Body>
</soapenv:Envelope>
"@
$header = @{"Authorization" = "Basic "+[System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($username+":"+$password))}
$post = Invoke-WebRequest -Uri $uri -Headers $header -Method Post -Body $xml
Invoke-WebRequest : The remote server returned an error: (500) Internal Server
Error.
At R:\ps1\serviceNowINC.ps1:30 char:9
+ $post = Invoke-WebRequest -Uri $uri -Headers $header -Method Post -Body $xml
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:Htt
pWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShe
ll.Commands.InvokeWebRequestCommand