MikroTik-Script: Massenerstellung von VPN-Benutzern aus einer Datei

Das gleichzeitige Erstellen vieler VPN-Benutzer ist eine seltene MikroTik-Aufgabe, die jedoch in der Praxis eines Netzwerkadministrators zu finden ist. Das Skript erstellt viele PPP-Benutzer (Point-to-Point-Protokoll) aus einer CSV-Vorlagendatei.

Das Dateiformat CSV steht für englisch Comma-separated values (seltener Character-separated values) und beschreibt den Aufbau einer Textdatei zur Speicherung oder zum Austausch einfach strukturierter Daten. Die Dateinamenserweiterung lautet .csv.

Wikipedia
MikroTik-Script: Massenerstellung von VPN-Benutzern aus einer Datei
CreatePPPUsers-Skriptnachrichten im MikroTik-Geräteprotokoll

Inhalt

  1. Geplante Abfolge von Aktionen
  2. Skript erstellen
  3. Script Code
  4. Video: Skriptarbeit
  5. Lösung von Problemen

Artikel in anderen Sprachen:
?? – MikroTik Script: Bulk create VPN users from a file
?? – MikroTik Script: Crear usuarios de VPN de forma masiva a partir de un archivo
?? – MikroTik Скрипт: Массовое создание VPN пользователей из файла
?? – MikroTik Script: Créer en masse des utilisateurs VPN à partir d’un fichier
?? – MikroTik-script: Maak in bulk VPN-gebruikers aan op basis van een bestand

Geplante Abfolge von Aktionen

  1. Laden Sie die CSV-Dateivorlage herunter (FileTemplate.zip auf GitHub).
  2. Benutzer zur Datei hinzufügen (von Microsoft Excel überprüft);
  3. Laden Sie die Datei auf das MikroTik-Gerät herunter.
  4. Erstellen Sie ein Skript zum Importieren von PPP-Benutzern.
  5. Aktivieren Sie den MikroTik-abgesicherten Modus.
  6. Führen Sie das Skript aus.
  7. Überprüfen des Geräteprotokolls und der Liste der PPP-Benutzer;
  8. Wenn alles in Ordnung ist, schalten Sie den MikroTik-abgesicherten Modus aus.
  9. Schreiben Sie einen Kommentar zu dem Artikel, dass alles gut gelaufen ist (schreiben Sie das Gerätemodell und die RouterOS-Version).
Vorlage zum Erstellen von VPN-Benutzern herunterladen (MHelp.pro)
Laden Sie eine Datei Vorlage zum Erstellen von VPN-Benutzern von GitHub herunter

Skript erstellen

Die folgenden Berechtigungen sind erforderlich, um das Skript ausführen: read, write, test, policy.

[System] -> [Scripts] -> [+] -> [Name: CreatePPPUsers] -> [Policy: read, write, test, policy]

Bevor Sie das Skript ausführen, empfehlen wir, den abgesicherten MikroTik-Modus und den abgesicherten Modus zu deaktivieren, um sicherzustellen, dass das Skript ordnungsgemäß funktioniert – VPN-Benutzer wurden erstellt.

Script Code

# Name: CreatePPPUsers v1.1
# Description: Bulk create VPN users from a file
# Author: Yun Sergey, MHelp.pro 2020
# License: GPL-3.0 License
# Description, purpose and questions: https://mhelp.pro/mikrotik-script-bulk-create-vpn-users-from-a-file/
# More scripts Mikrotik: https://mhelp.pro/tag/mikrotik/

:local FileName "FileTemplate.csv";
:local Separator ",";

:log warning "Script CreatePPPUsers: running. Import from file: $FileName";

:if ([/file get $FileName size]  > 4096) do={
    :log error "Error run script CreatePPPUsers: file size exceeded 4 KB (size constraint of a variable in Router OS 6). Split the file $FileName into several parts.";
    :error "File size exceeded 4 KB. Stop script."
};

:local Content [/file get $FileName contents];
:local ContentLen [:len $Content];
:set Content [:pick $Content 62 $ContentLen];

:local StartCursor 0;
:local EndCursor;
:local LineEndCursor;

:while ($StartCursor < [:len $Content]) do={

    :set LineEndCursor [:find $Content "\r" $StartCursor];

    :local  Cont;

    :local ColumnsArray { "01Name"=""; "02Password"=""; "03Service"=""; "04Profile"=""; "05LocalAdress"=""; "06RemoveAddress"=""};

    # START PARSING STRING
    :foreach Key,Value in=$ColumnsArray do={

        :local Symbol [:pick $Content $StartCursor];

        :if ($Symbol=$Separator) do={:set StartCursor ($StartCursor - 1)};

        :set EndCursor [:find $Content $Separator $StartCursor];

        :if (($EndCursor > $LineEndCursor) or ([:typeof $EndCursor]="nil")) do={:set EndCursor [:find $Content "\r" ($StartCursor-1)];};

        :set Cont [:pick $Content $StartCursor $EndCursor];

        :set ($ColumnsArray -> $Key ) $Cont;

        :set StartCursor ($EndCursor+1);
    };
    # END PARSING STRING

    # START CREATE COMMAND
    :local UserName ($ColumnsArray -> "01Name");

    :if ([/ppp secret find name=$UserName ]) do={
        :log info "Add PPP user: $UserName - already exist! Skipped.";
    } else={
        :local Command "/ppp secret add name=$UserName";

        :local UserPassword ($ColumnsArray -> "02Password");
        :if ($UserPassword != $Separator) do= {:set Command ("$Command" . " password=$UserPassword")};

        :local UserService ($ColumnsArray -> "03Service");
        :if ($UserService != $Separator) do= {:set Command ("$Command" . " service=$UserService")};

        :local UserProfile ($ColumnsArray -> "04Profile");
        :if ($UserProfile != $Separator) do= {:set Command ("$Command" . " profile=$UserProfile")};

        :local UserLocalAdress ($ColumnsArray -> "05LocalAdress");
        :if ($UserLocalAdress != $Separator) do= {:set Command ("$Command" . " local-address=$UserLocalAdress")};

        :local UserRemoveAddress ($ColumnsArray -> "06RemoveAddress");
        :if ($UserRemoveAddress != $Separator) do= {:set Command ("$Command" . " remote-address=$UserRemoveAddress")};

        [:parse $Command];

    };
    # END CREATE COMMAND

    :set StartCursor ($EndCursor+2);
};
:delay 2;
:log warning "Script CreatePPPUsers: completed.";

In der Zeile :local FileName „FileTemplate.csv“; können Sie Ihren Importdateinamen angeben.

MHelp.pro-Skript: Massenerstellung von VPN-Benutzern aus einer CSV-Datei
Script Code zum Erstellen vieler VPN/PPTP-Benutzer

Video: Skriptarbeit

Lösung von Problemen

Geräteprotokoll Meldungen

  1. Script CreatePPPUsers: running. Import from file: FileTemplate.csv— Das Skript importierte Benutzer aus der Datei FileTemplate.csv;
  2. Error run script CreatePPPUsers: file size exceeded 4 KB (size constraint of a variable in Router OS 6)  — Die Größe der Variablen für RouterOS wurde überschritten. 6. Teilen Sie die Datei in kleine Teile oder importieren Sie Benutzer in mehreren Schritten.
  3. Script CreatePPPUsers: completed — Das Skript wurde korrekt beendet.

Das Skript funktioniert beim Start nicht

Überprüfen Sie die Skriptstartrechte. Sie müssen den im Artikel angegebenen entsprechen (in ROS 6.47.8 wurde ein Fehler festgestellt – die standardmäßig festgelegten maximalen Rechte können einen Zugriffsfehler verursachen).


? MikroTik-Script – Fügen Sie mehrere VPN-Benutzer (PPP) aus der CSV-Datei hinzu, in diesem Artikel diskutiert. Ich hoffe, dass es jetzt nicht schwierig sein wird, dem MikroTik-Gerät eine große Anzahl von VPN/PPP-Benutzern hinzuzufügen. Wenn Sie jedoch beim Einrichten auf Probleme stoßen, können Sie diese gerne in die Kommentare eintragen. Ich werde versuchen zu helfen.

✅ Das Skript wird überprüft: MikroTik hAP ac lite (RouterBOARD 952Ui-5ac2nD), RouterOS 6.47.8 (stable).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert