我正在嘗試使用 LastPass Enterprise API 來使用 Powershell 在我們的系統中自動創建新用戶。我似乎無法在我的代碼中正確呼叫 API。我幾乎可以肯定它與“資料”物件有關。這是我穿過身體的批處理物件。
$lastPassObject = @{
cid = "G1TUROWN";
provhash = "N0TM!NE";
cmd = "batchadd";
data = @(
{
username = $email;
fullname = $firstName " " $lastName;
password = "Toys4Trucks22!";
password_reset_required = "true";
}
)
}
這是我的 API 呼叫
Invoke-RestMethod -Uri "https://lastpass.com/enterpriseapi.php" -Method Post -Body $lastPassObject -ContentType "application/json"
其次是我收到的錯誤

API參考:https: //support.lastpass.com/help/add-new-users-via-lastpass-api
uj5u.com熱心網友回復:
您需要在發送之前將您的正文轉換為 json。此外,您將您的Data部分放在陣列內的腳本塊中。這需要是一個哈希表,而不是一個腳本塊。
$lastPassObject = @{
cid = "G1TUROWN";
provhash = "N0TM!NE";
cmd = "batchadd";
data = @(
# This need to be an hashtable. You were missing the @
@{
username = $email;
fullname = $firstName " " $lastName;
password = "Toys4Trucks22!";
password_reset_required = $true;
}
)
}
$Body = $lastPassObject | ConvertTo-Json
Invoke-RestMethod -Uri "https://lastpass.com/enterpriseapi.php" -Method Post -Body $Body -ContentType "application/json"
如果在那之后您仍然有問題,請確保檢查實際 json 的樣子(之后ConvertTo-Json),這樣您就可以準確地知道您發送的是什么,并且可以更容易地發現差異。例如,當我第一次這樣做時,我立即看到資料部分全錯了,格式化明智并因此發現了缺失@。
此外,仍然通過查看轉換后的 json 和他們檔案中的示例,您可以看到這password_reset_required是一個布林值。我將您更改"true"為,$true以便相關的 json 符合預期。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/496664.html
