首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PowerShell的Netbox秘密

使用PowerShell的Netbox秘密
EN

Stack Overflow用户
提问于 2018-07-06 08:16:52
回答 1查看 888关注 0票数 0

我正在尝试访问Netbox中的秘密,如本例所示。

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

但是使用Powershell但我好像撞到了砖墙。

这是我的代码:

代码语言:javascript
复制
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

我只是得到了错误

代码语言:javascript
复制
Invoke-RestMethod : Private key was not provided.

我很确定问题是我是如何形成请求的,但是,我对curl还不太了解,不知道在Powershell中做什么--数据,以及它会是什么样子。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-06 11:04:10

好吧,有很多问题。首先,我需要将私钥作为一个对象传递给对象,其中包含两个清晰的字段,比如我是头字段;另一个是,我通过在报头中定义私钥来对其进行URL编码,然后使用一个函数再次对其进行URL编码,从而使私钥无效。

这就是解决办法

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51205891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档