Автоматизация настроек с помощью Mikrotik PowerShell
Добавлено: 11 мар 2019, 11:43
AlexeyU
Поскольку руки чешутся, иногда надо самому что-то сделать на большом кол-ве устройств и MikroPlant оказался никому не нужен, решил я не бросать решение по автоматизации устройствами и предлагаю его вашему вниманию модуль для PowerShell :)
Последняя версия 1.0.0.3
Скачать: https://yadi.sk/d/HbVRd-ta_sIezw
Текущие командлеты:
Последняя версия 1.0.0.3
Скачать: https://yadi.sk/d/HbVRd-ta_sIezw
Текущие командлеты:
Устанавливает соединение с устройством
Параметры:
Username - пользователь
Password - пароль
Host - хост
Port - порт API
Query - фильтр для запроса, например @{"name"="ether1"}
Parameters - параметры для запроса, например @{"disabled"="yes"}
Command - команда для выполнения, например "/ip/dhcp-server/set" (set, print)
Disconnect - отключится после выполнения
Reboot - перезагрузить устройство
Mikrotik - параметр для конвейерной передачи для нескольких запросов
примеры:
первый вызов получит все DHCP-Server, где имя равно "default", второй вызов установит параметр "disabled" в "no"
Код: Выделить всё
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'}}
Прочитать файл адресной книги. Поддерживается только не шифрованная версия (WBX). Выводит записи из книги.
параметры
File - путь к файлу
примеры:
прочитает все записи из книги, по очереди соединится с каждым устройством и выведет имя, архитектуру, версию
Код: Выделить всё
Get-Addressbook -File <string>
File - путь к файлу
примеры:
Код: Выделить всё
Get-Addressbook -File addresses.WBX |Get-Mikrotik | Select Identity, ArchitectureName, Version
Закачать файл в устройство. Работает через SSH.
параметры
Files - список файлов для закачки (через запятую)
примеры
подключится к устройству и закачает файл.
первый вызов возьмет все записи из адресной книги, вторым вызовом (Get-Mikrotik) подключится к устройству, третьим вызовом получит только те устройства, где архитектура MIPSBE, и последним вызовом закачает файл обновления.
Код: Выделить всё
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
Скачать файл с устройства. Работает через SSH.
параметры
Files - список файлов для скачивания (через запятую)
RetryCount - кол-во попыток скачать файл
Timeout - задержка перед попытками
примеры
первый вызов возьмет все адреса из адресной книги, вторым запросом происходит подключение к устройству, третьим вызовом происходит экспорт настроек (переключатель -Export) с именем файла равным Identity-устройства и последним параметром скачивается файл.
параметры
Files - список файлов для скачивания (через запятую)
RetryCount - кол-во попыток скачать файл
Timeout - задержка перед попытками
примеры
Код: Выделить всё
Get-Addressbook -File addresses.WBX | Get-Mikrotik | Get-Mikrotik -Parameters @{"file"={$_.Identity}} -Export | Pop-Mikrotik -Files {($_.Identity + ".rsc")}