Ad Widget

Collapse

Requête API sur Zabbix depuis Powershell

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Admin-SIS-56
    Junior Member
    • Oct 2018
    • 11

    #1

    Requête API sur Zabbix depuis Powershell

    Bonjour a Tous,
    Je rencontre une difficulté en essayant de communiquer avec un serveur Zabbix via ces API.

    En Curl sur un serveur linux je n'ai pas de Problème
    curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc": "2.0", "method": "user.login", "params": {"username": "BOB", "password": "BOB"}, "id": 1, "auth": null}' "zabbix.truc.fr/zabbix/api_jsonrpc.php"
    Le serveur me répond
    {"jsonrpc":"2.0","result":"890d4e7981493d95248f 6ca 8f1afb129","id":1}
    le result contenant mon Jeton d'authentification

    Je souhaite faire la même chose mais en Powershell

    $params = @{
    body = @{
    "jsonrpc"= "2.0"
    "method"= "user.login"
    "params"= @{
    "user"= 'BOB'
    "password"= 'BOB'
    "id"= 1
    "auth"= $null
    }
    } | ConvertTo-Json
    uri = "$URL_Zbx/api_jsonrpc.php"
    headers = @{"Content-Type" = "application/json"}
    method = "Post"
    }

    $Reponse = Invoke-WebRequest @params -UseBasicParsing
    $Reponse

    Je n'ai pas d'erreur d'exécution, j'ai un code 200 en retour, tout semble OK
    sauf que je n'ai pas de contenu

    StatusCode : 200
    StatusDescription : OK
    Content :
    RawContent : HTTP/1.1 200 OK
    Access-Control-Allow-Origin: *
    Access-Control-Allow-Headers: Content-Type
    Access-Control-Allow-Methods: POST
    Access-Control-Max-Age: 1000
    Keep-Alive: timeout=5, max=100
    Connectio...
    Forms :
    Headers : {[Access-Control-Allow-Origin, *], [Access-Control-Allow-Headers, Content-Type], [Access-Control-Allow-Methods, POST], [Access-Control-Max-Age, 1000]...}
    Images : {}
    InputFields : {}
    Links : {}
    ParsedHtml :
    RawContentLength : 0


    Avez-vous une une piste sur ce qui manque, pour qu'en retour j'arrive bien à récupérer la réponse
    contenant mon Jeton de session.

    Cdt,
  • Ldzzzz
    Junior Member
    • Feb 2024
    • 14

    #2
    Salut,

    Le problème ici est que tu utilise la commande Invoke-WebRequest qui est plus adaptée pour des pages complètes, alors que dans ton cas, tu cherches à interagir avec une API REST. C'est donc mieux d'utiliser Invoke-RestMethod.

    Tu peux utiliser ce code en Powershell, testé et fonctionnel :

    #####################

    $URL_Zbx = "https://zabbix.truc.fr/zabbix/api_jsonrpc.php"
    $body = @{
    jsonrpc = "2.0"
    method = "user.login"
    params = @{
    username = 'BOB'
    password = 'BOB'
    }
    id = 1
    auth = $null
    } | ConvertTo-Json

    $headers = @{ "Content-Type" = "application/json" }

    $response = Invoke-RestMethod -Uri $URL_Zbx -Method Post -Headers $headers -Body $body

    $response


    #################

    Pour ce genre de petit problème de commande n'hésites à utiliser ChatGPT qui peux dans certain cas, t'aider facilement et rapidement. (Je t'ai répondu grâce à ça )

    Comment

    • Admin-SIS-56
      Junior Member
      • Oct 2018
      • 11

      #3
      Bonjour
      Merci c'a marche super ,
      Je suis un vieux , je ne sais pas utiliser convenablement ChatGPT

      Cdt,

      Comment

      Working...