Автоматизация настроек с помощью Mikrotik PowerShell

Форум для общения пользователей MikroPlant
Ответить
AlexeyU
Сообщения: 13
Зарегистрирован: 14 май 2018, 16:18

11 мар 2019, 11:43

Поскольку руки чешутся, иногда надо самому что-то сделать на большом кол-ве устройств и MikroPlant оказался никому не нужен, решил я не бросать решение по автоматизации устройствами и предлагаю его вашему вниманию модуль для PowerShell :)

Последняя версия 1.0.0.3
Скачать: https://yadi.sk/d/HbVRd-ta_sIezw

 Изменения
 1.0.0.3
+ Результаты выводятся в виде объекта, а не списка значения Key/Value. Их можно передавать далее по конвейеру, например {$_.'.id'}
 1.0.0.2
+ в Parameters и Query можно передавать ScriptBlock, например $_.Identity, или любое другое выражение
+ Pop-Mikrotik

Текущие командлеты:
 Get-Mikrotik
Устанавливает соединение с устройством

Код: Выделить всё

Get-Mikrotik [-Username <string>] [-Password <string>] [-Host <string>] [-Port <int>] [-Query <hashtable>] [-Parameters <hashtable>] [-Command <string>] [-Disconnect] [-Reboot]
Параметры:
Username - пользователь
Password - пароль
Host - хост
Port - порт API
Query - фильтр для запроса, например @{"name"="ether1"}
Parameters - параметры для запроса, например @{"disabled"="yes"}
Command - команда для выполнения, например "/ip/dhcp-server/set" (set, print)
Disconnect - отключится после выполнения
Reboot - перезагрузить устройство
Mikrotik - параметр для конвейерной передачи для нескольких запросов

примеры:

Код: Выделить всё

Get-Mikrotik -Host 192.168.88.1 -Username "admin" -Password "" -Command "/ip/dhcp-server/print" -Query @{"name"="default"} | Get-Mikrotik -Command "/ip/dhcp-server/set" -Parameters @{"disabled"="no";".id"={$_.'.id'}}
первый вызов получит все DHCP-Server, где имя равно "default", второй вызов установит параметр "disabled" в "no"
 Get-Addressbook
Прочитать файл адресной книги. Поддерживается только не шифрованная версия (WBX). Выводит записи из книги.

Код: Выделить всё

Get-Addressbook -File <string>
параметры
File - путь к файлу

примеры:

Код: Выделить всё

Get-Addressbook -File addresses.WBX |Get-Mikrotik | Select Identity, ArchitectureName, Version
прочитает все записи из книги, по очереди соединится с каждым устройством и выведет имя, архитектуру, версию
 Push-Mikrotik
Закачать файл в устройство. Работает через SSH.

Код: Выделить всё

Push-Mikrotik -Files <string[]>
параметры
Files - список файлов для закачки (через запятую)

примеры

Код: Выделить всё

Get-Mikrotik -Host 192.168.88.1 -Username "admin" -Password "" | Push-Mikrotik -Files routeros-mipsbe-6.44.npk
подключится к устройству и закачает файл.

Код: Выделить всё

Get-Addressbook -File addresses.WBX | Get-Mikrotik -ErrorAction SilentlyContinue | where ArchitectureName -eq mipsbe | Push-Mikrotik -Files routeros-mipsbe-6.44.npk
первый вызов возьмет все записи из адресной книги, вторым вызовом (Get-Mikrotik) подключится к устройству, третьим вызовом получит только те устройства, где архитектура MIPSBE, и последним вызовом закачает файл обновления.
 Pop-Mikrotik
Скачать файл с устройства. Работает через SSH.

параметры
Files - список файлов для скачивания (через запятую)
RetryCount - кол-во попыток скачать файл
Timeout - задержка перед попытками

примеры

Код: Выделить всё

Get-Addressbook -File addresses.WBX | Get-Mikrotik | Get-Mikrotik -Parameters @{"file"={$_.Identity}} -Export | Pop-Mikrotik -Files {($_.Identity + ".rsc")}
первый вызов возьмет все адреса из адресной книги, вторым запросом происходит подключение к устройству, третьим вызовом происходит экспорт настроек (переключатель -Export) с именем файла равным Identity-устройства и последним параметром скачивается файл.


Тема поднималась пользователем AlexeyU 11 мар 2019, 11:43.


Ответить