使用PHP API编辑Mikrotik用户配置文件

zgr*_*024 3 php api mikrotik

我正在构建一个WiFi身份验证工具,其中包含用户配置文件编辑和访客凭据等.

我可以写用户到mikrotik并删除用户没有问题,但我找不到任何有关编辑用户配置文件的文档.我想我可以删除它并添加一条新记录,但这样效率很低,可能会产生用户密钥问题.

我正在使用class.routeros_api.php而我正在使用版本6.30

添加用户是这样完成的......

$response = $api->comm("/tool/user-manager/user/add",array(
    "customer"          => "admin",
    "username"          => "guest_user",
    "location"          => "Guest",
    "first-name"        => "Guest",
    "last-name"         => "1",
    "password"          => "somepw",
    "shared-users"      => "1",
    "copy-from"         => "00:00:00:00:00:00"
));
Run Code Online (Sandbox Code Playgroud)

删除用户...

$response = $api->comm("/tool/user-manager/user/remove",array(
    ".id"               => "*15"
));
Run Code Online (Sandbox Code Playgroud)

所以我认为编辑用户会像...

$response = $api->comm("/tool/user-manager/user/edit",array(
    ".id"               => "*15",
    "username"          => "someotheruser",
    "password"          => "someotherpass"
));
Run Code Online (Sandbox Code Playgroud)

但是,我收到的错误是......

<<< [28] /tool/user-manager/user/edit 
<<< [8] =.id=*14 
<<< [14] =username=someotheruser
<<< [19] =password=someotherpass

>>> [5/5] bytes read. 
>>> [5, 35]!trap 
>>> [26/26] bytes read. 
>>> [26, 8]=message=unknown parameter 
>>> [5/5] bytes read. 
>>> [5, 1]!done
Run Code Online (Sandbox Code Playgroud)

如果有人之前已经完成此操作并且可以帮助使用"/ tool/user-manager/user/edit"命令的相应语法,那么将非常感激.

zgr*_*024 5

因此,经过一些关于这个东西是如何工作的研究,看起来我只是使用了错误的命令.

在mikrotik上编辑用户的正确方法是执行以下操作...

$api->comm("/tool/user-manager/user/set",array(
    ".id"               => "*14",
    "username"          => "somenewuser"
    "password"          => "somenewpassword",
));
Run Code Online (Sandbox Code Playgroud)

实际上,"set"是您为每个功能发布编辑的方式."编辑"用于多行编辑.

特别感谢drew010对WinBox的想法以及命令wiki的链接.