2017-02-17 10 views
0

私は以下のPowerShellの行を持っています。私はパラメータを渡そうとしていますが、私は運がありません。Powershellの文字列にParamsを渡します。

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

'?'はPSでは動作しません。あなたはおそらく '$ body = if($ request.body){'{" foo ":" bar "}'}'を意味しました。 – wOxxOm

+0

サイドノート: '$ headers = @ {" key1 "= "value1"; "key2" = "value2"; ...} ' – TToni

+0

この回答を見ることもできます:http://stackoverflow.com/questions/35722865 – TToni

答えて

0

私は$body = '{"node": "' + $node + '", "error_msg": "' + $error_msg + '", "source": "' + $source + '", "additional_info": "' + $additional_info + '"}'を使用して終了し、それがうまく働きました。みんなあなたの助けをありがとう。