2017-02-17 1 views
0

Ich habe die folgende Powershell-Linie Ich versuche, die Params zu übergeben, aber ich habe kein Glück.Pass Params in Powershell zu string

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

komplette Script:

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 
+3

'?' Funktioniert nicht in PS. Wahrscheinlich meintest du '$ body = if ($ request.body) {'{" foo ":" bar "}} – wOxxOm

+0

Nebenbei bemerkt: Du kannst die Header mit' $ headers = @ {"key1" = erstellen "Wert1"; "Schlüssel2" = "Wert2"; ...} ' – TToni

+0

Sie können diese Antwort auch sehen: http://stackoverflow.com/questions/35722865 – TToni

Antwort

0

I endete mit $body = '{"node": "' + $node + '", "error_msg": "' + $error_msg + '", "source": "' + $source + '", "additional_info": "' + $additional_info + '"}' und es funktionierte gut. Danke an alle für Ihre Hilfe.