将Params传递给Powershell中的字符串

时间:2017-02-17 03:28:07

标签: powershell

我有以下的Powershell专栏,我试图通过参数,但是我没有运气。

{request.body ? "$body = \"" :""}}{\"node\":\"$node\",\"error_msg\":\"$error_msg\",\"source\":\"$source\",\"additional_info\":\"$additional_info\"}"}

完整的脚本:

Param(
    [string]$node,
    [string]$error_msg,
    [string]$source,
    [string]$additional_info
)

# Eg. User name="admin", Password="admin" for this code sample.
$user = "admin"
$pass = "password"

# Build auth header
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user, $pass)))

# Set proper headers
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add('Authorization',('Basic {0}' -f $base64AuthInfo))
$headers.Add('Accept','application/json')
$headers.Add('Content-Type','application/json')

# Specify endpoint uri
$uri = "https://url.com/api/now/table/em_event"

# Specify HTTP method
$method = "post"

# Specify request body
{request.body ? "$body = \"" :""}}{\"node\":\"$node\",\"error_msg\":\"$error_msg\",\"source\":\"$source\",\"additional_info\":\"$additional_info\"}"}

# Send HTTP request
$response = Invoke-WebRequest -Headers $headers -Method $method -Uri $uri -Body $body

# Print response
$response.RawContent

1 个答案:

答案 0 :(得分:0)

我最终使用$body = '{"node": "' + $node + '", "error_msg": "' + $error_msg + '", "source": "' + $source + '", "additional_info": "' + $additional_info + '"}',它运作得很好。谢谢大家的帮助。