You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2016-10-21 15:11:31

demaos
Member
Registered: 2016-10-21
Posts: 3

[9.1] Utilisation de l'api REST en powershell

Bonjour,

L'arrivé de cette API dans la dernière version m’intéresse afin de faire des script basé sur mon inventaire.
Après avoir tenté pendant un petit moment, j'ai du mal à faire fonctionner la fonction search items.

J'arrive à me connecter et récupérer un jeton de session avec la commande Invoke-RestMethod.

Pour ce qui est de la partie code:

$GLPI_api = "glpi-test/apirest.php/"
# Initialisation de la connexion à glpi
$headersInit = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headersInit.Add("Content-Type", 'application/json')
$headersInit.Add("Authorization", 'Basic cmJhbHNlOlJlZnJlNWMwSwD') # à convertir en base 64
$headersInit.Add("App-Token", 'frkjdh7cbfvfa5c6qquelt3gdg08104yzbula87fd') # à créer dans glpi
$SessionToken = Invoke-RestMethod "$($GLPI_api)initSession" -Method Get -Headers $headersInit

# header utilisé pour les requète après initialisation
$HeadersRequest = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$HeadersRequest.Add("Content-Type", 'application/json')
$HeadersRequest.Add("Session-Token", "$($SessionToken.session_token)")
$HeadersRequest.Add("App-Token", 'frkjdh7cbfvfa5c6qquelt3gdg08104yzbula87fd')

# première méthode
Invoke-RestMethod "$($GLPI_api)search/networkequipment?criteria\[0\]\[link\]\=AND\&criteria\[0\]\[itemtype\]\=networkequipment\&criteria\[0\]\[field\]\=4\&criteria\[0\]\[searchtype\]\=contains\&criteria\[0\]\[value\]\=Commutateur\" -Method Get -Headers $HeadersRequest

# seconde méthode
$body = @{
    criteria = @{
        field = 4
        searchtype = "contains"
        value = "Commutateur"
        }
}
$body1 = $body | ConvertTo-Json
Invoke-RestMethod "$($GLPI_api)search/networkequipment" -Method Get -Headers $HeadersRequest -Body $body1

Je n'arrive pas à filtrer et me retrouve constamment avec les 50 premiers résultat de la table.

Suis je le seul à vouloir faire ça?
Et comment puis-je faire fonctionner les filtres de query?

Merci

Last edited by demaos (2016-10-21 16:27:38)

Offline

#2 2016-10-24 09:09:25

demaos
Member
Registered: 2016-10-21
Posts: 3

Re: [9.1] Utilisation de l'api REST en powershell

Alors j'ai trouvé une solution à une partie du problème avec la ligne suivante qui me ressort tous mes switchs affecté.
$List_Switch = $(Invoke-RestMethod "$($GLPI_api)networkequipment?range=0-1000"  -Method Get -Headers $HeadersRequest) | select * | where networkequipmenttypes_id -EQ "2" | where states_id -EQ "2"

Mon problème maintenant est de récupérer l'ip associer au switch qui est stockée dans une table différente de la base.
Je n'arrive même pas à accéder à la liste des ip.

Connaissez vous l'itemtype pour la liste des IP?

Merci

Offline

#3 2016-10-26 12:52:45

demaos
Member
Registered: 2016-10-21
Posts: 3

Re: [9.1] Utilisation de l'api REST en powershell

Personne utilise cette nouvelle fonctionnalité?

Cdt

Offline

#4 2023-01-27 16:19:54

headquaker
Member
Registered: 2015-03-23
Posts: 40

Re: [9.1] Utilisation de l'api REST en powershell

personne ne va te donner la réponse surtout, je cherche aussi mais c'est comme pisser dans un violon

Offline

Board footer

Powered by FluxBB