调用REST API方法来更新本地管理员密码

我必须使用PowerShell为Active Directory编写迁移脚本。 这个脚本将更新存储在用于KeePass的Pleasant Password Server中的服务器的本地管理员的密码。

首先,我使用Windows登录凭据登录KeePass,然后搜索需要更新密码的服务器。

因此,跳过上述功能的脚本,我将从生成密码开始:

function Generate-Password {
    $alphabets = "abcdefghijklmnopqstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#%^*"

    $char = for ($i = 0; $i -lt $alphabets.Length; $i++) { $alphabets[$i] }

    for ($i = 1; $i -le 16; $i++) {
        Write-Host -NoNewline $(Get-Random $char)
        if ($i -eq 16) { Write-Host `n }
    }
}
$pass = Generate-Password 

从上面的脚本生成密码后,我想更新我搜索的服务器的密码。

例如:查找服务器详细信息的附件

我想通过函数Generate-Password更改上面搜索的服务器Generate-Password

为此,我使用了PPS的REST API方法:

function UpdatePassword {
    $update = Invoke-RestMethod -Uri “$KeepassURL/api/v4/rest/credential/$CredentialID/password/$pass” -Headers $headers -Method Put -ContentType ‘application/json’
}

我认为我在这里的语法中犯了一些错误。 我如何传递生成的密码即。 $pass给被调用的REST方法?


你引用的文件说:

PUT credential/:id        ** Update a credential **
Method                    PUT
Requires Authentication?  Yes
Parameters id GUID for credential
Input type Credential Result type None

并且Credential输入类型的文档显示了这个示例JSON文档:

Example Credential (JSON)
{ Id: "2b45438a-2f4a-4d96-9ba9-058ea54252fb" Name: "Credential 0" Username: "Credential 0" Password: null Url: "" Notes: "" GroupId: "cfb2c08e-e990-43b7-99d1-c8e23e0ae00e" Created: "2013-11-18T10:14:27.8218898-07:00" Modified: "2015-06-01T13:26:12.336084-06:00" Expires: null ... }

所以你可能需要做这样的事情:

$CredentialID = '2b45438a-2f4a-4d96-9ba9-058ea54252fb'
$uri  = "$KeepassURL/api/v4/rest/credential/$CredentialID"
$type = 'application/json'
$body = @{
    'Id'       = $CredentialID
    'Name'     = 'Credential 0'
    'Username' = 'Credential 0'
    'Password' = $pass
    ...
}

Invoke-RestMethod -Uri $uri -Method Put -Headers $headers -Body $body -ContentType $type

假设您通过$headers传递已获取的授权令牌。

但未经测试,我不太确定你是否需要所有的键/值对,或者只是相关的,所以你需要稍微玩一下。

链接地址: http://www.djcxy.com/p/91459.html

上一篇: Invoke REST API method to update the local admin password

下一篇: Is there a way to convert a GUID to a UUID in PHP?