---
title: "Інструменти MSP"
description: "PowerShell, Datto RMM, N-able, ConnectWise Automate. Видача облікових даних для вашої клієнтської бази."
lang: uk
url: https://clavitor.ai/uk/developers/msp
markdown: https://clavitor.ai/uk/developers/msp.md
translation_of: https://clavitor.ai/en/developers/msp.md
authoritative: false
publisher: Clavitor LLC
---

> This is the Ukrainian translation of [MSP Tools](https://clavitor.ai/en/developers/msp.md). The original English text is authoritative; where the two differ, the English version prevails.

# Інструменти MSP: Ваша RMM вже робить виклики API. Clavitor робить їх безпечними.

Ваші технічні спеціалісти щодня використовують Datto, N-able та ConnectWise. Кожен скрипт, кожна автоматизація, кожне заплановане завдання потребує облікових даних. Сьогодні вони зберігаються у змінних скриптів, користувацьких полях або спільному сховищі, яке може прочитати кожен. Проксі та CLI Clavitor змінюють це, не змінюючи ваших робочих процесів.

## Шаблон проксі для RMM

Встановіть `HTTPS_PROXY` на кінцевій точці, і ваші існуючі скрипти працюватимуть без змін. Проксі перехоплює вихідні HTTPS-запити, розпізнає посилання `clavitor://` у заголовках та вставляє справжні облікові дані. Ваш скрипт ніколи не бачить секрет. Ваша консоль RMM ніколи не реєструє його.

```
# On the managed endpoint — one-time setup

$env:HTTPS_PROXY = "http://localhost:1983"

# Your existing automation scripts work unchanged

# The proxy resolves clavitor:// references in request headers

Invoke-RestMethod -Uri "https://api.openai.com/v1/models" `
  -Headers @{ Authorization = "Bearer clavitor://OpenAI/key" }
```

## PowerShell

PowerShell — це щоденна мова MSP. CLI та проксі працюють нативно.

### CLI — окремі значення

```
# Resolve, use, scrub — the credential lives for one statement

$cred = clavitor-cli get "Client-Acme/VPN" --field password
Add-VpnConnection -Name "Acme" -ServerAddress "vpn.acme.com" -AuthenticationMethod MSChapv2
$secure = ConvertTo-SecureString $cred -AsPlainText -Force
Set-VpnConnectionUsernamePassword -ConnectionName "Acme" -Password $secure
Remove-Variable cred, secure
```

### Рендеринг — шаблони конфігурації

```
# Template with clavitor:// references (safe to store in your RMM)

clavitor-cli render monitoring-config.json | `
  Set-Content -Path "C:\ProgramData\Monitor\config.json"
```

### Проксі — прозоре вставлення

```
$env:HTTPS_PROXY = "http://localhost:1983"

# Every Invoke-RestMethod and Invoke-WebRequest now resolves clavitor://

Invoke-RestMethod -Uri "https://api.datto.com/v1/devices" `
  -Headers @{ Authorization = "Bearer clavitor://Datto API/key" }
```

## Atera

Atera замінює плейсхолдери користувацьких полів у параметрах скриптів під час виконання, використовуючи синтаксис `{[Atera.<level>.CustomField.<name>]}`. Передайте токен Clavitor до одноразового скрипта встановлення як параметр; пізніші скрипти звертатимуться до CLI на кінцевій точці.

### Встановлення через профіль автоматизації ІТ

У бібліотеці скриптів Atera створіть скрипт PowerShell **Install Clavitor** з одним параметром. У профілі автоматизації ІТ, який його запускає, викличте його за допомогою плейсхолдера поля рівня клієнта:

```
Install-Clavitor.ps1 -Token "{[Atera.Customer.CustomField.ClavitorToken]}"
```

Atera замінює значення перед тим, як агент прочитає його список аргументів. Скрипт:

```
param([Parameter(Mandatory)][string]$Token)
$Token | clavitor-cli init
Remove-Variable Token
```

### Розпізнавання облікових даних під час виконання

Після реєстрації кінцевої точки кожен наступний скрипт Atera читає облікові дані зі сховища — Atera зберігає лише слот токена:

```
$pass = clavitor-cli get "Client-Acme/SQL Server" --field password
$secure = ConvertTo-SecureString $pass -AsPlainText -Force
Invoke-Sqlcmd -ServerInstance "sql.acme.local" `
  -Credential (New-Object PSCredential("sa", $secure)) -Query "SELECT 1"
Remove-Variable pass, secure
```

## ConnectWise Automate

Automate замінює макроси полів додаткових даних (EDF) у аргументах кроків скрипта за допомогою синтаксису `{%^el:FieldName^%}` (EDF рівня комп'ютера). CLI встановлюється за допомогою скрипта Automate, який завантажує бінарний файл і викликає крок PowerShell з токеном, переданим як параметр — значення EDF замінюється перед виконанням кроку скрипта.

### Скрипт Automate: встановлення

В редакторі скриптів Automate створіть скрипт з двома кроками:

```
Step 1  File Download from LTShare       clavitor-cli.exe → %windir%\Temp\
Step 2  Shell Execute (PowerShell)       Install-Clavitor.ps1 -Token "{%^el:ClavitorToken^%}"
```

Макрос `{%^el:ClavitorToken^%}` замінюється значенням EDF рівня комп'ютера перед виконанням кроку PowerShell. Зберігайте токени довжиною до 255 символів, щоб залишатися в межах ліміту заміни LabReplace. Сам скрипт:

```
# Install-Clavitor.ps1

param([Parameter(Mandatory)][string]$Token)
$Token | clavitor-cli init
Remove-Variable Token
```

### Скрипт Automate: ротація облікових даних домену

Наступні скрипти читають зі сховища та записують статус назад до EDF для створення дашбордів:

```
$cred = clavitor-cli get "Client-Delta/Domain Admin" --field password
$secure = ConvertTo-SecureString $cred -AsPlainText -Force
Reset-ComputerMachinePassword `
  -Credential (New-Object PSCredential("administrator", $secure))
# Push timestamp back to EDF "LastRotation" via Automate's ExtraData Set Value step

Write-Output (Get-Date -Format o)
Remove-Variable cred, secure
```

## Datto RMM

Datto RMM надає змінні сайту та глобальні змінні компонентам PowerShell як змінні середовища з префіксом `$env:`; користувацькі поля (UDF) надаються як `$env:UDF_1` до `$env:UDF_30`. Один компонент встановлює CLI; все інше читає зі сховища.

### Компонент: встановлення та ініціалізація

Визначте змінну сайту `ClavitorToken` у консолі Datto — вона з'явиться в компоненті як `$env:ClavitorToken`:

```
# Datto RMM component: bootstrap Clavitor CLI

# Site variable "ClavitorToken" → $env:ClavitorToken at runtime

$env:ClavitorToken | clavitor-cli init
```

### Компонент: монітор API через проксі

Наступні компоненти записують посилання `clavitor://` у заголовки запитів — проксі розпізнає їх на хості. Облікові дані ніколи не потрапляють у пам'ять скрипта або журнали Datto:

```
# Scheduled monitor — runs every 15 minutes

$env:HTTPS_PROXY = "http://localhost:1983"
$response = Invoke-RestMethod -Uri "https://api.client.com/v1/status" `
  -Headers @{ Authorization = "Bearer clavitor://Client-Bravo/Monitoring API" }

# Push a status code back into UDF_5 for the Datto dashboard

New-ItemProperty -Path "HKLM:\SOFTWARE\CentraStage" `
  -Name "Custom5" -Value $response.status -Force | Out-Null
```

## Kaseya VSA

Процедури агента VSA замінюють макроси `#variable#` у аргументах PowerShell під час виконання, а потім виконують скрипт через сімейство кроків `executePowershell` (`executePowerShell64BitSystem` тощо). Користувацьке поле в записі агента містить токен Clavitor; процедура передає його для ініціалізації через stdin.

### Процедура агента: встановлення

Додайте користувацьке поле агента `ClavitorToken` (Audit → Edit Profile → Custom Fields), а потім створіть процедуру з двома кроками:

```
Step 1  Get File from VSA Server     clavitor-cli.exe → C:\Program Files\Clavitor\
Step 2  Execute PowerShell (64 Sys)  "C:\Program Files\Clavitor\clavitor-cli.exe init" \
                                     stdin = "#vAgentConfiguration.ClavitorToken#"
```

Макрос `#vAgentConfiguration.ClavitorToken#` замінюється значенням користувацького поля перед виконанням команди VSA — токен не з'являється в історії процедур VSA.

### Процедура агента: ротація привілейованих облікових даних

Після ініціалізації будь-яка наступна процедура читає зі сховища:

```
# Executed via executePowerShell64BitSystem

$cred = clavitor-cli get "Client-Hotel/Local Admin" --field password
$secure = ConvertTo-SecureString $cred -AsPlainText -Force
Set-LocalUser -Name "Administrator" -Password $secure
Remove-Variable cred, secure
```

## N-able N-central

Одиницею автоматизації є **AMP** (Automation Manager Policy) — політика на основі PowerShell, створена в Automation Manager. Користувацькі властивості на рівні організації, клієнта або сайту можуть бути передані об'єкту `Run PowerShell Script` як вхідні параметри.

### AMP: встановлення з користувацькою властивістю як вхідними даними

Додайте користувацьку властивість `ClavitorToken` на рівні клієнта (Administration → Custom Properties). В Automation Manager створіть AMP, чий об'єкт `Run PowerShell Script` прив'язує вхідний параметр `Token` до цієї користувацької властивості. Скрипт:

```
param([Parameter(Mandatory)][string]$Token)
$Token | clavitor-cli init
Remove-Variable Token
```

Значення користувацької властивості надходить як `$Token`. Воно ніколи не з'являється в експортованому XML AMP або в журналі аудиту N-central.

### Репозиторій скриптів: отримання облікових даних під час виконання

Для ad-hoc скриптів, що надсилаються через Репозиторій скриптів (Configuration → Repository → Scripts/Software), кінцева точка вже ініціалізована — скрипт просто викликає CLI:

```
$dbPass = clavitor-cli get "Client-Bcme/SQL Server" --field password
$secure = ConvertTo-SecureString $dbPass -AsPlainText -Force
Invoke-Sqlcmd -ServerInstance "sql.bcme.com" `
  -Credential (New-Object PSCredential("sa", $secure)) -Query "SELECT 1"
Remove-Variable dbPass, secure
```

## N-able N-sight

N-sight (раніше SolarWinds RMM) використовує той самий механізм Automation Manager, що й N-central, а також Script Manager для скриптів `.ps1`, AMP, batch та інших типів. Шаблон відображає N-central: AMP з вхідним параметром для токена, а потім все інше розпізнається під час виконання.

### Script Manager: встановлення через автоматизоване завдання

Завантажте `Install-Clavitor.ps1` до Settings → Script Manager з параметром для токена. Прикріпіть його як автоматизоване завдання на кінцевій точці; передайте токен як аргумент скрипта з налаштування рівня пристрою:

```
param([Parameter(Mandatory)][string]$Token)
$Token | clavitor-cli init
Remove-Variable Token
```

### Автоматизоване завдання: заплановане резервне копіювання з обліковими даними зі сховища

Після ініціалізації заплановані завдання отримують облікові дані зі сховища. Будь-який стандартний вивід довжиною до 255 символів відображається назад на дашборді N-sight:

```
$pass = clavitor-cli get "Client-India/SQL Backup" --field password
$secure = ConvertTo-SecureString $pass -AsPlainText -Force
Backup-SqlDatabase -ServerInstance "sql.india.com" -Database "AppDB" `
  -Credential (New-Object PSCredential("backup-svc", $secure))
Write-Output "backup OK $(Get-Date -Format o)"
Remove-Variable pass, secure
```

## NinjaOne

Скрипти NinjaOne, що виконуються на кінцевій точці, можуть читати та записувати користувацькі поля за допомогою вбудованих командлетів: `Ninja-Property-Get <name>` повертає значення, `Ninja-Property-Set <name> <value>` записує його назад. Зберігайте токен Clavitor у користувацькому полі організації (тип **Secure**, щоб він був доступний лише для запису з консолі); скрипт встановлення читає його один раз.

### Скрипт встановлення: читання токена з користувацького поля

В Administration → Library → Custom Fields додайте поле організації `clavitorToken` типу Secure. Потім запустіть скрипт встановлення:

```
$token = Ninja-Property-Get clavitorToken
$token | clavitor-cli init
Remove-Variable token
```

### Користувацька дія: виклик API через проксі

Після встановлення автоматизації викликають зовнішні API через проксі — облікові дані ніколи не копіюються у змінну скрипта:

```
$env:HTTPS_PROXY = "http://localhost:1983"
$response = Invoke-RestMethod -Uri "https://api.client-echo.com/v1/status" `
  -Headers @{ Authorization = "Bearer clavitor://Client-Echo/Monitoring API" }

# Push the result back to a device custom field for dashboarding

Ninja-Property-Set lastApiStatus $response.status
```

## Syncro

Syncro надає користувацькі поля активів та теги як змінні платформи **Platform** за допомогою синтаксису подвійних фігурних дужок `{{asset_custom_field_<name>}}`. Визначте змінну скрипта типу Platform і прив'яжіть її до поля — Syncro замінює значення в параметрі PowerShell під час виконання скрипта.

### Скрипт Syncro: встановлення

Створіть користувацьке поле активу `clavitor_token`. В редакторі скриптів оголосіть змінну `Token` типу **Platform**, прив'язану до `{{asset_custom_field_clavitor_token}}`; передайте її до параметра PowerShell у тілі скрипта:

```
param([Parameter(Mandatory)][string]$Token)
$Token | clavitor-cli init
Remove-Variable Token
```

Панель швидкої допомоги внизу кожного редактора скриптів Syncro містить список усіх доступних змінних платформи для контексту активу, клієнта та квитка.

### Скрипт Syncro: підключення VPN за допомогою облікових даних зі сховища

Після встановлення скрипти та автоматизовані засоби виправлення розпізнають облікові дані зі сховища та використовують їх безпосередньо:

```
$pass = clavitor-cli get "Client-Golf/VPN" --field password
$secure = ConvertTo-SecureString $pass -AsPlainText -Force
Add-VpnConnection -Name "Golf" -ServerAddress "vpn.golf.com" `
  -AuthenticationMethod MSChapv2 -Force
Set-VpnConnectionUsernamePassword -ConnectionName "Golf" -Password $secure
# Write status back to asset for Syncro dashboard

Rmm-Alert -Category "vpn-status" -Body "Golf connected $(Get-Date -Format o)"
Remove-Variable pass, secure
```

## Чому це важливо для MSP

Кожна платформа RMM зберігає облікові дані десь — користувацькі властивості, змінні сайту, додаткові поля даних, параметри скриптів. Кожен технічний спеціаліст з доступом до консолі може їх бачити. Кожне порушення безпеки вашої консолі RMM розкриває облікові дані кожного клієнта.

Clavitor переміщує облікові дані з RMM. RMM зберігає лише токен агента (один на клієнта). Токен надає обмежений доступ до сховища цього клієнта. Порушення безпеки вашої консолі RMM розкриває токени, а не облікові дані — і кожен токен має IP-білий список для кінцевої точки, на яку він був розгорнутий.

### Обмежено за клієнтом

Кожне сховище клієнта має власний токен агента. Доступ технічного спеціаліста контролюється за областю дії, а не за тим, "хто може увійти до консолі RMM".

### Аудит за скриптом

Кожен доступ до облікових даних реєструється — який скрипт, яка кінцева точка, які облікові дані, коли. Ваші клієнти можуть бачити журнал аудиту. Ви можете довести, хто і що отримав доступ.

### Відкликано одним кліком

Клієнт пішов? Відкличте їхній токен агента. Кожна кінцева точка негайно припиняє розпізнавання облікових даних. Немає паролів для ротації, немає користувацьких властивостей для очищення на 200 машинах.

## Припиніть зберігати облікові дані у вашій RMM.

Один CLI. Кожен клієнт. Кожні облікові дані з обмеженим доступом, аудитом та можливістю відкликання.
[Почати безкоштовно](https://clavitor.ai/uk/checkout)
[Огляд для розробників →](https://clavitor.ai/uk/developers)
