小编cur*_*cab的帖子

使用 PowerShell 解析 JSON 数组

我在使用 PowerShell 从 API 查询返回特定数据时遇到问题。我正在进行一个简单的 API 调用来获取用户,效果很好。

$Response = Invoke-RestMethod -uri $uri -Method GET -Headers $Headers
$Response
Run Code Online (Sandbox Code Playgroud)

该调用返回以下内容。

Total Sum   Users         Groups
----- ----- -----         ------
    1     1 @{123456789=} @{Test Users=System.Object[]; Global Users=System.Object[]...
Run Code Online (Sandbox Code Playgroud)

$Response.Users 返回以下内容

123456789
---------
@{name= Test Case; fullname=Test Tester Case; office=Area 51;....
Run Code Online (Sandbox Code Playgroud)

问题是数字“123456789”是一个唯一标识符,会随着每个用户的变化而变化。为了从每个用户那里提取所需的数据,我需要能够解析并获取该数字。

这是 $Response.Users 的 JSON 输出

{
    "123456789": {
      "name": "Test Case",
      "fullname": "Tester Test Case",
      "office": "Area 51",
      "country": "United States",
      "groups": [
        "Test Users",
        "Global Users",
        "Test OU"     
      ]
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏!

谢谢

api powershell json

5
推荐指数
1
解决办法
4420
查看次数

psftp 显示“服务器的主机密钥未缓存在注册表中”

尝试使用以下命令从 PowerShell 连接到 SFTP 服务器时,我收到以下消息psftp

错误:

psftp.exe :服务器的主机密钥未缓存在注册表中。您无法保证服务器就是您认为的计算机。
服务器的rsa2密钥指纹为:ssh-rsa 2048 41289438190410491
连接被放弃。

PowerShell 脚本:

$Username = "Username"
$Password = "Password"

psftp.exe sftpserver -l $Username -pw $Password -batch -bc -b C:\batch\download.bat
Run Code Online (Sandbox Code Playgroud)

(psftp.exe 存储在 c:\windows\system32 中)

我之前已经通过 PuTTY 和 WinSCP 从该服务器 SSH 到该服务器,没有出现任何问题。但是,通过 PowerShell 运行时它不会连接。

ssh powershell sftp psftp

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

powershell ×2

api ×1

json ×1

psftp ×1

sftp ×1

ssh ×1