2017-02-17 24 views
0

我有下面的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 
+3

'?'在PS中不起作用。你可能的意思是'$ body = if($ request.body){'{「foo」:「bar」}'}' – wOxxOm

+0

注意:你可以用'$ headers = @ {「key1」= 「值1」; 「KEY2」= 「VALUE2」; ...} – TToni

+0

您可能還想看看這個答案:http://stackoverflow.com/questions/35722865 – TToni

回答

0

我結束了使用$body = '{"node": "' + $node + '", "error_msg": "' + $error_msg + '", "source": "' + $source + '", "additional_info": "' + $additional_info + '"}'和它的工作就好了。謝謝大家的幫助。

相關問題