Секреты Netbox с PowerShell - PullRequest
       1

Секреты Netbox с PowerShell

0 голосов
/ 06 июля 2018

Я пытаюсь получить доступ к секретам в Netbox, как в этом примере

https://netbox.readthedocs.io/en/latest/api/working-with-secrets/

но используя Powershell, но я, кажется, попал в кирпичную стену.

Вот мой код:

Add-Type -AssemblyName System.Web

$Hdrs = @{}
$Hdrs.Add("Authorization","Token fafcaea339cf926c0d79tokenf916aeec2d18bdd")
$Hdrs.Add("Accept","application/json; indent=4")




$body = Get-Content 'c:\key\private.txt'
$body = [System.Web.HttpUtility]::UrlEncode($body) 



Invoke-RestMethod -Method post -Uri "http://netbox.et/api/secrets/get-session-key/" -Headers $Hdrs -body $body

Я просто получаю ошибку

Invoke-RestMethod : Private key was not provided.

Я почти уверен, что проблема в том, как я формирую запрос, однако я недостаточно разбираюсь в curl, чтобы знать, что делает «--data» и как это будет выглядеть в Powershell. Любая помощь будет наиболее ценной.

1 Ответ

0 голосов
/ 06 июля 2018

ОК, было несколько проблем. Во-первых, мне нужно было передать закрытый ключ как объект с двумя чистыми полями, такими как «Я» - заголовок, а во-вторых, мне нужно было закодировать его URL-адресом, определив его в заголовке, а затем использовать функцию для его кодирования снова, что в поворот сделал закрытый ключ недействительным.

Это решение

Add-Type -AssemblyName System.Web

$Hdrs = @{}
$body = @{}

$Hdrs.Add("Authorization","Token fafcaea339cf926c0d7977e3ff916aeec2d18bdd")
$Hdrs.Add("Accept","application/json; indent=4")
$Hdrs.Add("Content-Type","application/x-www-form-urlencoded")


$Pkey = Get-Content -raw 'c:\key\private.txt' 

$body.add("private_key",$PKey)


Invoke-RestMethod -Method post -Uri "http://netbox.net/api/secrets/get-session-key/" -Headers $Hdrs -Body $body
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...