diff --git a/content/self-host/client-configuration/advanced-settings/_index.de.md b/content/self-host/client-configuration/advanced-settings/_index.de.md index 88f6fd5..36d9576 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.de.md +++ b/content/self-host/client-configuration/advanced-settings/_index.de.md @@ -913,7 +913,25 @@ Die "Scroll-Stil"-Option in den Einstellungen jedes Peers steuert dann den Scrol | Installation erforderlich | Werte | Standard | Beispiel | | :------: | :------: | :------: | :------: | -| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` | +| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` | + +**Hinweis**: Die `scrolledge`-Option ist ab RustDesk 1.4.4 verfügbar. + +### edge-scroll-edge-thickness + +Diese Option steuert die Randdicke, wenn `scroll-style` auf `scrolledge` gesetzt ist. Die Randdicke bestimmt die Größe des scrollbaren Bereichs an den Bildschirmrändern. + +Diese Option ist nur wirksam, wenn `scroll-style=scrolledge`. + +**Ort**: + +1. **Desktop** Einstellungen → Anzeige → Randscroll-Randdicke + +| Installation erforderlich | Werte | Standard | Beispiel | +| :------: | :------: | :------: | :------: | +| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` | + +**Hinweis**: Diese Option ist ab RustDesk 1.4.4 verfügbar. ### image-quality diff --git a/content/self-host/client-configuration/advanced-settings/_index.en.md b/content/self-host/client-configuration/advanced-settings/_index.en.md index 79b3012..1f2f3f6 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.en.md +++ b/content/self-host/client-configuration/advanced-settings/_index.en.md @@ -916,7 +916,25 @@ The "scroll-style" option in each peer's settings will then control the scroll s | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | -| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` | +| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` | + +**Note**: The `scrolledge` option is available starting from RustDesk 1.4.4. + +### edge-scroll-edge-thickness + +This option controls the edge thickness when `scroll-style` is set to `scrolledge`. The edge thickness determines the size of the scrollable area at the screen edges. + +This option is only effective when `scroll-style=scrolledge`. + +**Location**: + +1. **Desktop** Settings → Display → Edge scroll edge thickness + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` | + +**Note**: This option is available starting from RustDesk 1.4.4. ### image-quality diff --git a/content/self-host/client-configuration/advanced-settings/_index.es.md b/content/self-host/client-configuration/advanced-settings/_index.es.md index c2dd860..b8d3f4e 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.es.md +++ b/content/self-host/client-configuration/advanced-settings/_index.es.md @@ -913,7 +913,25 @@ La opción "estilo de scroll" en las configuraciones de cada par controlará lue | Instalación requerida | Valores | Predeterminado | Ejemplo | | :------: | :------: | :------: | :------: | -| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` | +| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` | + +**Nota**: La opción `scrolledge` está disponible a partir de RustDesk 1.4.4. + +### edge-scroll-edge-thickness + +Esta opción controla el grosor del borde cuando `scroll-style` está configurado en `scrolledge`. El grosor del borde determina el tamaño del área desplazable en los bordes de la pantalla. + +Esta opción solo es efectiva cuando `scroll-style=scrolledge`. + +**Ubicación**: + +1. **Escritorio** Configuración → Pantalla → Grosor del borde de scroll + +| Instalación requerida | Valores | Predeterminado | Ejemplo | +| :------: | :------: | :------: | :------: | +| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` | + +**Nota**: Esta opción está disponible a partir de RustDesk 1.4.4. ### image-quality diff --git a/content/self-host/client-configuration/advanced-settings/_index.fr.md b/content/self-host/client-configuration/advanced-settings/_index.fr.md index 0eea46d..656514a 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.fr.md +++ b/content/self-host/client-configuration/advanced-settings/_index.fr.md @@ -913,7 +913,25 @@ L'option "style de défilement" dans les paramètres de chaque pair contrôlera | Installation requise | Valeurs | Défaut | Exemple | | :------: | :------: | :------: | :------: | -| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` | +| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` | + +**Note** : L'option `scrolledge` est disponible à partir de RustDesk 1.4.4. + +### edge-scroll-edge-thickness + +Cette option contrôle l'épaisseur du bord lorsque `scroll-style` est défini sur `scrolledge`. L'épaisseur du bord détermine la taille de la zone défilable aux bords de l'écran. + +Cette option n'est effective que lorsque `scroll-style=scrolledge`. + +**Emplacement** : + +1. **Bureau** Paramètres → Affichage → Épaisseur du bord de défilement + +| Installation requise | Valeurs | Défaut | Exemple | +| :------: | :------: | :------: | :------: | +| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` | + +**Note** : Cette option est disponible à partir de RustDesk 1.4.4. ### image-quality diff --git a/content/self-host/client-configuration/advanced-settings/_index.it.md b/content/self-host/client-configuration/advanced-settings/_index.it.md index 5425dcd..6f3f652 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.it.md +++ b/content/self-host/client-configuration/advanced-settings/_index.it.md @@ -913,7 +913,25 @@ L'opzione "stile scorrimento" nelle impostazioni di ogni peer controllerà quind | Installazione richiesta | Valori | Predefinito | Esempio | | :------: | :------: | :------: | :------: | -| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` | +| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` | + +**Nota**: L'opzione `scrolledge` è disponibile a partire da RustDesk 1.4.4. + +### edge-scroll-edge-thickness + +Questa opzione controlla lo spessore del bordo quando `scroll-style` è impostato su `scrolledge`. Lo spessore del bordo determina la dimensione dell'area scorrevole ai bordi dello schermo. + +Questa opzione è efficace solo quando `scroll-style=scrolledge`. + +**Posizione**: + +1. **Desktop** Impostazioni → Display → Spessore bordo scorrimento + +| Installazione richiesta | Valori | Predefinito | Esempio | +| :------: | :------: | :------: | :------: | +| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` | + +**Nota**: Questa opzione è disponibile a partire da RustDesk 1.4.4. ### image-quality diff --git a/content/self-host/client-configuration/advanced-settings/_index.ja.md b/content/self-host/client-configuration/advanced-settings/_index.ja.md index dbb47c4..1159573 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.ja.md +++ b/content/self-host/client-configuration/advanced-settings/_index.ja.md @@ -877,7 +877,25 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko, | インストール必要 | 値 | デフォルト | 例 | | :------: | :------: | :------: | :------: | -| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` | +| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` | + +**注意**:`scrolledge` オプションは RustDesk 1.4.4 以降で利用可能です。 + +### edge-scroll-edge-thickness + +このオプションは、`scroll-style` が `scrolledge` に設定されている場合のエッジの厚さを制御します。エッジの厚さは、画面の端でのスクロール可能な領域のサイズを決定します。 + +このオプションは、`scroll-style=scrolledge` の場合にのみ有効です。 + +**場所**: + +1. **デスクトップ** 設定 → ディスプレイ → エッジスクロールの厚さ + +| インストール必要 | 値 | デフォルト | 例 | +| :------: | :------: | :------: | :------: | +| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` | + +**注意**:このオプションは RustDesk 1.4.4 以降で利用可能です。 ### image-quality diff --git a/content/self-host/client-configuration/advanced-settings/_index.pl.md b/content/self-host/client-configuration/advanced-settings/_index.pl.md index 629e65c..5b5c785 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.pl.md +++ b/content/self-host/client-configuration/advanced-settings/_index.pl.md @@ -916,7 +916,25 @@ Opcja "scroll-style" w ustawieniach każdego partnera będzie wtedy kontrolować | Wymagana instalacja | Wartości | Domyślne | Przykład | | :------: | :------: | :------: | :------: | -| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` | +| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` | + +**Uwaga**: Opcja `scrolledge` jest dostępna od RustDesk 1.4.4. + +### edge-scroll-edge-thickness + +Ta opcja kontroluje grubość krawędzi, gdy `scroll-style` jest ustawiony na `scrolledge`. Grubość krawędzi określa rozmiar obszaru przewijanego na krawędziach ekranu. + +Ta opcja jest skuteczna tylko wtedy, gdy `scroll-style=scrolledge`. + +**Lokalizacja**: + +1. **K. stacjonarny** Ustawienia → Wyświetlanie → Grubość krawędzi przewijania + +| Wymagana instalacja | Wartości | Domyślne | Przykład | +| :------: | :------: | :------: | :------: | +| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` | + +**Uwaga**: Ta opcja jest dostępna od RustDesk 1.4.4. ### image-quality diff --git a/content/self-host/client-configuration/advanced-settings/_index.pt.md b/content/self-host/client-configuration/advanced-settings/_index.pt.md index ab87316..b5aed13 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.pt.md +++ b/content/self-host/client-configuration/advanced-settings/_index.pt.md @@ -915,7 +915,25 @@ A opção "estilo de rolagem" nas configurações de cada par controlará então | Instalação necessária | Valores | Padrão | Exemplo | | :------: | :------: | :------: | :------: | -| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` | +| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` | + +**Nota**: A opção `scrolledge` está disponível a partir do RustDesk 1.4.4. + +### edge-scroll-edge-thickness + +Esta opção controla a espessura da borda quando `scroll-style` está definido como `scrolledge`. A espessura da borda determina o tamanho da área rolável nas bordas da tela. + +Esta opção só é efetiva quando `scroll-style=scrolledge`. + +**Localização**: + +1. **Desktop** Configurações → Display → Espessura da borda de rolagem + +| Instalação necessária | Valores | Padrão | Exemplo | +| :------: | :------: | :------: | :------: | +| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` | + +**Nota**: Esta opção está disponível a partir do RustDesk 1.4.4. ### image-quality diff --git a/content/self-host/client-configuration/advanced-settings/_index.ro.md b/content/self-host/client-configuration/advanced-settings/_index.ro.md index 2bd6126..42f14d1 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.ro.md +++ b/content/self-host/client-configuration/advanced-settings/_index.ro.md @@ -916,7 +916,25 @@ Setarea din fiecare peer va controla stilul de derulare. | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | -| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` | +| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` | + +**Notă**: Opțiunea `scrolledge` este disponibilă începând cu RustDesk 1.4.4. + +### edge-scroll-edge-thickness + +Această opțiune controlează grosimea marginii când `scroll-style` este setat pe `scrolledge`. Grosimea marginii determină dimensiunea zonei derulabile la marginile ecranului. + +Această opțiune este efectivă doar când `scroll-style=scrolledge`. + +**Locație**: + +1. **Desktop** Settings → Display → Edge scroll edge thickness + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` | + +**Notă**: Această opțiune este disponibilă începând cu RustDesk 1.4.4. ### image-quality diff --git a/content/self-host/client-configuration/advanced-settings/_index.zh-cn.md b/content/self-host/client-configuration/advanced-settings/_index.zh-cn.md index f4ce01a..93c3953 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.zh-cn.md +++ b/content/self-host/client-configuration/advanced-settings/_index.zh-cn.md @@ -914,7 +914,25 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko, | 安装需要 | 值 | 默认值 | 示例 | | :------: | :------: | :------: | :------: | -| 否 | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` | +| 否 | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` | + +**注意**:`scrolledge` 选项从 RustDesk 1.4.4 开始可用。 + +### edge-scroll-edge-thickness + +此选项控制当 `scroll-style` 设置为 `scrolledge` 时的边缘厚度。边缘厚度决定了屏幕边缘可滚动区域的大小。 + +此选项仅在 `scroll-style=scrolledge` 时有效。 + +**位置**: + +1. **桌面** 设置 → 显示 → 边缘滚动边缘厚度 + +| 安装需要 | 值 | 默认值 | 示例 | +| :------: | :------: | :------: | :------: | +| 否 | 20-150 | 100 | `edge-scroll-edge-thickness=100` | + +**注意**:此选项从 RustDesk 1.4.4 开始可用。 ### image-quality diff --git a/content/self-host/client-configuration/advanced-settings/_index.zh-tw.md b/content/self-host/client-configuration/advanced-settings/_index.zh-tw.md index 0e42f05..b566da2 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.zh-tw.md +++ b/content/self-host/client-configuration/advanced-settings/_index.zh-tw.md @@ -916,7 +916,25 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko, | 安裝需要 | 值 | 預設值 | 範例 | | :------: | :------: | :------: | :------: | -| 否 | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` | +| 否 | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` | + +**注意**:`scrolledge` 選項從 RustDesk 1.4.4 開始可用。 + +### edge-scroll-edge-thickness + +此選項控制當 `scroll-style` 設定為 `scrolledge` 時的邊緣厚度。邊緣厚度決定了螢幕邊緣可滾動區域的大小。 + +此選項僅在 `scroll-style=scrolledge` 時有效。 + +**位置**: + +1. **桌面** 設定 → 顯示 → 邊緣滾動邊緣厚度 + +| 安裝需要 | 值 | 預設值 | 範例 | +| :------: | :------: | :------: | :------: | +| 否 | 20-150 | 100 | `edge-scroll-edge-thickness=100` | + +**注意**:此選項從 RustDesk 1.4.4 開始可用。 ### image-quality diff --git a/content/self-host/rustdesk-server-pro/console/_index.de.md b/content/self-host/rustdesk-server-pro/console/_index.de.md index 8a0cc9a..6daee20 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.de.md +++ b/content/self-host/rustdesk-server-pro/console/_index.de.md @@ -143,23 +143,197 @@ oder #### Benutzerverwaltung (`users.py`) **Hilfe anzeigen:** - ./users.py -h +`./users.py -h` **Benutzer anzeigen:** - ./users.py --url --token view [--name ] [--group_name ] +`./users.py --url --token view [--name ] [--group_name ]` -**Filter:** -`--name`: Benutzername -`--group_name`: Benutzergruppe +**Filter:** +- `--name`: Benutzername (unscharfe Suche) +- `--group_name`: Benutzergruppe (exakte Übereinstimmung) **Beispiel:** - ./users.py --url https://example.com --token view --group_name admins +`./users.py --url https://example.com --token view --group_name Default` -**Operationen:** -`view` kann durch `enable`, `disable` oder `delete` ersetzt werden. +**Grundlegende Operationen:** -**Beispiel (Benutzer deaktivieren):** - ./users.py --url https://example.com --token disable --name testuser +- **Benutzer deaktivieren:** + `./users.py --url --token disable --name testuser` + +- **Benutzer aktivieren:** + `./users.py --url --token enable --name testuser` + +- **Benutzer löschen:** + `./users.py --url --token delete --name testuser` + +**Benutzererstellung und Einladung:** + +- **Neuen Benutzer erstellen:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "Notiz"]` + + Erforderlich: `--name`, `--password`, `--group_name` + Optional: `--email`, `--note` + +- **Benutzer per E-Mail einladen:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "Notiz"]` + + Erforderlich: `--email`, `--name`, `--group_name` + Optional: `--note` + +**2FA und Sicherheitsoperationen:** + +- **2FA-Erzwingung aktivieren:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + Erforderlich: `--web-console-url` + +- **2FA-Erzwingung deaktivieren:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Optional: `--web-console-url` + +- **2FA zurücksetzen:** + `./users.py --url --token reset-2fa --name username` + +- **E-Mail-Verifizierung deaktivieren:** + `./users.py --url --token disable-email-verification --name username` + +- **Erzwungenes Abmelden:** + `./users.py --url --token force-logout --name username` + +**Hinweise:** +- Bei Operationen auf mehrere Benutzer (durch Filter übereinstimmend) wird eine Bestätigung angefordert +- Wenn keine Benutzer übereinstimmen, wird "Found 0 users" angezeigt + +--- + +#### Benutzergruppenverwaltung (`user_group.py`) + +**Hilfe anzeigen:** +`./user_group.py -h` + +**Benutzergruppen anzeigen:** +`./user_group.py --url --token view [--name ]` + +**Beispiel:** +`./user_group.py --url https://example.com --token view --name "Vertriebsteam"` + +**Gruppenoperationen:** + +- **Benutzergruppe erstellen:** + `./user_group.py --url --token add --name "Gruppenname" [--note "Beschreibung"] [--accessed-from ''] [--access-to '']` + + Beispiel mit Zugriffskontrolle: + `./user_group.py --url --token add --name "Engineering" --accessed-from '[{"type":0,"name":"Manager"}]' --access-to '[{"type":1,"name":"Dev-Server"}]'` + +- **Benutzergruppe aktualisieren:** + `./user_group.py --url --token update --name "Gruppenname" [--new-name "Neuer Name"] [--note "Neue Notiz"] [--accessed-from ''] [--access-to '']` + +- **Benutzergruppe löschen:** + `./user_group.py --url --token delete --name "Gruppenname"` + + Unterstützt kommagetrennte Namen: `--name "Gruppe1,Gruppe2,Gruppe3"` + +**Benutzerverwaltung in Gruppen:** + +- **Benutzer in Gruppe anzeigen:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + Filter: + - `--name`: Gruppenname (exakte Übereinstimmung, optional) + - `--user-name`: Benutzername (unscharfe Suche, optional) + + Beispiel: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Benutzer zur Gruppe hinzufügen:** + `./user_group.py --url --token add-users --name "Gruppenname" --users "user1,user2,user3"` + +**Zugriffskontrollparameter:** + +- `--accessed-from`: JSON-Array, das definiert, wer auf diese Benutzergruppe zugreifen kann + - Type 0 = Benutzergruppe (z.B. `[{"type":0,"name":"Admins"}]`) + - Type 2 = Benutzer (z.B. `[{"type":2,"name":"john"}]`) + +- `--access-to`: JSON-Array, das definiert, worauf diese Benutzergruppe zugreifen kann + - Type 0 = Benutzergruppe (z.B. `[{"type":0,"name":"Support"}]`) + - Type 1 = Gerätegruppe (z.B. `[{"type":1,"name":"Server"}]`) + +**Hinweis:** Verwenden Sie einfache Anführungszeichen um JSON-Arrays, um Shell-Parsing-Probleme zu vermeiden. + +**Berechtigungsanforderungen:** +- `view/add/update/delete/add-users` Befehle benötigen **Benutzergruppen-Berechtigung** +- `view-users` Befehl benötigt **Benutzerberechtigung** + +--- + +#### Gerätegruppenverwaltung (`device_group.py`) + +**Hilfe anzeigen:** +`./device_group.py -h` + +**Gerätegruppen anzeigen:** +`./device_group.py --url --token view [--name ]` + +**Beispiel:** +`./device_group.py --url https://example.com --token view` + +**Gruppenoperationen:** + +- **Gerätegruppe erstellen:** + `./device_group.py --url --token add --name "Gruppenname" [--note "Beschreibung"] [--accessed-from '']` + + Beispiel: + `./device_group.py --url --token add --name "Produktion" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Gerätegruppe aktualisieren:** + `./device_group.py --url --token update --name "Gruppenname" [--new-name "Neuer Name"] [--note "Neue Notiz"] [--accessed-from '']` + +- **Gerätegruppe löschen:** + `./device_group.py --url --token delete --name "Gruppenname"` + + Unterstützt kommagetrennte Namen: `--name "Gruppe1,Gruppe2,Gruppe3"` + +**Geräteverwaltung in Gruppen:** + +- **Geräte in Gruppe anzeigen:** + `./device_group.py --url --token view-devices [Filter]` + + Verfügbare Filter: + - `--name`: Gerätegruppenname (exakte Übereinstimmung) + - `--id`: Geräte-ID (unscharfe Suche) + - `--device-name`: Gerätename (unscharfe Suche) + - `--user-name`: Benutzername/Besitzer (unscharfe Suche) + - `--device-username`: Am Gerät angemeldeter Benutzername (unscharfe Suche) + + Beispiele: + ```bash + # Alle Geräte in einer Gruppe anzeigen + ./device_group.py --url --token view-devices --name Produktion + + # Nach Gerätename suchen + ./device_group.py --url --token view-devices --device-name server + + # Filter kombinieren + ./device_group.py --url --token view-devices --name Produktion --user-name john + ``` + + +- **Geräte zur Gruppe hinzufügen:** + `./device_group.py --url --token add-devices --name "Gruppenname" --ids "deviceid1,deviceid2"` + +- **Geräte aus Gruppe entfernen:** + `./device_group.py --url --token remove-devices --name "Gruppenname" --ids "deviceid1,deviceid2"` + +**Zugriffskontrollparameter:** + +- `--accessed-from`: JSON-Array, das definiert, wer auf diese Gerätegruppe zugreifen kann + - Type 0 = Benutzergruppe (z.B. `[{"type":0,"name":"Engineers"}]`) + - Type 2 = Benutzer (z.B. `[{"type":2,"name":"admin"}]`) + +**Berechtigungsanforderungen:** +- `view/add/update/delete/add-devices/remove-devices` Befehle benötigen **Gerätegruppen-Berechtigung** +- `view-devices` Befehl benötigt **Geräteberechtigung** --- @@ -233,6 +407,74 @@ oder --- +#### Strategieverwaltung (`strategies.py`) + +**Hilfe anzeigen:** +`./strategies.py -h` + +**Alle Strategien auflisten:** +`./strategies.py --url --token list` + +**Spezifische Strategie anzeigen:** +```bash +# Nach Name +./strategies.py --url --token view --name "Default" + +# Nach GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Strategie aktivieren oder deaktivieren:** +```bash +./strategies.py --url --token enable --name "StrategieName" +./strategies.py --url --token disable --name "StrategieName" +``` + +**Strategie Geräten, Benutzern oder Gerätegruppen zuweisen:** +```bash +# Geräten zuweisen (nach Geräte-ID) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Benutzern zuweisen (nach Benutzername) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Gerätegruppen zuweisen (nach Gruppenname) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Gemischte Zuweisung +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Strategie-Zuweisung aufheben:** +```bash +# Von Geräten aufheben +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Von Benutzern aufheben +./strategies.py --url --token unassign --users "admin" + +# Von Gerätegruppen aufheben +./strategies.py --url --token unassign --device-groups "device_group1" +``` + +**Hinweise:** +- Das Skript unterstützt sowohl Namen als auch GUIDs für Benutzer und Gerätegruppen +- Geräte-IDs werden automatisch in GUIDs konvertiert +- Alle assign/unassign-Operationen können mehrere Ziele gleichzeitig bearbeiten + +**Berechtigungsanforderungen:** +- `list/view/enable/disable/assign/unassign` Befehle benötigen **Strategie-Berechtigung** +- `--peers` benötigt **Geräte-Berechtigung:r** (für ID zu GUID Lookup) +- `--users` benötigt **Benutzer-Berechtigung:r** (für Benutzername zu GUID Lookup) +- `--device-groups` benötigt **Gerätegruppen-Berechtigung:r** (für Gruppenname zu GUID Lookup) + +--- + + #### Prüfprotokolle (`audits.py`) **Hilfe anzeigen:** diff --git a/content/self-host/rustdesk-server-pro/console/_index.en.md b/content/self-host/rustdesk-server-pro/console/_index.en.md index c635fa2..ff24f77 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.en.md +++ b/content/self-host/rustdesk-server-pro/console/_index.en.md @@ -145,17 +145,188 @@ The command line on Windows does not have output by default. To get output, plea `./users.py --url --token view [--name ] [--group_name ]` **Filters:** -`--name`: username -`--group_name`: user group +- `--name`: username (fuzzy search) +- `--group_name`: user group (exact match) **Example:** -`./users.py --url https://example.com --token view --group_name admins` +`./users.py --url https://example.com --token view --group_name Default` -**Operations:** -view can be replaced with `enable`, `disable`, or `delete`. +**Basic operations:** -**Example (disable user):** -`./users.py --url https://example.com --token disable --name testuser` +- **Disable user:** + `./users.py --url --token disable --name testuser` + +- **Enable user:** + `./users.py --url --token enable --name testuser` + +- **Delete user:** + `./users.py --url --token delete --name testuser` + +**User creation and invitation:** + +- **Create new user:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "note"]` + + Required: `--name`, `--password`, `--group_name` + Optional: `--email`, `--note` + +- **Invite user by email:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "note"]` + + Required: `--email`, `--name`, `--group_name` + Optional: `--note` + +**2FA and security operations:** + +- **Enable 2FA enforcement:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + Required: `--web-console-url` + +- **Disable 2FA enforcement:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Optional: `--web-console-url` + +- **Reset 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **Disable email verification:** + `./users.py --url --token disable-email-verification --name username` + +- **Force logout:** + `./users.py --url --token force-logout --name username` + +**Notes:** +- When operating on multiple users (matched by filters), you will be prompted for confirmation +- If no users match the filter, it will display "Found 0 users" + +--- + +#### User Groups Management (`user_group.py`) + +**Show help:** +`./user_group.py -h` + +**View user groups:** +`./user_group.py --url --token view [--name ]` + +**Example:** +`./user_group.py --url https://example.com --token view --name "Sales Team"` + +**Group operations:** + +- **Create user group:** + `./user_group.py --url --token add --name "GroupName" [--note "description"] [--accessed-from ''] [--access-to '']` + + Example with access control: + `./user_group.py --url --token add --name "Engineering" --accessed-from '[{"type":0,"name":"Managers"}]' --access-to '[{"type":1,"name":"DevServers"}]'` + +- **Update user group:** + `./user_group.py --url --token update --name "GroupName" [--new-name "NewName"] [--note "new note"] [--accessed-from ''] [--access-to '']` + +- **Delete user group:** + `./user_group.py --url --token delete --name "GroupName"` + + Supports comma-separated names: `--name "Group1,Group2,Group3"` + +**User management in groups:** + +- **View users in group:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + Filters: + - `--name`: group name (exact match, optional) + - `--user-name`: username (fuzzy search, optional) + + Example: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Add users to group:** + `./user_group.py --url --token add-users --name "GroupName" --users "user1,user2,user3"` + +**Access control parameters:** + +- `--accessed-from`: JSON array defining who can access this user group + - Type 0 = User Group (e.g., `[{"type":0,"name":"Admins"}]`) + - Type 2 = User (e.g., `[{"type":2,"name":"john"}]`) + +- `--access-to`: JSON array defining what this user group can access + - Type 0 = User Group (e.g., `[{"type":0,"name":"Support"}]`) + - Type 1 = Device Group (e.g., `[{"type":1,"name":"Servers"}]`) + +**Permission requirements:** +- `view/add/update/delete/add-users` commands require **User Group Permission** +- `view-users` command requires **User Permission** + +--- + +#### Device Groups Management (`device_group.py`) + +**Show help:** +`./device_group.py -h` + +**View device groups:** +`./device_group.py --url --token view [--name ]` + +**Example:** +`./device_group.py --url https://example.com --token view` + +**Group operations:** + +- **Create device group:** + `./device_group.py --url --token add --name "GroupName" [--note "description"] [--accessed-from '']` + + Example: + `./device_group.py --url --token add --name "Production" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Update device group:** + `./device_group.py --url --token update --name "GroupName" [--new-name "NewName"] [--note "new note"] [--accessed-from '']` + +- **Delete device group:** + `./device_group.py --url --token delete --name "GroupName"` + + Supports comma-separated names: `--name "Group1,Group2,Group3"` + +**Device management in groups:** + +- **View devices in group:** + `./device_group.py --url --token view-devices [filters]` + + Available filters: + - `--name`: device group name (exact match) + - `--id`: device ID (fuzzy search) + - `--device-name`: device name (fuzzy search) + - `--user-name`: user name/owner (fuzzy search) + - `--device-username`: logged-in username on device (fuzzy search) + + Examples: + ```bash + # View all devices in a group + ./device_group.py --url --token view-devices --name Production + + # Search by device name + ./device_group.py --url --token view-devices --device-name server + + # Combine filters + ./device_group.py --url --token view-devices --name Production --user-name john + ``` + +- **Add devices to group:** + `./device_group.py --url --token add-devices --name "GroupName" --ids "deviceid1,deviceid2"` + +- **Remove devices from group:** + `./device_group.py --url --token remove-devices --name "GroupName" --ids "deviceid1,deviceid2"` + +**Access control parameter:** + +- `--accessed-from`: JSON array defining who can access this device group + - Type 0 = User Group (e.g., `[{"type":0,"name":"Engineers"}]`) + - Type 2 = User (e.g., `[{"type":2,"name":"admin"}]`) + +**Permission requirements:** +- `view/add/update/delete/add-devices/remove-devices` commands require **Device Group Permission** +- `view-devices` command requires **Device Permission** --- @@ -229,6 +400,73 @@ view can be replaced with `enable`, `disable`, `delete`, or `assign`. --- +#### Strategies Management (`strategies.py`) + +**Show help:** +`./strategies.py -h` + +**List all strategies:** +`./strategies.py --url --token list` + +**View a specific strategy:** +```bash +# By name +./strategies.py --url --token view --name "Default" + +# By GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Enable or disable a strategy:** +```bash +./strategies.py --url --token enable --name "StrategyName" +./strategies.py --url --token disable --name "StrategyName" +``` + +**Assign strategy to devices, users, or device groups:** +```bash +# Assign to devices (by device ID) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Assign to users (by username) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Assign to device groups (by group name) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Mixed assignment +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Unassign strategy:** +```bash +# Unassign from devices +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Unassign from users +./strategies.py --url --token unassign --users "admin" + +# Unassign from device groups +./strategies.py --url --token unassign --device-groups "device_group1" +``` + +**Notes:** +- The script supports both names and GUIDs for users and device groups +- Device IDs are automatically converted to GUIDs +- All assign/unassign operations can target multiple resources at once + +**Permission requirements:** +- `list/view/enable/disable/assign/unassign` commands require **Strategy Permission** +- `--peers` requires **Device Permission:r** (for ID to GUID lookup) +- `--users` requires **User Permission:r** (for username to GUID lookup) +- `--device-groups` requires **Device Group Permission:r** (for name to GUID lookup) + +--- + #### Audits (`audits.py`) **Show help:** diff --git a/content/self-host/rustdesk-server-pro/console/_index.es.md b/content/self-host/rustdesk-server-pro/console/_index.es.md index e95ad83..8af4ad5 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.es.md +++ b/content/self-host/rustdesk-server-pro/console/_index.es.md @@ -141,30 +141,198 @@ ver [aquí](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomm #### Gestión de Usuarios (`users.py`) -**Mostrar ayuda:** +**Mostrar ayuda:** +`./users.py -h` - ./users.py -h - -**Ver usuarios:** - - ./users.py --url --token view [--name ] [--group_name ] +**Ver usuarios:** +`./users.py --url --token view [--name ] [--group_name ]` **Filtros:** +- `--name`: nombre de usuario (búsqueda difusa) +- `--group_name`: grupo de usuarios (coincidencia exacta) - --name: nombre de usuario - --group_name: grupo de usuarios +**Ejemplo:** +`./users.py --url https://example.com --token view --group_name Default` -**Ejemplo:** +**Operaciones básicas:** - ./users.py --url https://example.com --token view --group_name admins +- **Deshabilitar usuario:** + `./users.py --url --token disable --name testuser` -**Operaciones:** +- **Habilitar usuario:** + `./users.py --url --token enable --name testuser` -`view` puede reemplazarse por `enable`, `disable`, o `delete`. +- **Eliminar usuario:** + `./users.py --url --token delete --name testuser` -**Ejemplo (deshabilitar usuario):** +**Creación e invitación de usuarios:** - ./users.py --url https://example.com --token disable --name testuser +- **Crear nuevo usuario:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "nota"]` + + Requerido: `--name`, `--password`, `--group_name` + Opcional: `--email`, `--note` + +- **Invitar usuario por correo:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "nota"]` + + Requerido: `--email`, `--name`, `--group_name` + Opcional: `--note` + +**Operaciones 2FA y seguridad:** + +- **Habilitar aplicación 2FA:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + Requerido: `--web-console-url` + +- **Deshabilitar aplicación 2FA:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Opcional: `--web-console-url` + +- **Restablecer 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **Deshabilitar verificación por correo:** + `./users.py --url --token disable-email-verification --name username` + +- **Cerrar sesión forzada:** + `./users.py --url --token force-logout --name username` + +**Notas:** +- Al operar sobre múltiples usuarios (coincidentes con filtros), se solicitará confirmación +- Si no hay usuarios coincidentes, se mostrará "Found 0 users" + +--- + +#### Gestión de Grupos de Usuarios (`user_group.py`) + +**Mostrar ayuda:** +`./user_group.py -h` + +**Ver grupos de usuarios:** +`./user_group.py --url --token view [--name ]` + +**Ejemplo:** +`./user_group.py --url https://example.com --token view --name "Equipo Ventas"` + +**Operaciones de grupo:** + +- **Crear grupo de usuarios:** + `./user_group.py --url --token add --name "NombreGrupo" [--note "descripción"] [--accessed-from ''] [--access-to '']` + + Ejemplo con control de acceso: + `./user_group.py --url --token add --name "Ingeniería" --accessed-from '[{"type":0,"name":"Gerentes"}]' --access-to '[{"type":1,"name":"Servidores Dev"}]'` + +- **Actualizar grupo de usuarios:** + `./user_group.py --url --token update --name "NombreGrupo" [--new-name "Nuevo Nombre"] [--note "nueva nota"] [--accessed-from ''] [--access-to '']` + +- **Eliminar grupo de usuarios:** + `./user_group.py --url --token delete --name "NombreGrupo"` + + Admite nombres separados por comas: `--name "Grupo1,Grupo2,Grupo3"` + +**Gestión de usuarios en grupos:** + +- **Ver usuarios en grupo:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + Filtros: + - `--name`: nombre del grupo (coincidencia exacta, opcional) + - `--user-name`: nombre de usuario (búsqueda difusa, opcional) + + Ejemplo: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Agregar usuarios al grupo:** + `./user_group.py --url --token add-users --name "NombreGrupo" --users "user1,user2,user3"` + +**Parámetros de control de acceso:** + +- `--accessed-from`: array JSON que define quién puede acceder a este grupo de usuarios + - Type 0 = Grupo de usuarios (ej. `[{"type":0,"name":"Admins"}]`) + - Type 2 = Usuario (ej. `[{"type":2,"name":"john"}]`) + +- `--access-to`: array JSON que define a qué puede acceder este grupo de usuarios + - Type 0 = Grupo de usuarios (ej. `[{"type":0,"name":"Soporte"}]`) + - Type 1 = Grupo de dispositivos (ej. `[{"type":1,"name":"Servidores"}]`) + +**Nota:** Use comillas simples alrededor de los arrays JSON para evitar problemas de análisis del shell. + +**Requisitos de permisos:** +- Los comandos `view/add/update/delete/add-users` requieren **Permiso de Grupo de Usuarios** +- El comando `view-users` requiere **Permiso de Usuario** + +--- + +#### Gestión de Grupos de Dispositivos (`device_group.py`) + +**Mostrar ayuda:** +`./device_group.py -h` + +**Ver grupos de dispositivos:** +`./device_group.py --url --token view [--name ]` + +**Ejemplo:** +`./device_group.py --url https://example.com --token view` + +**Operaciones de grupo:** + +- **Crear grupo de dispositivos:** + `./device_group.py --url --token add --name "NombreGrupo" [--note "descripción"] [--accessed-from '']` + + Ejemplo: + `./device_group.py --url --token add --name "Producción" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Actualizar grupo de dispositivos:** + `./device_group.py --url --token update --name "NombreGrupo" [--new-name "Nuevo Nombre"] [--note "nueva nota"] [--accessed-from '']` + +- **Eliminar grupo de dispositivos:** + `./device_group.py --url --token delete --name "NombreGrupo"` + + Admite nombres separados por comas: `--name "Grupo1,Grupo2,Grupo3"` + +**Gestión de dispositivos en grupos:** + +- **Ver dispositivos en grupo:** + `./device_group.py --url --token view-devices [filtros]` + + Filtros disponibles: + - `--name`: nombre del grupo de dispositivos (coincidencia exacta) + - `--id`: ID del dispositivo (búsqueda difusa) + - `--device-name`: nombre del dispositivo (búsqueda difusa) + - `--user-name`: nombre de usuario/propietario (búsqueda difusa) + - `--device-username`: nombre de usuario conectado en el dispositivo (búsqueda difusa) + + Ejemplos: + ```bash + # Ver todos los dispositivos en un grupo + ./device_group.py --url --token view-devices --name Producción + + # Buscar por nombre de dispositivo + ./device_group.py --url --token view-devices --device-name server + + # Combinar filtros + ./device_group.py --url --token view-devices --name Producción --user-name john + ``` + + +- **Agregar dispositivos al grupo:** + `./device_group.py --url --token add-devices --name "NombreGrupo" --ids "deviceid1,deviceid2"` + +- **Quitar dispositivos del grupo:** + `./device_group.py --url --token remove-devices --name "NombreGrupo" --ids "deviceid1,deviceid2"` + +**Parámetro de control de acceso:** + +- `--accessed-from`: array JSON que define quién puede acceder a este grupo de dispositivos + - Type 0 = Grupo de usuarios (ej. `[{"type":0,"name":"Ingenieros"}]`) + - Type 2 = Usuario (ej. `[{"type":2,"name":"admin"}]`) + +**Requisitos de permisos:** +- Los comandos `view/add/update/delete/add-devices/remove-devices` requieren **Permiso de Grupo de Dispositivos** +- El comando `view-devices` requiere **Permiso de Dispositivo** --- @@ -254,6 +422,74 @@ ver [aquí](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomm --- +#### Gestión de Estrategias (`strategies.py`) + +**Mostrar ayuda:** +`./strategies.py -h` + +**Listar todas las estrategias:** +`./strategies.py --url --token list` + +**Ver una estrategia específica:** +```bash +# Por nombre +./strategies.py --url --token view --name "Default" + +# Por GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Habilitar o deshabilitar una estrategia:** +```bash +./strategies.py --url --token enable --name "NombreEstrategia" +./strategies.py --url --token disable --name "NombreEstrategia" +``` + +**Asignar estrategia a dispositivos, usuarios o grupos de dispositivos:** +```bash +# Asignar a dispositivos (por ID de dispositivo) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Asignar a usuarios (por nombre de usuario) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Asignar a grupos de dispositivos (por nombre de grupo) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Asignación mixta +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Desasignar estrategia:** +```bash +# Desasignar de dispositivos +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Desasignar de usuarios +./strategies.py --url --token unassign --users "admin" + +# Desasignar de grupos de dispositivos +./strategies.py --url --token unassign --device-groups "device_group1" +``` + +**Notas:** +- El script admite nombres y GUIDs para usuarios y grupos de dispositivos +- Los IDs de dispositivos se convierten automáticamente en GUIDs +- Todas las operaciones assign/unassign pueden trabajar con múltiples objetivos a la vez + +**Requisitos de permisos:** +- Los comandos `list/view/enable/disable/assign/unassign` requieren **Permiso de Estrategia** +- `--peers` requiere **Permiso de Dispositivo:r** (para búsqueda de ID a GUID) +- `--users` requiere **Permiso de Usuario:r** (para búsqueda de nombre de usuario a GUID) +- `--device-groups` requiere **Permiso de Grupo de Dispositivos:r** (para búsqueda de nombre de grupo a GUID) + +--- + + #### Auditorías (`audits.py`) **Mostrar ayuda:** diff --git a/content/self-host/rustdesk-server-pro/console/_index.fr.md b/content/self-host/rustdesk-server-pro/console/_index.fr.md index f9a6edf..b2c1ef1 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.fr.md +++ b/content/self-host/rustdesk-server-pro/console/_index.fr.md @@ -141,33 +141,200 @@ voir [ici](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomme #### Gestion des Utilisateurs (`users.py`) -**Afficher l’aide :** +**Afficher l'aide :** +`./users.py -h` - ./users.py -h - -**Voir les utilisateurs :** - - ./users.py --url --token view [--name ] [--group_name ] +**Voir les utilisateurs :** +`./users.py --url --token view [--name ] [--group_name ]` **Filtres :** +- `--name` : nom d'utilisateur (recherche floue) +- `--group_name` : groupe d'utilisateurs (correspondance exacte) - --name : nom d’utilisateur - --group_name : groupe d’utilisateurs +**Exemple :** +`./users.py --url https://example.com --token view --group_name Default` -**Exemple :** +**Opérations de base :** - ./users.py --url https://example.com --token view --group_name admins +- **Désactiver un utilisateur :** + `./users.py --url --token disable --name testuser` -**Opérations :** +- **Activer un utilisateur :** + `./users.py --url --token enable --name testuser` -`view` peut être remplacé par `enable`, `disable`, ou `delete`. +- **Supprimer un utilisateur :** + `./users.py --url --token delete --name testuser` -**Exemple (désactiver un utilisateur) :** +**Création et invitation d'utilisateurs :** - ./users.py --url https://example.com --token disable --name testuser +- **Créer un nouvel utilisateur :** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "note"]` + + Requis : `--name`, `--password`, `--group_name` + Optionnel : `--email`, `--note` + +- **Inviter un utilisateur par e-mail :** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "note"]` + + Requis : `--email`, `--name`, `--group_name` + Optionnel : `--note` + +**Opérations 2FA et sécurité :** + +- **Activer l'application 2FA :** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + Requis : `--web-console-url` + +- **Désactiver l'application 2FA :** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Optionnel : `--web-console-url` + +- **Réinitialiser 2FA :** + `./users.py --url --token reset-2fa --name username` + +- **Désactiver la vérification par e-mail :** + `./users.py --url --token disable-email-verification --name username` + +- **Déconnexion forcée :** + `./users.py --url --token force-logout --name username` + +**Remarques :** +- Lors d'opérations sur plusieurs utilisateurs (correspondants aux filtres), une confirmation sera demandée +- Si aucun utilisateur ne correspond, "Found 0 users" sera affiché --- +#### Gestion des Groupes d'Utilisateurs (`user_group.py`) + +**Afficher l'aide :** +`./user_group.py -h` + +**Voir les groupes d'utilisateurs :** +`./user_group.py --url --token view [--name ]` + +**Exemple :** +`./user_group.py --url https://example.com --token view --name "Équipe Ventes"` + +**Opérations sur les groupes :** + +- **Créer un groupe d'utilisateurs :** + `./user_group.py --url --token add --name "NomGroupe" [--note "description"] [--accessed-from ''] [--access-to '']` + + Exemple avec contrôle d'accès : + `./user_group.py --url --token add --name "Ingénierie" --accessed-from '[{"type":0,"name":"Managers"}]' --access-to '[{"type":1,"name":"Serveurs Dev"}]'` + +- **Mettre à jour un groupe d'utilisateurs :** + `./user_group.py --url --token update --name "NomGroupe" [--new-name "Nouveau Nom"] [--note "nouvelle note"] [--accessed-from ''] [--access-to '']` + +- **Supprimer un groupe d'utilisateurs :** + `./user_group.py --url --token delete --name "NomGroupe"` + + Prend en charge les noms séparés par des virgules : `--name "Groupe1,Groupe2,Groupe3"` + +**Gestion des utilisateurs dans les groupes :** + +- **Voir les utilisateurs dans un groupe :** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + Filtres : + - `--name` : nom du groupe (correspondance exacte, optionnel) + - `--user-name` : nom d'utilisateur (recherche floue, optionnel) + + Exemple : + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Ajouter des utilisateurs à un groupe :** + `./user_group.py --url --token add-users --name "NomGroupe" --users "user1,user2,user3"` + +**Paramètres de contrôle d'accès :** + +- `--accessed-from` : tableau JSON définissant qui peut accéder à ce groupe d'utilisateurs + - Type 0 = Groupe d'utilisateurs (ex. `[{"type":0,"name":"Admins"}]`) + - Type 2 = Utilisateur (ex. `[{"type":2,"name":"john"}]`) + +- `--access-to` : tableau JSON définissant ce à quoi ce groupe d'utilisateurs peut accéder + - Type 0 = Groupe d'utilisateurs (ex. `[{"type":0,"name":"Support"}]`) + - Type 1 = Groupe de périphériques (ex. `[{"type":1,"name":"Serveurs"}]`) + +**Remarque :** Utilisez des guillemets simples autour des tableaux JSON pour éviter les problèmes d'analyse du shell. + +**Exigences de permissions :** +- Les commandes `view/add/update/delete/add-users` nécessitent **Permission de Groupe d'Utilisateurs** +- La commande `view-users` nécessite **Permission d'Utilisateur** + +--- + +#### Gestion des Groupes de Périphériques (`device_group.py`) + +**Afficher l'aide :** +`./device_group.py -h` + +**Voir les groupes de périphériques :** +`./device_group.py --url --token view [--name ]` + +**Exemple :** +`./device_group.py --url https://example.com --token view` + +**Opérations sur les groupes :** + +- **Créer un groupe de périphériques :** + `./device_group.py --url --token add --name "NomGroupe" [--note "description"] [--accessed-from '']` + + Exemple : + `./device_group.py --url --token add --name "Production" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Mettre à jour un groupe de périphériques :** + `./device_group.py --url --token update --name "NomGroupe" [--new-name "Nouveau Nom"] [--note "nouvelle note"] [--accessed-from '']` + +- **Supprimer un groupe de périphériques :** + `./device_group.py --url --token delete --name "NomGroupe"` + + Prend en charge les noms séparés par des virgules : `--name "Groupe1,Groupe2,Groupe3"` + +**Gestion des périphériques dans les groupes :** + +- **Voir les périphériques dans un groupe :** + `./device_group.py --url --token view-devices [filtres]` + + Filtres disponibles : + - `--name` : nom du groupe de périphériques (correspondance exacte) + - `--id` : ID du périphérique (recherche floue) + - `--device-name` : nom du périphérique (recherche floue) + - `--user-name` : nom d'utilisateur/propriétaire (recherche floue) + - `--device-username` : nom d'utilisateur connecté sur le périphérique (recherche floue) + + Exemples : + ```bash + # Voir tous les périphériques dans un groupe + ./device_group.py --url --token view-devices --name Production + + # Rechercher par nom de périphérique + ./device_group.py --url --token view-devices --device-name server + + # Combiner les filtres + ./device_group.py --url --token view-devices --name Production --user-name john + ``` + + +- **Ajouter des périphériques à un groupe :** + `./device_group.py --url --token add-devices --name "NomGroupe" --ids "deviceid1,deviceid2"` + +- **Retirer des périphériques d'un groupe :** + `./device_group.py --url --token remove-devices --name "NomGroupe" --ids "deviceid1,deviceid2"` + +**Paramètre de contrôle d'accès :** + +- `--accessed-from` : tableau JSON définissant qui peut accéder à ce groupe de périphériques + - Type 0 = Groupe d'utilisateurs (ex. `[{"type":0,"name":"Ingénieurs"}]`) + - Type 2 = Utilisateur (ex. `[{"type":2,"name":"admin"}]`) + +**Exigences de permissions :** +- Les commandes `view/add/update/delete/add-devices/remove-devices` nécessitent **Permission de Groupe de Périphériques** +- La commande `view-devices` nécessite **Permission de Périphérique** + +--- #### Gestion des Périphériques (`devices.py`) **Afficher l’aide :** @@ -254,6 +421,74 @@ voir [ici](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomme --- +#### Gestion des Stratégies (`strategies.py`) + +**Afficher l'aide :** +`./strategies.py -h` + +**Lister toutes les stratégies :** +`./strategies.py --url --token list` + +**Voir une stratégie spécifique :** +```bash +# Par nom +./strategies.py --url --token view --name "Default" + +# Par GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Activer ou désactiver une stratégie :** +```bash +./strategies.py --url --token enable --name "NomStratégie" +./strategies.py --url --token disable --name "NomStratégie" +``` + +**Attribuer une stratégie aux périphériques, utilisateurs ou groupes de périphériques :** +```bash +# Attribuer aux périphériques (par ID de périphérique) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Attribuer aux utilisateurs (par nom d'utilisateur) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Attribuer aux groupes de périphériques (par nom de groupe) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Attribution mixte +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Retirer l'attribution de stratégie :** +```bash +# Retirer des périphériques +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Retirer des utilisateurs +./strategies.py --url --token unassign --users "admin" + +# Retirer des groupes de périphériques +./strategies.py --url --token unassign --device-groups "device_group1" +``` + +**Remarques :** +- Le script prend en charge les noms et les GUIDs pour les utilisateurs et les groupes de périphériques +- Les IDs de périphériques sont automatiquement convertis en GUIDs +- Toutes les opérations assign/unassign peuvent cibler plusieurs ressources à la fois + +**Exigences de permissions :** +- Les commandes `list/view/enable/disable/assign/unassign` nécessitent **Permission de Stratégie** +- `--peers` nécessite **Permission de Périphérique:r** (pour la recherche d'ID vers GUID) +- `--users` nécessite **Permission d'Utilisateur:r** (pour la recherche de nom d'utilisateur vers GUID) +- `--device-groups` nécessite **Permission de Groupe de Périphériques:r** (pour la recherche de nom de groupe vers GUID) + +--- + + #### Audits (`audits.py`) **Afficher l’aide :** diff --git a/content/self-host/rustdesk-server-pro/console/_index.it.md b/content/self-host/rustdesk-server-pro/console/_index.it.md index 3624827..6cec448 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.it.md +++ b/content/self-host/rustdesk-server-pro/console/_index.it.md @@ -141,30 +141,202 @@ vedi [qui](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomme #### Gestione Utenti (`users.py`) -**Mostra aiuto:** +**Mostra aiuto:** +`./users.py -h` - ./users.py -h - -**Visualizza utenti:** - - ./users.py --url --token view [--name ] [--group_name ] +**Visualizza utenti:** +`./users.py --url --token view [--name ] [--group_name ]` **Filtri:** +- `--name`: nome utente (ricerca fuzzy) +- `--group_name`: gruppo utenti (corrispondenza esatta) - --name : nome utente - --group_name : gruppo utenti +**Esempio:** +`./users.py --url https://example.com --token view --group_name Default` -**Esempio:** +**Operazioni di base:** - ./users.py --url https://example.com --token view --group_name admins +- **Disabilitare utente:** + `./users.py --url --token disable --name testuser` -**Operazioni:** +- **Abilitare utente:** + `./users.py --url --token enable --name testuser` -`view` può essere sostituito con `enable`, `disable`, o `delete`. +- **Eliminare utente:** + `./users.py --url --token delete --name testuser` -**Esempio (disabilitare utente):** +**Creazione e invito utenti:** - ./users.py --url https://example.com --token disable --name testuser +- **Creare nuovo utente:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "nota"]` + + Richiesto: `--name`, `--password`, `--group_name` + Opzionale: `--email`, `--note` + +- **Invitare utente via email:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "nota"]` + + Richiesto: `--email`, `--name`, `--group_name` + Opzionale: `--note` + +**Operazioni 2FA e sicurezza:** + +- **Abilitare imposizione 2FA:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + Richiesto: `--web-console-url` + +- **Disabilitare imposizione 2FA:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Opzionale: `--web-console-url` + +- **Reimpostare 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **Disabilitare verifica email:** + `./users.py --url --token disable-email-verification --name username` + +- **Disconnessione forzata:** + `./users.py --url --token force-logout --name username` + +**Note:** +- Quando si opera su più utenti (corrispondenti ai filtri), verrà richiesta conferma +- Se non ci sono utenti corrispondenti, verrà mostrato "Found 0 users" + +--- + +#### Gestione Gruppi Utenti (`user_group.py`) + +**Mostra aiuto:** +`./user_group.py -h` + +**Visualizza gruppi utenti:** +`./user_group.py --url --token view [--name ]` + +**Esempio:** +`./user_group.py --url https://example.com --token view --name "Team Vendite"` + +**Operazioni sui gruppi:** + +- **Creare gruppo utenti:** + `./user_group.py --url --token add --name "NomeGruppo" [--note "descrizione"] [--accessed-from ''] [--access-to '']` + + Esempio con controllo accesso: + `./user_group.py --url --token add --name "Ingegneria" --accessed-from '[{"type":0,"name":"Manager"}]' --access-to '[{"type":1,"name":"Server Dev"}]'` + +- **Aggiornare gruppo utenti:** + `./user_group.py --url --token update --name "NomeGruppo" [--new-name "Nuovo Nome"] [--note "nuova nota"] [--accessed-from ''] [--access-to '']` + +- **Eliminare gruppo utenti:** + `./user_group.py --url --token delete --name "NomeGruppo"` + + Supporta nomi separati da virgola: `--name "Gruppo1,Gruppo2,Gruppo3"` + +**Gestione utenti nei gruppi:** + +- **Visualizzare utenti nel gruppo:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + Filtri: + - `--name`: nome del gruppo (corrispondenza esatta, opzionale) + - `--user-name`: nome utente (ricerca fuzzy, opzionale) + + Esempio: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Aggiungere utenti al gruppo:** + `./user_group.py --url --token add-users --name "NomeGruppo" --users "user1,user2,user3"` + +**Parametri controllo accesso:** + +- `--accessed-from`: array JSON che definisce chi può accedere a questo gruppo utenti + - Type 0 = Gruppo utenti (es. `[{"type":0,"name":"Admins"}]`) + - Type 2 = Utente (es. `[{"type":2,"name":"john"}]`) + +- `--access-to`: array JSON che definisce a cosa può accedere questo gruppo utenti + - Type 0 = Gruppo utenti (es. `[{"type":0,"name":"Supporto"}]`) + - Type 1 = Gruppo dispositivi (es. `[{"type":1,"name":"Server"}]`) + +**Nota:** Utilizzare virgolette singole attorno agli array JSON per evitare problemi di parsing della shell. + +**Requisiti di permessi:** +- I comandi `view/add/update/delete/add-users` richiedono **Permesso Gruppo Utenti** +- Il comando `view-users` richiede **Permesso Utente** + +--- + +#### Gestione Gruppi Dispositivi (`device_group.py`) + +**Mostra aiuto:** +`./device_group.py -h` + +**Visualizza gruppi dispositivi:** +`./device_group.py --url --token view [--name ]` + +**Esempio:** +`./device_group.py --url https://example.com --token view` + +**Operazioni sui gruppi:** + +- **Creare gruppo dispositivi:** + `./device_group.py --url --token add --name "NomeGruppo" [--note "descrizione"] [--accessed-from '']` + + Esempio: + `./device_group.py --url --token add --name "Produzione" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Aggiornare gruppo dispositivi:** + `./device_group.py --url --token update --name "NomeGruppo" [--new-name "Nuovo Nome"] [--note "nuova nota"] [--accessed-from '']` + +- **Eliminare gruppo dispositivi:** + `./device_group.py --url --token delete --name "NomeGruppo"` + + Supporta nomi separati da virgola: `--name "Gruppo1,Gruppo2,Gruppo3"` + +**Gestione dispositivi nei gruppi:** + +- **Visualizzare dispositivi nel gruppo:** + `./device_group.py --url --token view-devices [filtri]` + + Filtri disponibili: + - `--name`: nome del gruppo dispositivi (corrispondenza esatta) + - `--id`: ID dispositivo (ricerca fuzzy) + - `--device-name`: nome dispositivo (ricerca fuzzy) + - `--user-name`: nome utente/proprietario (ricerca fuzzy) + - `--device-username`: nome utente connesso al dispositivo (ricerca fuzzy) + + Esempi: + ```bash + # Visualizzare tutti i dispositivi in un gruppo + ./device_group.py --url --token view-devices --name Produzione + + # Cercare per nome dispositivo + ./device_group.py --url --token view-devices --device-name server + + # Combinare filtri + ./device_group.py --url --token view-devices --name Produzione --user-name john + ``` + +- **Visualizzare gruppi dispositivi accessibili:** + `./device_group.py --url --token accessible` + + Mostra tutti i gruppi dispositivi accessibili all'utente corrente. + +- **Aggiungere dispositivi al gruppo:** + `./device_group.py --url --token add-devices --name "NomeGruppo" --ids "deviceid1,deviceid2"` + +- **Rimuovere dispositivi dal gruppo:** + `./device_group.py --url --token remove-devices --name "NomeGruppo" --ids "deviceid1,deviceid2"` + +**Parametro controllo accesso:** + +- `--accessed-from`: array JSON che definisce chi può accedere a questo gruppo dispositivi + - Type 0 = Gruppo utenti (es. `[{"type":0,"name":"Ingegneri"}]`) + - Type 2 = Utente (es. `[{"type":2,"name":"admin"}]`) + +**Requisiti permessi:** +- I comandi `view/add/update/delete/add-devices/remove-devices` richiedono **Permesso Gruppo Dispositivi** +- Il comando `view-devices` richiede **Permesso Dispositivo** --- @@ -254,6 +426,74 @@ vedi [qui](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomme --- +#### Gestione delle Strategie (`strategies.py`) + +**Mostra aiuto:** +`./strategies.py -h` + +**Elenca tutte le strategie:** +`./strategies.py --url --token list` + +**Visualizza una strategia specifica:** +```bash +# Per nome +./strategies.py --url --token view --name "Default" + +# Per GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Abilita o disabilita una strategia:** +```bash +./strategies.py --url --token enable --name "NomeStrategia" +./strategies.py --url --token disable --name "NomeStrategia" +``` + +**Assegna strategia a dispositivi, utenti o gruppi dispositivi:** +```bash +# Assegna a dispositivi (per ID dispositivo) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Assegna a utenti (per nome utente) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Assegna a gruppi dispositivi (per nome gruppo) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Assegnazione mista +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Rimuovi assegnazione strategia:** +```bash +# Rimuovi da dispositivi +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Rimuovi da utenti +./strategies.py --url --token unassign --users "admin" + +# Rimuovi da gruppi dispositivi +./strategies.py --url --token unassign --device-groups "device_group1" +``` + +**Note:** +- Lo script supporta sia nomi che GUID per utenti e gruppi dispositivi +- Gli ID dispositivi vengono automaticamente convertiti in GUID +- Tutte le operazioni assign/unassign possono gestire più target contemporaneamente + +**Requisiti di permessi:** +- I comandi `list/view/enable/disable/assign/unassign` richiedono **Permesso Strategia** +- `--peers` richiede **Permesso Dispositivo:r** (per ricerca da ID a GUID) +- `--users` richiede **Permesso Utente:r** (per ricerca da nome utente a GUID) +- `--device-groups` richiede **Permesso Gruppo Dispositivi:r** (per ricerca da nome gruppo a GUID) + +--- + + #### Audit (`audits.py`) **Mostra aiuto:** diff --git a/content/self-host/rustdesk-server-pro/console/_index.ja.md b/content/self-host/rustdesk-server-pro/console/_index.ja.md index c4cca3b..2988a1b 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.ja.md +++ b/content/self-host/rustdesk-server-pro/console/_index.ja.md @@ -141,30 +141,198 @@ Windowsのコマンドラインはデフォルトでは出力を表示しませ #### ユーザー管理 (`users.py`) -**ヘルプ表示:** +**ヘルプ表示:** +`./users.py -h` - ./users.py -h - -**ユーザー表示:** - - ./users.py --url --token view [--name ] [--group_name ] +**ユーザー表示:** +`./users.py --url --token view [--name ] [--group_name ]` **フィルター:** +- `--name`:ユーザー名(あいまい検索) +- `--group_name`:ユーザーグループ名(完全一致) - --name : ユーザー名 - --group_name : ユーザーグループ +**例:** +`./users.py --url https://example.com --token view --group_name Default` -**例:** +**基本操作:** - ./users.py --url https://example.com --token view --group_name admins +- **ユーザーを無効化:** + `./users.py --url --token disable --name testuser` -**操作:** +- **ユーザーを有効化:** + `./users.py --url --token enable --name testuser` -`view`は`enable`、`disable`、`delete`に置き換え可能です。 +- **ユーザーを削除:** + `./users.py --url --token delete --name testuser` -**例(ユーザーを無効化):** +**ユーザーの作成と招待:** - ./users.py --url https://example.com --token disable --name testuser +- **新規ユーザーの作成:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "メモ"]` + + 必須パラメータ:`--name`、`--password`、`--group_name` + オプションパラメータ:`--email`、`--note` + +- **メールでユーザーを招待:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "メモ"]` + + 必須パラメータ:`--email`、`--name`、`--group_name` + オプションパラメータ:`--note` + +**2FAとセキュリティ操作:** + +- **2FA強制を有効化:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + 必須パラメータ:`--web-console-url` + +- **2FA強制を無効化:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + オプションパラメータ:`--web-console-url` + +- **2FAをリセット:** + `./users.py --url --token reset-2fa --name username` + +- **メール認証を無効化:** + `./users.py --url --token disable-email-verification --name username` + +- **強制ログアウト:** + `./users.py --url --token force-logout --name username` + +**注意事項:** +- 複数のユーザーに対して操作を行う場合(フィルターでマッチ)、確認プロンプトが表示されます +- 一致するユーザーがいない場合は「Found 0 users」と表示されます + +--- + +#### ユーザーグループ管理 (`user_group.py`) + +**ヘルプ表示:** +`./user_group.py -h` + +**ユーザーグループ表示:** +`./user_group.py --url --token view [--name ]` + +**例:** +`./user_group.py --url https://example.com --token view --name "営業チーム"` + +**グループ操作:** + +- **ユーザーグループの作成:** + `./user_group.py --url --token add --name "グループ名" [--note "説明"] [--accessed-from ''] [--access-to '']` + + アクセス制御付きの例: + `./user_group.py --url --token add --name "エンジニアリング" --accessed-from '[{"type":0,"name":"マネージャー"}]' --access-to '[{"type":1,"name":"開発サーバー"}]'` + +- **ユーザーグループの更新:** + `./user_group.py --url --token update --name "グループ名" [--new-name "新しい名前"] [--note "新しいメモ"] [--accessed-from ''] [--access-to '']` + +- **ユーザーグループの削除:** + `./user_group.py --url --token delete --name "グループ名"` + + カンマ区切りで複数指定可能:`--name "グループ1,グループ2,グループ3"` + +**グループ内ユーザー管理:** + +- **グループ内のユーザーを表示:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + フィルター: + - `--name`:グループ名(完全一致、オプション) + - `--user-name`:ユーザー名(あいまい検索、オプション) + + 例: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **グループにユーザーを追加:** + `./user_group.py --url --token add-users --name "グループ名" --users "user1,user2,user3"` + +**アクセス制御パラメータ:** + +- `--accessed-from`:このユーザーグループにアクセスできるユーザー/グループを定義するJSON配列 + - Type 0 = ユーザーグループ(例:`[{"type":0,"name":"管理者"}]`) + - Type 2 = ユーザー(例:`[{"type":2,"name":"john"}]`) + +- `--access-to`:このユーザーグループがアクセスできる対象を定義するJSON配列 + - Type 0 = ユーザーグループ(例:`[{"type":0,"name":"サポート"}]`) + - Type 1 = デバイスグループ(例:`[{"type":1,"name":"サーバー"}]`) + +**注意:** シェルの解析問題を避けるため、JSON配列は単一引用符で囲んでください。 + +**権限要件:** +- `view/add/update/delete/add-users` コマンドには **ユーザーグループ権限** が必要 +- `view-users` コマンドには **ユーザー権限** が必要 + +--- + +#### デバイスグループ管理 (`device_group.py`) + +**ヘルプ表示:** +`./device_group.py -h` + +**デバイスグループ表示:** +`./device_group.py --url --token view [--name ]` + +**例:** +`./device_group.py --url https://example.com --token view` + +**グループ操作:** + +- **デバイスグループの作成:** + `./device_group.py --url --token add --name "グループ名" [--note "説明"] [--accessed-from '']` + + 例: + `./device_group.py --url --token add --name "本番環境" --accessed-from '[{"type":0,"name":"管理者"}]'` + +- **デバイスグループの更新:** + `./device_group.py --url --token update --name "グループ名" [--new-name "新しい名前"] [--note "新しいメモ"] [--accessed-from '']` + +- **デバイスグループの削除:** + `./device_group.py --url --token delete --name "グループ名"` + + カンマ区切りで複数指定可能:`--name "グループ1,グループ2,グループ3"` + +**グループ内デバイス管理:** + +- **グループ内のデバイスを表示:** + `./device_group.py --url --token view-devices [フィルター]` + + 利用可能なフィルター: + - `--name`:デバイスグループ名(完全一致) + - `--id`:デバイスID(あいまい検索) + - `--device-name`:デバイス名(あいまい検索) + - `--user-name`:ユーザー名/所有者(あいまい検索) + - `--device-username`:デバイスにログインしているユーザー名(あいまい検索) + + 例: + ```bash + # グループ内のすべてのデバイスを表示 + ./device_group.py --url --token view-devices --name 本番環境 + + # デバイス名で検索 + ./device_group.py --url --token view-devices --device-name server + + # フィルターを組み合わせ + ./device_group.py --url --token view-devices --name 本番環境 --user-name john + ``` + + +- **グループにデバイスを追加:** + `./device_group.py --url --token add-devices --name "グループ名" --ids "deviceid1,deviceid2"` + +- **グループからデバイスを削除:** + `./device_group.py --url --token remove-devices --name "グループ名" --ids "deviceid1,deviceid2"` + +**アクセス制御パラメータ:** + +- `--accessed-from`:このデバイスグループにアクセスできるユーザー/グループを定義するJSON配列 + - Type 0 = ユーザーグループ(例:`[{"type":0,"name":"エンジニア"}]`) + - Type 2 = ユーザー(例:`[{"type":2,"name":"admin"}]`) + +**権限要件:** +- `view/add/update/delete/add-devices/remove-devices` コマンドには **デバイスグループ権限** が必要 +- `view-devices` コマンドには **デバイス権限** が必要 --- @@ -254,6 +422,74 @@ Windowsのコマンドラインはデフォルトでは出力を表示しませ --- +#### ストラテジー管理 (`strategies.py`) + +**ヘルプを表示:** +`./strategies.py -h` + +**すべてのストラテジーを一覧表示:** +`./strategies.py --url --token list` + +**特定のストラテジーを表示:** +```bash +# 名前で +./strategies.py --url --token view --name "Default" + +# GUIDで +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**ストラテジーを有効化または無効化:** +```bash +./strategies.py --url --token enable --name "ストラテジー名" +./strategies.py --url --token disable --name "ストラテジー名" +``` + +**デバイス、ユーザー、またはデバイスグループにストラテジーを割り当て:** +```bash +# デバイスに割り当て(デバイスIDで) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# ユーザーに割り当て(ユーザー名で) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# デバイスグループに割り当て(グループ名で) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# 混合割り当て +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**ストラテジーの割り当てを解除:** +```bash +# デバイスから解除 +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# ユーザーから解除 +./strategies.py --url --token unassign --users "admin" + +# デバイスグループから解除 +./strategies.py --url --token unassign --device-groups "device_group1" +``` + +**注意:** +- スクリプトはユーザーとデバイスグループの名前とGUIDの両方をサポートします +- デバイスIDは自動的にGUIDに変換されます +- すべてのassign/unassign操作は一度に複数のターゲットを処理できます + +**権限要件:** +- `list/view/enable/disable/assign/unassign` コマンドには **ストラテジー権限** が必要 +- `--peers` には **デバイス権限:r** が必要(IDからGUIDへの検索用) +- `--users` には **ユーザー権限:r** が必要(ユーザー名からGUIDへの検索用) +- `--device-groups` には **デバイスグループ権限:r** が必要(グループ名からGUIDへの検索用) + +--- + + #### 監査 (`audits.py`) **ヘルプ表示:** diff --git a/content/self-host/rustdesk-server-pro/console/_index.pl.md b/content/self-host/rustdesk-server-pro/console/_index.pl.md index 94d436d..3df1744 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.pl.md +++ b/content/self-host/rustdesk-server-pro/console/_index.pl.md @@ -142,33 +142,204 @@ zobacz [tutaj](https://github.com/rustdesk/rustdesk/discussions/6377#discussionc #### Zarządzanie użytkownikami (`users.py`) -**Pokaż pomoc:** +**Pokaż pomoc:** +`./users.py -h` - ./users.py -h - -**Wyświetl użytkowników:** - - ./users.py --url --token view [--name ] [--group_name ] +**Wyświetl użytkowników:** +`./users.py --url --token view [--name ] [--group_name ]` **Filtry:** +- `--name`: nazwa użytkownika (wyszukiwanie rozmyte) +- `--group_name`: grupa użytkowników (dokładne dopasowanie) - --name : nazwa użytkownika - --group_name : grupa użytkowników +**Przykład:** +`./users.py --url https://example.com --token view --group_name Default` -**Przykład:** +**Podstawowe operacje:** - ./users.py --url https://example.com --token view --group_name admins +- **Wyłącz użytkownika:** + `./users.py --url --token disable --name testuser` -**Operacje:** +- **Włącz użytkownika:** + `./users.py --url --token enable --name testuser` -`view` można zastąpić `enable`, `disable` lub `delete`. +- **Usuń użytkownika:** + `./users.py --url --token delete --name testuser` -**Przykład (wyłącz użytkownika):** +**Tworzenie i zapraszanie użytkowników:** - ./users.py --url https://example.com --token disable --name testuser +- **Utwórz nowego użytkownika:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "notatka"]` + + Wymagane: `--name`, `--password`, `--group_name` + Opcjonalne: `--email`, `--note` + +- **Zaproś użytkownika przez email:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "notatka"]` + + Wymagane: `--email`, `--name`, `--group_name` + Opcjonalne: `--note` + +**Operacje 2FA i bezpieczeństwo:** + +- **Włącz wymuszanie 2FA:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + Wymagane: `--web-console-url` + +- **Wyłącz wymuszanie 2FA:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Opcjonalne: `--web-console-url` + +- **Zresetuj 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **Wyłącz weryfikację email:** + `./users.py --url --token disable-email-verification --name username` + +- **Wymuś wylogowanie:** + `./users.py --url --token force-logout --name username` + +**Uwagi:** +- Przy operacjach na wielu użytkownikach (dopasowanych przez filtry) zostanie wyświetlony monit o potwierdzenie +- Jeśli nie ma pasujących użytkowników, zostanie wyświetlone "Found 0 users" --- +#### Zarządzanie grupami użytkowników (`user_group.py`) + +**Pokaż pomoc:** +`./user_group.py -h` + +**Wyświetl grupy użytkowników:** +`./user_group.py --url --token view [--name ]` + +**Przykład:** +`./user_group.py --url https://example.com --token view --name "Zespół Sprzedaży"` + +**Operacje na grupach:** + +- **Utwórz grupę użytkowników:** + `./user_group.py --url --token add --name "NazwaGrupy" [--note "opis"] [--accessed-from ''] [--access-to '']` + + Przykład z kontrolą dostępu: + `./user_group.py --url --token add --name "Inżynierowie" --accessed-from '[{"type":0,"name":"Menedżerowie"}]' --access-to '[{"type":1,"name":"Serwery Dev"}]'` + +- **Aktualizuj grupę użytkowników:** + `./user_group.py --url --token update --name "NazwaGrupy" [--new-name "Nowa Nazwa"] [--note "nowa notatka"] [--accessed-from ''] [--access-to '']` + +- **Usuń grupę użytkowników:** + `./user_group.py --url --token delete --name "NazwaGrupy"` + + Obsługuje nazwy oddzielone przecinkami: `--name "Grupa1,Grupa2,Grupa3"` + +**Zarządzanie użytkownikami w grupach:** + +- **Wyświetl użytkowników w grupie:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + Filtry: + - `--name`: nazwa grupy (dokładne dopasowanie, opcjonalne) + - `--user-name`: nazwa użytkownika (wyszukiwanie rozmyte, opcjonalne) + + Przykład: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Dodaj użytkowników do grupy:** + `./user_group.py --url --token add-users --name "NazwaGrupy" --users "user1,user2,user3"` + +**Parametry kontroli dostępu:** + +- `--accessed-from`: tablica JSON definiująca kto może uzyskać dostęp do tej grupy użytkowników + - Type 0 = Grupa użytkowników (np. `[{"type":0,"name":"Admins"}]`) + - Type 2 = Użytkownik (np. `[{"type":2,"name":"john"}]`) + +- `--access-to`: tablica JSON definiująca do czego ta grupa użytkowników może uzyskać dostęp + - Type 0 = Grupa użytkowników (np. `[{"type":0,"name":"Wsparcie"}]`) + - Type 1 = Grupa urządzeń (np. `[{"type":1,"name":"Serwery"}]`) + +**Uwaga:** Użyj pojedynczych cudzysłowów wokół tablic JSON, aby uniknąć problemów z parsowaniem powłoki. + +**Wymagania uprawnień:** +- Polecenia `view/add/update/delete/add-users` wymagają **Uprawnienia Grupy Użytkowników** +- Polecenie `view-users` wymaga **Uprawnienia Użytkownika** + +--- + +#### Zarządzanie grupami urządzeń (`device_group.py`) + +**Pokaż pomoc:** +`./device_group.py -h` + +**Wyświetl grupy urządzeń:** +`./device_group.py --url --token view [--name ]` + +**Przykład:** +`./device_group.py --url https://example.com --token view` + +**Operacje na grupach:** + +- **Utwórz grupę urządzeń:** + `./device_group.py --url --token add --name "NazwaGrupy" [--note "opis"] [--accessed-from '']` + + Przykład: + `./device_group.py --url --token add --name "Produkcja" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Aktualizuj grupę urządzeń:** + `./device_group.py --url --token update --name "NazwaGrupy" [--new-name "Nowa Nazwa"] [--note "nowa notatka"] [--accessed-from '']` + +- **Usuń grupę urządzeń:** + `./device_group.py --url --token delete --name "NazwaGrupy"` + + Obsługuje nazwy oddzielone przecinkami: `--name "Grupa1,Grupa2,Grupa3"` + +**Zarządzanie urządzeniami w grupach:** + +- **Wyświetl urządzenia w grupie:** + `./device_group.py --url --token view-devices [filtry]` + + Dostępne filtry: + - `--name`: nazwa grupy urządzeń (dokładne dopasowanie) + - `--id`: ID urządzenia (wyszukiwanie rozmyte) + - `--device-name`: nazwa urządzenia (wyszukiwanie rozmyte) + - `--user-name`: nazwa użytkownika/właściciel (wyszukiwanie rozmyte) + - `--device-username`: nazwa użytkownika zalogowanego na urządzeniu (wyszukiwanie rozmyte) + + Przykłady: + ```bash + # Wyświetl wszystkie urządzenia w grupie + ./device_group.py --url --token view-devices --name Produkcja + + # Szukaj po nazwie urządzenia + ./device_group.py --url --token view-devices --device-name server + + # Połącz filtry + ./device_group.py --url --token view-devices --name Produkcja --user-name john + ``` + +- **Wyświetl dostępne grupy urządzeń:** + `./device_group.py --url --token accessible` + + Pokazuje wszystkie grupy urządzeń dostępne dla bieżącego użytkownika. + +- **Dodaj urządzenia do grupy:** + `./device_group.py --url --token add-devices --name "NazwaGrupy" --ids "deviceid1,deviceid2"` + +- **Usuń urządzenia z grupy:** + `./device_group.py --url --token remove-devices --name "NazwaGrupy" --ids "deviceid1,deviceid2"` + +**Parametr kontroli dostępu:** + +- `--accessed-from`: tablica JSON definiująca kto może uzyskać dostęp do tej grupy urządzeń + - Type 0 = Grupa użytkowników (np. `[{"type":0,"name":"Inżynierowie"}]`) + - Type 2 = Użytkownik (np. `[{"type":2,"name":"admin"}]`) + +**Wymagania dotyczące uprawnień:** +- Polecenia `view/add/update/delete/add-devices/remove-devices` wymagają **Uprawnienia Grupy Urządzeń** +- Polecenie `view-devices` wymaga **Uprawnienia Urządzenia** + +--- #### Zarządzanie urządzeniami (`devices.py`) **Pokaż pomoc:** @@ -255,6 +426,74 @@ zobacz [tutaj](https://github.com/rustdesk/rustdesk/discussions/6377#discussionc --- +#### Zarządzanie Strategiami (`strategies.py`) + +**Pokaż pomoc:** +`./strategies.py -h` + +**Wyświetl wszystkie strategie:** +`./strategies.py --url --token list` + +**Zobacz konkretną strategię:** +```bash +# Po nazwie +./strategies.py --url --token view --name "Default" + +# Po GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Włącz lub wyłącz strategię:** +```bash +./strategies.py --url --token enable --name "NazwaStrategii" +./strategies.py --url --token disable --name "NazwaStrategii" +``` + +**Przypisz strategię do urządzeń, użytkowników lub grup urządzeń:** +```bash +# Przypisz do urządzeń (po ID urządzenia) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Przypisz do użytkowników (po nazwie użytkownika) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Przypisz do grup urządzeń (po nazwie grupy) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Przypisanie mieszane +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Cofnij przypisanie strategii:** +```bash +# Cofnij z urządzeń +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Cofnij z użytkowników +./strategies.py --url --token unassign --users "admin" + +# Cofnij z grup urządzeń +./strategies.py --url --token unassign --device-groups "device_group1" +``` + +**Uwagi:** +- Skrypt obsługuje zarówno nazwy, jak i GUID dla użytkowników i grup urządzeń +- ID urządzeń są automatycznie konwertowane na GUID +- Wszystkie operacje assign/unassign mogą obsługiwać wiele celów jednocześnie + +**Wymagania uprawnień:** +- Polecenia `list/view/enable/disable/assign/unassign` wymagają **Uprawnienia Strategii** +- `--peers` wymaga **Uprawnienia Urządzenia:r** (do wyszukiwania ID do GUID) +- `--users` wymaga **Uprawnienia Użytkownika:r** (do wyszukiwania nazwy użytkownika do GUID) +- `--device-groups` wymaga **Uprawnienia Grupy Urządzeń:r** (do wyszukiwania nazwy grupy do GUID) + +--- + + #### Audyty (`audits.py`) **Pokaż pomoc:** diff --git a/content/self-host/rustdesk-server-pro/console/_index.pt.md b/content/self-host/rustdesk-server-pro/console/_index.pt.md index 4e8f0f0..1002db7 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.pt.md +++ b/content/self-host/rustdesk-server-pro/console/_index.pt.md @@ -141,30 +141,202 @@ veja [aqui](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomm #### Gerenciamento de Usuários (`users.py`) -**Mostrar ajuda:** +**Mostrar ajuda:** +`./users.py -h` - ./users.py -h - -**Visualizar usuários:** - - ./users.py --url --token view [--name ] [--group_name ] +**Visualizar usuários:** +`./users.py --url --token view [--name ] [--group_name ]` **Filtros:** +- `--name`: nome do usuário (busca difusa) +- `--group_name`: grupo de usuários (correspondência exata) - --name : nome do usuário - --group_name : grupo de usuários +**Exemplo:** +`./users.py --url https://example.com --token view --group_name Default` -**Exemplo:** +**Operações básicas:** - ./users.py --url https://example.com --token view --group_name admins +- **Desativar usuário:** + `./users.py --url --token disable --name testuser` -**Operações:** +- **Ativar usuário:** + `./users.py --url --token enable --name testuser` -`view` pode ser substituído por `enable`, `disable` ou `delete`. +- **Excluir usuário:** + `./users.py --url --token delete --name testuser` -**Exemplo (desativar usuário):** +**Criação e convite de usuários:** - ./users.py --url https://example.com --token disable --name testuser +- **Criar novo usuário:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "nota"]` + + Obrigatório: `--name`, `--password`, `--group_name` + Opcional: `--email`, `--note` + +- **Convidar usuário por email:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "nota"]` + + Obrigatório: `--email`, `--name`, `--group_name` + Opcional: `--note` + +**Operações 2FA e segurança:** + +- **Habilitar imposição 2FA:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + Obrigatório: `--web-console-url` + +- **Desabilitar imposição 2FA:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Opcional: `--web-console-url` + +- **Redefinir 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **Desabilitar verificação por email:** + `./users.py --url --token disable-email-verification --name username` + +- **Forçar logout:** + `./users.py --url --token force-logout --name username` + +**Observações:** +- Ao operar em múltiplos usuários (correspondentes aos filtros), será solicitada confirmação +- Se não houver usuários correspondentes, será exibido "Found 0 users" + +--- + +#### Gerenciamento de Grupos de Usuários (`user_group.py`) + +**Mostrar ajuda:** +`./user_group.py -h` + +**Visualizar grupos de usuários:** +`./user_group.py --url --token view [--name ]` + +**Exemplo:** +`./user_group.py --url https://example.com --token view --name "Equipe Vendas"` + +**Operações de grupo:** + +- **Criar grupo de usuários:** + `./user_group.py --url --token add --name "NomeGrupo" [--note "descrição"] [--accessed-from ''] [--access-to '']` + + Exemplo com controle de acesso: + `./user_group.py --url --token add --name "Engenharia" --accessed-from '[{"type":0,"name":"Gerentes"}]' --access-to '[{"type":1,"name":"Servidores Dev"}]'` + +- **Atualizar grupo de usuários:** + `./user_group.py --url --token update --name "NomeGrupo" [--new-name "Novo Nome"] [--note "nova nota"] [--accessed-from ''] [--access-to '']` + +- **Excluir grupo de usuários:** + `./user_group.py --url --token delete --name "NomeGrupo"` + + Suporta nomes separados por vírgula: `--name "Grupo1,Grupo2,Grupo3"` + +**Gerenciamento de usuários em grupos:** + +- **Visualizar usuários no grupo:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + Filtros: + - `--name`: nome do grupo (correspondência exata, opcional) + - `--user-name`: nome do usuário (busca difusa, opcional) + + Exemplo: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Adicionar usuários ao grupo:** + `./user_group.py --url --token add-users --name "NomeGrupo" --users "user1,user2,user3"` + +**Parâmetros de controle de acesso:** + +- `--accessed-from`: array JSON que define quem pode acessar este grupo de usuários + - Type 0 = Grupo de usuários (ex. `[{"type":0,"name":"Admins"}]`) + - Type 2 = Usuário (ex. `[{"type":2,"name":"john"}]`) + +- `--access-to`: array JSON que define o que este grupo de usuários pode acessar + - Type 0 = Grupo de usuários (ex. `[{"type":0,"name":"Suporte"}]`) + - Type 1 = Grupo de dispositivos (ex. `[{"type":1,"name":"Servidores"}]`) + +**Nota:** Use aspas simples ao redor dos arrays JSON para evitar problemas de análise do shell. + +**Requisitos de permissões:** +- Os comandos `view/add/update/delete/add-users` requerem **Permissão de Grupo de Usuários** +- O comando `view-users` requer **Permissão de Usuário** + +--- + +#### Gerenciamento de Grupos de Dispositivos (`device_group.py`) + +**Mostrar ajuda:** +`./device_group.py -h` + +**Visualizar grupos de dispositivos:** +`./device_group.py --url --token view [--name ]` + +**Exemplo:** +`./device_group.py --url https://example.com --token view` + +**Operações de grupo:** + +- **Criar grupo de dispositivos:** + `./device_group.py --url --token add --name "NomeGrupo" [--note "descrição"] [--accessed-from '']` + + Exemplo: + `./device_group.py --url --token add --name "Produção" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Atualizar grupo de dispositivos:** + `./device_group.py --url --token update --name "NomeGrupo" [--new-name "Novo Nome"] [--note "nova nota"] [--accessed-from '']` + +- **Excluir grupo de dispositivos:** + `./device_group.py --url --token delete --name "NomeGrupo"` + + Suporta nomes separados por vírgula: `--name "Grupo1,Grupo2,Grupo3"` + +**Gerenciamento de dispositivos em grupos:** + +- **Visualizar dispositivos no grupo:** + `./device_group.py --url --token view-devices [filtros]` + + Filtros disponíveis: + - `--name`: nome do grupo de dispositivos (correspondência exata) + - `--id`: ID do dispositivo (busca difusa) + - `--device-name`: nome do dispositivo (busca difusa) + - `--user-name`: nome do usuário/proprietário (busca difusa) + - `--device-username`: nome de usuário conectado no dispositivo (busca difusa) + + Exemplos: + ```bash + # Visualizar todos os dispositivos em um grupo + ./device_group.py --url --token view-devices --name Produção + + # Buscar por nome de dispositivo + ./device_group.py --url --token view-devices --device-name server + + # Combinar filtros + ./device_group.py --url --token view-devices --name Produção --user-name john + ``` + +- **Visualizar grupos de dispositivos acessíveis:** + `./device_group.py --url --token accessible` + + Mostra todos os grupos de dispositivos acessíveis ao usuário atual. + +- **Adicionar dispositivos ao grupo:** + `./device_group.py --url --token add-devices --name "NomeGrupo" --ids "deviceid1,deviceid2"` + +- **Remover dispositivos do grupo:** + `./device_group.py --url --token remove-devices --name "NomeGrupo" --ids "deviceid1,deviceid2"` + +**Parâmetro de controle de acesso:** + +- `--accessed-from`: array JSON que define quem pode acessar este grupo de dispositivos + - Type 0 = Grupo de usuários (ex. `[{"type":0,"name":"Engenheiros"}]`) + - Type 2 = Usuário (ex. `[{"type":2,"name":"admin"}]`) + +**Requisitos de permissões:** +- Os comandos `view/add/update/delete/add-devices/remove-devices` requerem **Permissão de Grupo de Dispositivos** +- O comando `view-devices` requer **Permissão de Dispositivo** --- @@ -254,6 +426,74 @@ veja [aqui](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomm --- +#### Gestão de Estratégias (`strategies.py`) + +**Mostrar ajuda:** +`./strategies.py -h` + +**Listar todas as estratégias:** +`./strategies.py --url --token list` + +**Ver uma estratégia específica:** +```bash +# Por nome +./strategies.py --url --token view --name "Default" + +# Por GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Ativar ou desativar uma estratégia:** +```bash +./strategies.py --url --token enable --name "NomeEstrategia" +./strategies.py --url --token disable --name "NomeEstrategia" +``` + +**Atribuir estratégia a dispositivos, usuários ou grupos de dispositivos:** +```bash +# Atribuir a dispositivos (por ID de dispositivo) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Atribuir a usuários (por nome de usuário) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Atribuir a grupos de dispositivos (por nome de grupo) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Atribuição mista +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Cancelar atribuição de estratégia:** +```bash +# Cancelar de dispositivos +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Cancelar de usuários +./strategies.py --url --token unassign --users "admin" + +# Cancelar de grupos de dispositivos +./strategies.py --url --token unassign --device-groups "device_group1" +``` + +**Notas:** +- O script suporta nomes e GUIDs para usuários e grupos de dispositivos +- IDs de dispositivos são automaticamente convertidos em GUIDs +- Todas as operações assign/unassign podem trabalhar com múltiplos alvos de uma vez + +**Requisitos de permissões:** +- Os comandos `list/view/enable/disable/assign/unassign` requerem **Permissão de Estratégia** +- `--peers` requer **Permissão de Dispositivo:r** (para pesquisa de ID para GUID) +- `--users` requer **Permissão de Usuário:r** (para pesquisa de nome de usuário para GUID) +- `--device-groups` requer **Permissão de Grupo de Dispositivos:r** (para pesquisa de nome de grupo para GUID) + +--- + + #### Auditorias (`audits.py`) **Mostrar ajuda:** diff --git a/content/self-host/rustdesk-server-pro/console/_index.ro.md b/content/self-host/rustdesk-server-pro/console/_index.ro.md index c140618..61549da 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.ro.md +++ b/content/self-host/rustdesk-server-pro/console/_index.ro.md @@ -142,18 +142,196 @@ Linia de comandă pe Windows nu afișează output implicit. Pentru a obține out **Vezi utilizatori:** `./users.py --url --token view [--name ] [--group_name ]` -**Filtre:** -`--name`: username -`--group_name`: grup utilizatori +**Filtre:** +- `--name`: username (căutare aproximativă) +- `--group_name`: grup utilizatori (potrivire exactă) **Exemplu:** -`./users.py --url https://example.com --token view --group_name admins` +`./users.py --url https://example.com --token view --group_name Default` -**Operații:** -`view` poate fi înlocuit cu `enable`, `disable`, sau `delete`. +**Operații de bază:** -**Exemplu (dezactivează utilizator):** -`./users.py --url https://example.com --token disable --name testuser` +- **Dezactivează utilizator:** + `./users.py --url --token disable --name testuser` + +- **Activează utilizator:** + `./users.py --url --token enable --name testuser` + +- **Șterge utilizator:** + `./users.py --url --token delete --name testuser` + +**Creare și invitare utilizatori:** + +- **Creează utilizator nou:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "notă"]` + + Necesar: `--name`, `--password`, `--group_name` + Opțional: `--email`, `--note` + +- **Invită utilizator prin email:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "notă"]` + + Necesar: `--email`, `--name`, `--group_name` + Opțional: `--note` + +**Operații 2FA și securitate:** + +- **Activează impunere 2FA:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + Necesar: `--web-console-url` + +- **Dezactivează impunere 2FA:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Opțional: `--web-console-url` + +- **Resetează 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **Dezactivează verificare email:** + `./users.py --url --token disable-email-verification --name username` + +- **Deconectare forțată:** + `./users.py --url --token force-logout --name username` + +**Notă:** +- La operații pe mai mulți utilizatori (potriviți prin filtre), se va solicita confirmare +- Dacă nu există utilizatori potriviți, se va afișa "Found 0 users" + +--- + +#### Management grupuri utilizatori (`user_group.py`) + +**Afișează help:** +`./user_group.py -h` + +**Vezi grupuri utilizatori:** +`./user_group.py --url --token view [--name ]` + +**Exemplu:** +`./user_group.py --url https://example.com --token view --name "Echipa Vânzări"` + +**Operații pe grupuri:** + +- **Creează grup utilizatori:** + `./user_group.py --url --token add --name "NumeGrup" [--note "descriere"] [--accessed-from ''] [--access-to '']` + + Exemplu cu control acces: + `./user_group.py --url --token add --name "Inginerie" --accessed-from '[{"type":0,"name":"Manageri"}]' --access-to '[{"type":1,"name":"Servere Dev"}]'` + +- **Actualizează grup utilizatori:** + `./user_group.py --url --token update --name "NumeGrup" [--new-name "Nume Nou"] [--note "notă nouă"] [--accessed-from ''] [--access-to '']` + +- **Șterge grup utilizatori:** + `./user_group.py --url --token delete --name "NumeGrup"` + + Suportă nume separate prin virgulă: `--name "Grup1,Grup2,Grup3"` + +**Management utilizatori în grupuri:** + +- **Vezi utilizatori în grup:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + Filtre: + - `--name`: nume grup (potrivire exactă, opțional) + - `--user-name`: username (căutare aproximativă, opțional) + + Exemplu: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Adaugă utilizatori în grup:** + `./user_group.py --url --token add-users --name "NumeGrup" --users "user1,user2,user3"` + +**Parametri control acces:** + +- `--accessed-from`: array JSON ce definește cine poate accesa acest grup de utilizatori + - Type 0 = Grup utilizatori (ex. `[{"type":0,"name":"Admins"}]`) + - Type 2 = Utilizator (ex. `[{"type":2,"name":"john"}]`) + +- `--access-to`: array JSON ce definește la ce poate accesa acest grup de utilizatori + - Type 0 = Grup utilizatori (ex. `[{"type":0,"name":"Suport"}]`) + - Type 1 = Grup dispozitive (ex. `[{"type":1,"name":"Servere"}]`) + +**Notă:** Folosiți ghilimele simple în jurul array-urilor JSON pentru a evita probleme de parsare shell. + +**Cerințe de permisiuni:** +- Comenzile `view/add/update/delete/add-users` necesită **Permisiune Grup Utilizatori** +- Comanda `view-users` necesită **Permisiune Utilizator** + +--- + +#### Management grupuri dispozitive (`device_group.py`) + +**Afișează help:** +`./device_group.py -h` + +**Vezi grupuri dispozitive:** +`./device_group.py --url --token view [--name ]` + +**Exemplu:** +`./device_group.py --url https://example.com --token view` + +**Operații pe grupuri:** + +- **Creează grup dispozitive:** + `./device_group.py --url --token add --name "NumeGrup" [--note "descriere"] [--accessed-from '']` + + Exemplu: + `./device_group.py --url --token add --name "Producție" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Actualizează grup dispozitive:** + `./device_group.py --url --token update --name "NumeGrup" [--new-name "Nume Nou"] [--note "notă nouă"] [--accessed-from '']` + +- **Șterge grup dispozitive:** + `./device_group.py --url --token delete --name "NumeGrup"` + + Suportă nume separate prin virgulă: `--name "Grup1,Grup2,Grup3"` + +**Management dispozitive în grupuri:** + +- **Vezi dispozitive în grup:** + `./device_group.py --url --token view-devices [filtre]` + + Filtre disponibile: + - `--name`: nume grup dispozitive (potrivire exactă) + - `--id`: ID dispozitiv (căutare aproximativă) + - `--device-name`: nume dispozitiv (căutare aproximativă) + - `--user-name`: username/proprietar (căutare aproximativă) + - `--device-username`: username conectat pe dispozitiv (căutare aproximativă) + + Exemple: + ```bash + # Vezi toate dispozitivele dintr-un grup + ./device_group.py --url --token view-devices --name Producție + + # Caută după nume dispozitiv + ./device_group.py --url --token view-devices --device-name server + + # Combină filtre + ./device_group.py --url --token view-devices --name Producție --user-name john + ``` + +- **Vezi grupuri dispozitive accesibile:** + `./device_group.py --url --token accessible` + + Afișează toate grupurile de dispozitive accesibile utilizatorului curent. + +- **Adaugă dispozitive în grup:** + `./device_group.py --url --token add-devices --name "NumeGrup" --ids "deviceid1,deviceid2"` + +- **Elimină dispozitive din grup:** + `./device_group.py --url --token remove-devices --name "NumeGrup" --ids "deviceid1,deviceid2"` + +**Parametru control acces:** + +- `--accessed-from`: array JSON ce definește cine poate accesa acest grup de dispozitive + - Type 0 = Grup utilizatori (ex. `[{"type":0,"name":"Ingineri"}]`) + - Type 2 = Utilizator (ex. `[{"type":2,"name":"admin"}]`) + +**Cerințe permisiuni:** +- Comenzile `view/add/update/delete/add-devices/remove-devices` necesită **Permisiune Grup Dispozitive** +- Comanda `view-devices` necesită **Permisiune Dispozitiv** --- @@ -227,6 +405,74 @@ Linia de comandă pe Windows nu afișează output implicit. Pentru a obține out --- +#### Gestionarea Strategiilor (`strategies.py`) + +**Afișați ajutor:** +`./strategies.py -h` + +**Listați toate strategiile:** +`./strategies.py --url --token list` + +**Vezi o strategie specifică:** +```bash +# După nume +./strategies.py --url --token view --name "Default" + +# După GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Activați sau dezactivați o strategie:** +```bash +./strategies.py --url --token enable --name "NumeStrategie" +./strategies.py --url --token disable --name "NumeStrategie" +``` + +**Atribuiți strategia dispozitivelor, utilizatorilor sau grupurilor de dispozitive:** +```bash +# Atribuiți dispozitivelor (după ID dispozitiv) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Atribuiți utilizatorilor (după nume utilizator) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Atribuiți grupurilor de dispozitive (după nume grup) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Atribuire mixtă +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Anulați atribuirea strategiei:** +```bash +# Anulați de la dispozitive +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Anulați de la utilizatori +./strategies.py --url --token unassign --users "admin" + +# Anulați de la grupuri de dispozitive +./strategies.py --url --token unassign --device-groups "device_group1" +``` + +**Note:** +- Scriptul acceptă atât nume cât și GUID-uri pentru utilizatori și grupuri de dispozitive +- ID-urile dispozitivelor sunt convertite automat în GUID-uri +- Toate operațiunile assign/unassign pot lucra cu mai multe ținte simultan + +**Cerințe de permisiuni:** +- Comenzile `list/view/enable/disable/assign/unassign` necesită **Permisiune Strategie** +- `--peers` necesită **Permisiune Dispozitiv:r** (pentru căutarea ID la GUID) +- `--users` necesită **Permisiune Utilizator:r** (pentru căutarea nume utilizator la GUID) +- `--device-groups` necesită **Permisiune Grup Dispozitive:r** (pentru căutarea nume grup la GUID) + +--- + + #### Audits (`audits.py`) **Afișează help:** diff --git a/content/self-host/rustdesk-server-pro/console/_index.zh-cn.md b/content/self-host/rustdesk-server-pro/console/_index.zh-cn.md index 9f95abf..893f490 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.zh-cn.md +++ b/content/self-host/rustdesk-server-pro/console/_index.zh-cn.md @@ -147,34 +147,204 @@ Windows 命令行默认无输出,如需查看输出,可使用如下方式运 ### Python CLI 管理工具 -#### 用户管理 (users.py) +#### 用户管理 (`users.py`) -**查看帮助:** +**查看帮助:** +`./users.py -h` - ./users.py -h +**查看用户:** +`./users.py --url --token view [--name ] [--group_name ]` -**查看用户:** +**过滤条件:** +- `--name`:用户名(模糊搜索) +- `--group_name`:用户组名(精确匹配) - ./users.py --url --token view [--name ] [--group_name ] +**示例:** +`./users.py --url https://example.com --token view --group_name Default` -**过滤条件:** -`--name`:用户名 -`--group_name`:用户组名 +**基本操作:** -**示例:** +- **禁用用户:** + `./users.py --url --token disable --name testuser` - ./users.py --url https://example.com --token view --group_name admins +- **启用用户:** + `./users.py --url --token enable --name testuser` -**操作命令:** -`view` 可替换为 `enable`(启用)、`disable`(禁用)或 `delete`(删除)。 +- **删除用户:** + `./users.py --url --token delete --name testuser` -**示例(禁用用户):** +**用户创建和邀请:** - ./users.py --url https://example.com --token disable --name testuser +- **创建新用户:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "备注"]` + + 必需参数:`--name`、`--password`、`--group_name` + 可选参数:`--email`、`--note` + +- **通过邮箱邀请用户:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "备注"]` + + 必需参数:`--email`、`--name`、`--group_name` + 可选参数:`--note` + +**2FA 和安全操作:** + +- **启用 2FA 强制要求:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + 必需参数:`--web-console-url` + +- **禁用 2FA 强制要求:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + 可选参数:`--web-console-url` + +- **重置 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **禁用邮箱验证:** + `./users.py --url --token disable-email-verification --name username` + +- **强制登出:** + `./users.py --url --token force-logout --name username` + +**注意事项:** +- 当操作多个用户时(通过过滤器匹配),系统会提示确认 +- 如果没有匹配的用户,将显示 "Found 0 users" --- -#### 设备管理 (devices.py) +#### 用户组管理 (`user_group.py`) + +**查看帮助:** +`./user_group.py -h` + +**查看用户组:** +`./user_group.py --url --token view [--name ]` + +**示例:** +`./user_group.py --url https://example.com --token view --name "销售团队"` + +**组操作:** + +- **创建用户组:** + `./user_group.py --url --token add --name "组名" [--note "描述"] [--accessed-from ''] [--access-to '']` + + 带访问控制的示例: + `./user_group.py --url --token add --name "工程部" --accessed-from '[{"type":0,"name":"管理层"}]' --access-to '[{"type":1,"name":"开发服务器"}]'` + +- **更新用户组:** + `./user_group.py --url --token update --name "组名" [--new-name "新名称"] [--note "新备注"] [--accessed-from ''] [--access-to '']` + +- **删除用户组:** + `./user_group.py --url --token delete --name "组名"` + + 支持逗号分隔的多个组名:`--name "组1,组2,组3"` + +**组内用户管理:** + +- **查看组内用户:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + 过滤条件: + - `--name`:组名(精确匹配,可选) + - `--user-name`:用户名(模糊搜索,可选) + + 示例: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **添加用户到组:** + `./user_group.py --url --token add-users --name "组名" --users "user1,user2,user3"` + +**访问控制参数:** + +- `--accessed-from`:定义谁可以访问此用户组的 JSON 数组 + - Type 0 = 用户组(例如:`[{"type":0,"name":"管理员"}]`) + - Type 2 = 用户(例如:`[{"type":2,"name":"john"}]`) + +- `--access-to`:定义此用户组可以访问什么的 JSON 数组 + - Type 0 = 用户组(例如:`[{"type":0,"name":"支持"}]`) + - Type 1 = 设备组(例如:`[{"type":1,"name":"服务器"}]`) + +**注意:** 使用单引号包围 JSON 数组以避免 shell 解析问题。 + +**权限要求:** +- `view/add/update/delete/add-users` 命令需要 **用户组权限** +- `view-users` 命令需要 **用户权限** + +--- + +#### 设备组管理 (`device_group.py`) + +**查看帮助:** +`./device_group.py -h` + +**查看设备组:** +`./device_group.py --url --token view [--name ]` + +**示例:** +`./device_group.py --url https://example.com --token view` + +**组操作:** + +- **创建设备组:** + `./device_group.py --url --token add --name "组名" [--note "描述"] [--accessed-from '']` + + 示例: + `./device_group.py --url --token add --name "生产环境" --accessed-from '[{"type":0,"name":"管理员"}]'` + +- **更新设备组:** + `./device_group.py --url --token update --name "组名" [--new-name "新名称"] [--note "新备注"] [--accessed-from '']` + +- **删除设备组:** + `./device_group.py --url --token delete --name "组名"` + + 支持逗号分隔的多个组名:`--name "组1,组2,组3"` + +**组内设备管理:** + +- **查看组内设备:** + `./device_group.py --url --token view-devices [过滤条件]` + + 可用的过滤条件: + - `--name`:设备组名(精确匹配) + - `--id`:设备 ID(模糊搜索) + - `--device-name`:设备名称(模糊搜索) + - `--user-name`:用户名/所有者(模糊搜索) + - `--device-username`:设备上登录的用户名(模糊搜索) + + 示例: + ```bash + # 查看组内所有设备 + ./device_group.py --url --token view-devices --name 生产环境 + + # 按设备名搜索 + ./device_group.py --url --token view-devices --device-name server + + # 组合过滤条件 + ./device_group.py --url --token view-devices --name 生产环境 --user-name john + ``` + + +- **添加设备到组:** + `./device_group.py --url --token add-devices --name "组名" --ids "deviceid1,deviceid2"` + +- **从组中移除设备:** + `./device_group.py --url --token remove-devices --name "组名" --ids "deviceid1,deviceid2"` + +**访问控制参数:** + +- `--accessed-from`:定义谁可以访问此设备组的 JSON 数组 + - Type 0 = 用户组(例如:`[{"type":0,"name":"工程师"}]`) + - Type 2 = 用户(例如:`[{"type":2,"name":"admin"}]`) + +**权限要求:** +- `view/add/update/delete/add-devices/remove-devices` 命令需要 **设备组权限** +- `view-devices` 命令需要 **设备权限** + +--- + +#### 设备管理 (`devices.py`) **查看帮助:** @@ -258,6 +428,73 @@ Windows 命令行默认无输出,如需查看输出,可使用如下方式运 --- +#### 策略管理 (`strategies.py`) + +**查看帮助:** +`./strategies.py -h` + +**列出所有策略:** +`./strategies.py --url --token list` + +**查看指定策略:** +```bash +# 通过名称 +./strategies.py --url --token view --name "Default" + +# 通过 GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**启用或禁用策略:** +```bash +./strategies.py --url --token enable --name "策略名称" +./strategies.py --url --token disable --name "策略名称" +``` + +**分配策略到设备、用户或设备组:** +```bash +# 分配到设备(使用设备 ID) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# 分配到用户(使用用户名) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# 分配到设备组(使用组名) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# 混合分配 +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**取消分配策略:** +```bash +# 取消设备的策略 +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# 取消用户的策略 +./strategies.py --url --token unassign --users "admin" + +# 取消设备组的策略 +./strategies.py --url --token unassign --device-groups "device_group1" +``` + +**注意事项:** +- 脚本支持用户和设备组的名称或 GUID +- 设备 ID 会自动转换为 GUID +- 所有 assign/unassign 操作都支持同时操作多个目标 + +**权限要求:** +- `list/view/enable/disable/assign/unassign` 命令需要 **策略权限** +- `--peers` 需要 **设备权限:r**(用于 ID 到 GUID 的查找) +- `--users` 需要 **用户权限:r**(用于用户名到 GUID 的查找) +- `--device-groups` 需要 **设备组权限:r**(用于组名到 GUID 的查找) + +--- + #### 审计日志 (audits.py) **查看帮助:** diff --git a/content/self-host/rustdesk-server-pro/console/_index.zh-tw.md b/content/self-host/rustdesk-server-pro/console/_index.zh-tw.md index fd46d5e..08b1bd4 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.zh-tw.md +++ b/content/self-host/rustdesk-server-pro/console/_index.zh-tw.md @@ -141,30 +141,201 @@ Windows 命令列預設不會輸出結果。若要查看輸出,可使用: #### 使用者管理 (`users.py`) -**顯示幫助:** +**顯示幫助:** +`./users.py -h` - ./users.py -h - -**查看使用者:** - - ./users.py --url --token view [--name ] [--group_name ] +**查看使用者:** +`./users.py --url --token view [--name ] [--group_name ]` **篩選條件:** +- `--name`:使用者名稱(模糊搜尋) +- `--group_name`:使用者群組名稱(精確匹配) - --name : 使用者名稱 - --group_name : 使用者群組 +**範例:** +`./users.py --url https://example.com --token view --group_name Default` -**範例:** +**基本操作:** - ./users.py --url https://example.com --token view --group_name admins +- **停用使用者:** + `./users.py --url --token disable --name testuser` -**操作:** +- **啟用使用者:** + `./users.py --url --token enable --name testuser` -`view` 可替換為 `enable`、`disable` 或 `delete`。 +- **刪除使用者:** + `./users.py --url --token delete --name testuser` -**範例(停用使用者):** +**使用者建立和邀請:** - ./users.py --url https://example.com --token disable --name testuser +- **建立新使用者:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "備註"]` + + 必要參數:`--name`、`--password`、`--group_name` + 選用參數:`--email`、`--note` + +- **透過電子郵件邀請使用者:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "備註"]` + + 必要參數:`--email`、`--name`、`--group_name` + 選用參數:`--note` + +**2FA 和安全操作:** + +- **啟用 2FA 強制要求:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + 必要參數:`--web-console-url` + +- **停用 2FA 強制要求:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + 選用參數:`--web-console-url` + +- **重設 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **停用電子郵件驗證:** + `./users.py --url --token disable-email-verification --name username` + +- **強制登出:** + `./users.py --url --token force-logout --name username` + +**注意事項:** +- 當操作多個使用者時(透過篩選器匹配),系統會提示確認 +- 如果沒有匹配的使用者,將顯示 "Found 0 users" + +--- + +#### 使用者群組管理 (`user_group.py`) + +**顯示幫助:** +`./user_group.py -h` + +**查看使用者群組:** +`./user_group.py --url --token view [--name ]` + +**範例:** +`./user_group.py --url https://example.com --token view --name "銷售團隊"` + +**群組操作:** + +- **建立使用者群組:** + `./user_group.py --url --token add --name "群組名稱" [--note "描述"] [--accessed-from ''] [--access-to '']` + + 帶存取控制的範例: + `./user_group.py --url --token add --name "工程部" --accessed-from '[{"type":0,"name":"管理層"}]' --access-to '[{"type":1,"name":"開發伺服器"}]'` + +- **更新使用者群組:** + `./user_group.py --url --token update --name "群組名稱" [--new-name "新名稱"] [--note "新備註"] [--accessed-from ''] [--access-to '']` + +- **刪除使用者群組:** + `./user_group.py --url --token delete --name "群組名稱"` + + 支援逗號分隔的多個群組名稱:`--name "群組1,群組2,群組3"` + +**群組內使用者管理:** + +- **查看群組內使用者:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + 篩選條件: + - `--name`:群組名稱(精確匹配,選用) + - `--user-name`:使用者名稱(模糊搜尋,選用) + + 範例: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **新增使用者到群組:** + `./user_group.py --url --token add-users --name "群組名稱" --users "user1,user2,user3"` + +**存取控制參數:** + +- `--accessed-from`:定義誰可以存取此使用者群組的 JSON 陣列 + - Type 0 = 使用者群組(例如:`[{"type":0,"name":"管理員"}]`) + - Type 2 = 使用者(例如:`[{"type":2,"name":"john"}]`) + +- `--access-to`:定義此使用者群組可以存取什麼的 JSON 陣列 + - Type 0 = 使用者群組(例如:`[{"type":0,"name":"支援"}]`) + - Type 1 = 設備群組(例如:`[{"type":1,"name":"伺服器"}]`) + +**注意:** 使用單引號包圍 JSON 陣列以避免 shell 解析問題。 + +**權限要求:** +- `view/add/update/delete/add-users` 命令需要 **使用者群組權限** +- `view-users` 命令需要 **使用者權限** + +--- + +#### 設備群組管理 (`device_group.py`) + +**顯示幫助:** +`./device_group.py -h` + +**查看設備群組:** +`./device_group.py --url --token view [--name ]` + +**範例:** +`./device_group.py --url https://example.com --token view` + +**群組操作:** + +- **建立設備群組:** + `./device_group.py --url --token add --name "群組名稱" [--note "描述"] [--accessed-from '']` + + 範例: + `./device_group.py --url --token add --name "生產環境" --accessed-from '[{"type":0,"name":"管理員"}]'` + +- **更新設備群組:** + `./device_group.py --url --token update --name "群組名稱" [--new-name "新名稱"] [--note "新備註"] [--accessed-from '']` + +- **刪除設備群組:** + `./device_group.py --url --token delete --name "群組名稱"` + + 支援逗號分隔的多個群組名稱:`--name "群組1,群組2,群組3"` + +**群組內設備管理:** + +- **查看群組內設備:** + `./device_group.py --url --token view-devices [篩選條件]` + + 可用的篩選條件: + - `--name`:設備群組名稱(精確匹配) + - `--id`:設備 ID(模糊搜尋) + - `--device-name`:設備名稱(模糊搜尋) + - `--user-name`:使用者名稱/擁有者(模糊搜尋) + - `--device-username`:設備上登入的使用者名稱(模糊搜尋) + + 範例: + ```bash + # 查看群組內所有設備 + ./device_group.py --url --token view-devices --name 生產環境 + + # 按設備名稱搜尋 + ./device_group.py --url --token view-devices --device-name server + + # 組合篩選條件 + ./device_group.py --url --token view-devices --name 生產環境 --user-name john + ``` + +- **查看可存取的設備群組:** + + 顯示目前使用者可存取的所有設備群組。 + +- **新增設備到群組:** + `./device_group.py --url --token add-devices --name "群組名稱" --ids "deviceid1,deviceid2"` + +- **從群組中移除設備:** + `./device_group.py --url --token remove-devices --name "群組名稱" --ids "deviceid1,deviceid2"` + +**存取控制參數:** + +- `--accessed-from`:定義誰可以存取此設備群組的 JSON 陣列 + - Type 0 = 使用者群組(例如:`[{"type":0,"name":"工程師"}]`) + - Type 2 = 使用者(例如:`[{"type":2,"name":"admin"}]`) + +**權限要求:** +- `view/add/update/delete/add-devices/remove-devices` 命令需要 **設備群組權限** +- `view-devices` 命令需要 **設備權限** --- @@ -254,6 +425,73 @@ Windows 命令列預設不會輸出結果。若要查看輸出,可使用: --- +#### 策略管理 (`strategies.py`) + +**顯示幫助:** +`./strategies.py -h` + +**列出所有策略:** +`./strategies.py --url --token list` + +**查看指定策略:** +```bash +# 通過名稱 +./strategies.py --url --token view --name "Default" + +# 通過 GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**啟用或禁用策略:** +```bash +./strategies.py --url --token enable --name "策略名稱" +./strategies.py --url --token disable --name "策略名稱" +``` + +**分配策略到設備、使用者或設備群組:** +```bash +# 分配到設備(使用設備 ID) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# 分配到使用者(使用使用者名稱) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# 分配到設備群組(使用群組名稱) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# 混合分配 +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**取消分配策略:** +```bash +# 取消設備的策略 +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# 取消使用者的策略 +./strategies.py --url --token unassign --users "admin" + +# 取消設備群組的策略 +./strategies.py --url --token unassign --device-groups "device_group1" +``` + +**注意事項:** +- 腳本支援使用者和設備群組的名稱或 GUID +- 設備 ID 會自動轉換為 GUID +- 所有 assign/unassign 操作都支援同時操作多個目標 + +**權限要求:** +- `list/view/enable/disable/assign/unassign` 命令需要 **策略權限** +- `--peers` 需要 **設備權限:r**(用於 ID 到 GUID 的查找) +- `--users` 需要 **使用者權限:r**(用於使用者名稱到 GUID 的查找) +- `--device-groups` 需要 **設備群組權限:r**(用於群組名稱到 GUID 的查找) + +--- + #### 稽核 (`audits.py`) **顯示幫助:**