Mikrotik:使用 PHP API 更改 usermanager 用户密码

Mikrotik: change usermanager user password using PHP API

我正在尝试创建一个 PHP 代码,它可以使用 PHP API 更改用户密码,这是我目前的代码:

<?php

require('routeros_api.class.php');

$API = new routerosAPI();

$API->debug = true;

if ($API->connect('192.168.0.101', 'user', 'password')) {

  $API->write('/tool/user-manager/user/getall', false);
    $API->write('=.proplist=username', false);
    $API->write('?username=john');
    $API->write('/tool/user-manager/user/set',false);
    $API->write('password=4321');    

  $READ = $API->read(false);
  $ARRAY = $API->parseResponse($READ);
  print_r($ARRAY);
   $API->disconnect();
}
?>

当我 运行 这段代码时,它似乎只 return 我正在搜索的用户名,但密码没有改变。有帮助吗?

您使用的命令不正确。我没有使用PHP API,所以有些部分将用文字而不是代码来描述。

首先您需要获取要编辑的记录的ID。如果用户名是 john,它将是:

$API->write('/tool/user-manager/user/print', false);
$API->write('=.proplist=.id', false);
$API->write('?username=john');

读取并解析响应。例如返回的 .id*1。使用此更改密码:

$API->write('/tool/user-manager/user/set', false);
$API->write('=.id=*1', false);
$API->write('=password=new_pass');