---
title: "Alat MSP"
description: "PowerShell, Datto RMM, N-able, ConnectWise Automate. Penerbitan kredensial untuk basis pelanggan Anda."
lang: id
url: https://clavitor.ai/id/developers/msp
markdown: https://clavitor.ai/id/developers/msp.md
translation_of: https://clavitor.ai/en/developers/msp.md
authoritative: false
publisher: Clavitor LLC
---

> This is the Indonesian 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.

# Alat MSP: RMM Anda sudah melakukan panggilan API. Clavitor membuatnya aman.

Teknisi Anda menggunakan Datto, N-able, dan ConnectWise setiap hari. Setiap skrip, setiap otomatisasi, setiap tugas terjadwal membutuhkan kredensial. Saat ini, kredensial tersebut tersimpan dalam variabel skrip, bidang kustom, atau brankas bersama yang dapat dibaca oleh siapa saja. Proksi dan CLI Clavitor mengubah hal tersebut tanpa mengubah alur kerja Anda.

## Pola proksi untuk RMM

Atur `HTTPS_PROXY` pada endpoint dan skrip Anda yang sudah ada akan berfungsi tanpa perubahan. Proksi mencegat permintaan HTTPS keluar, meresolusi referensi `clavitor://` di header, dan menginjeksikan kredensial asli. Skrip Anda tidak pernah melihat rahasia tersebut. Konsol RMM Anda tidak pernah mencatatnya.

```
# 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 adalah bahasa sehari-hari MSP. CLI dan proksi berfungsi secara native.

### CLI — nilai tunggal

```
# 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
```

### Render — template konfigurasi

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

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

### Proxy — injeksi transparan

```
$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 menyisipkan placeholder bidang kustom ke dalam parameter skrip saat runtime, menggunakan sintaks `{[Atera.<level>.CustomField.<name>]}`. Berikan token Clavitor ke skrip instalasi satu kali sebagai parameter; skrip selanjutnya akan memanggil CLI pada endpoint.

### Instal melalui profil Otomatisasi IT

Di pustaka skrip Atera, buat skrip PowerShell **Install Clavitor** dengan satu parameter. Dalam profil Otomatisasi IT yang menjalankannya, panggil dengan placeholder bidang tingkat pelanggan:

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

Atera menyisipkan nilai sebelum agen membaca daftar argumennya. Skripnya:

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

### Ambil kredensial saat runtime

Setelah endpoint terdaftar, setiap skrip Atera selanjutnya akan membaca kredensial dari brankas — Atera hanya menyimpan slot token:

```
$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 menyisipkan makro Extra Data Field (EDF) ke dalam argumen langkah skrip menggunakan sintaks `{%^el:FieldName^%}` (EDF tingkat komputer). CLI diinstal melalui skrip Automate yang mengunduh file biner dan memanggil langkah PowerShell dengan token yang diberikan sebagai parameter — nilai EDF diganti sebelum langkah skrip dieksekusi.

### Skrip Automate: instal

Di editor skrip Automate, buat skrip dengan dua langkah:

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

Makro `{%^el:ClavitorToken^%}` diganti dengan nilai EDF tingkat komputer sebelum langkah PowerShell berjalan. Pastikan token kurang dari 255 karakter agar tetap dalam batas substitusi LabReplace. Skrip itu sendiri:

```
# Install-Clavitor.ps1

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

### Skrip Automate: rotasi kredensial domain

Skrip selanjutnya membaca dari brankas dan menulis status kembali ke EDF untuk dasbor:

```
$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 mengekspos variabel situs dan global ke komponen PowerShell sebagai variabel lingkungan dengan awalan `$env:`; bidang yang ditentukan pengguna (UDF) diekspos sebagai `$env:UDF_1` hingga `$env:UDF_30`. Satu komponen menginstal CLI; semua komponen selanjutnya membaca dari brankas.

### Komponen: instal dan inisialisasi

Tentukan variabel situs `ClavitorToken` di konsol Datto — ini muncul di dalam komponen sebagai `$env:ClavitorToken`:

```
# Datto RMM component: bootstrap Clavitor CLI

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

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

### Komponen: monitor API melalui proksi

Komponen selanjutnya menulis referensi `clavitor://` di header permintaan — proksi meresolusinya di host. Kredensial tidak pernah masuk ke memori skrip atau log 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

Prosedur agen VSA menyisipkan makro `#variable#` ke dalam argumen PowerShell saat runtime, lalu mengeksekusi skrip melalui keluarga langkah `executePowershell` (`executePowerShell64BitSystem`, dll.). Bidang Kustom pada catatan agen menyimpan token Clavitor; prosedur meneruskannya ke inisialisasi melalui stdin.

### Prosedur agen: instal

Tambahkan Bidang Kustom agen `ClavitorToken` (Audit → Edit Profil → Bidang Kustom), lalu buat prosedur dengan dua langkah:

```
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#"
```

Makro `#vAgentConfiguration.ClavitorToken#` diganti dengan nilai Bidang Kustom sebelum VSA mengeksekusi perintah — token tidak muncul dalam riwayat prosedur VSA.

### Prosedur agen: rotasi kredensial istimewa

Setelah diinisialisasi, prosedur selanjutnya akan membaca dari brankas:

```
# 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

Unit otomatisasi adalah **AMP** (Automation Manager Policy) — kebijakan berbasis PowerShell yang dibuat di Automation Manager. Properti Kustom pada tingkat organisasi, pelanggan, atau situs dapat diteruskan ke objek `Run PowerShell Script` sebagai Parameter Input.

### AMP: instal dengan Properti Kustom sebagai input

Tambahkan Properti Kustom `ClavitorToken` pada tingkat pelanggan (Administrasi → Properti Kustom). Di Automation Manager, buat AMP yang objek `Run PowerShell Script`-nya mengikat Parameter Input `Token` ke Properti Kustom tersebut. Skripnya:

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

Nilai Properti Kustom masuk sebagai `$Token`. Nilai tersebut tidak pernah muncul di XML yang diekspor AMP atau di log audit N-central.

### Repositori Skrip: ambil kredensial saat runtime

Untuk skrip ad-hoc yang didistribusikan melalui Repositori Skrip (Konfigurasi → Repositori → Skrip/Perangkat Lunak), endpoint sudah diinisialisasi — skrip hanya memanggil 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 (sebelumnya SolarWinds RMM) menjalankan mesin Automation Manager yang sama dengan N-central, ditambah Script Manager untuk tipe skrip `.ps1`, AMP, batch, dan lainnya. Polanya sama seperti N-central: AMP dengan Parameter Input untuk token, lalu semua hal lainnya diresolusi saat runtime.

### Script Manager: instal melalui Tugas Otomatis

Unggah `Install-Clavitor.ps1` ke Pengaturan → Script Manager dengan parameter untuk token. Lampirkan sebagai Tugas Otomatis pada endpoint; berikan token sebagai argumen skrip dari pengaturan tingkat perangkat:

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

### Tugas Otomatis: pencadangan terjadwal dengan kredensial brankas

Setelah diinisialisasi, tugas terjadwal mengambil kredensial dari brankas. Output standar apa pun hingga 255 karakter akan muncul kembali ke dasbor 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

Skrip NinjaOne yang berjalan di endpoint dapat membaca dan menulis bidang kustom melalui cmdlet bawaan: `Ninja-Property-Get <name>` mengembalikan nilai, `Ninja-Property-Set <name> <value>` menuliskannya kembali. Simpan token Clavitor di bidang kustom organisasi (tipe **Secure** sehingga hanya dapat ditulis dari konsol); skrip instalasi membacanya sekali.

### Skrip instalasi: baca token dari bidang kustom

Di Administrasi → Pustaka → Bidang Kustom, tambahkan bidang organisasi `clavitorToken` bertipe Secure. Kemudian jalankan skrip instalasi:

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

### Tindakan Kustom: panggilan API melalui proksi

Setelah diinstal, otomatisasi memanggil API eksternal melalui proksi — kredensial tidak pernah disalin ke variabel skrip:

```
$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 mengekspos bidang kustom aset dan tag sebagai variabel skrip **Platform** menggunakan sintaks kurung ganda `{{asset_custom_field_<name>}}`. Tentukan variabel skrip bertipe Platform dan ikat ke bidang tersebut — Syncro menyisipkan nilai ke dalam parameter PowerShell saat skrip dijalankan.

### Skrip Syncro: instal

Buat bidang kustom aset `clavitor_token`. Di editor skrip, deklarasikan variabel `Token` bertipe **Platform** yang terikat ke `{{asset_custom_field_clavitor_token}}`; berikan ke parameter PowerShell di badan skrip:

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

Panel Bantuan Cepat di bagian bawah setiap editor skrip Syncro mencantumkan setiap variabel platform yang tersedia untuk konteks aset, pelanggan, dan tiket.

### Skrip Syncro: sambungkan VPN dengan kredensial brankas

Setelah instalasi, skrip dan Otomatisasi Perbaikan mengambil kredensial dari brankas dan menggunakannya secara langsung:

```
$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
```

## Mengapa ini penting bagi MSP

Setiap platform RMM menyimpan kredensial di suatu tempat — properti kustom, variabel situs, bidang data tambahan, parameter skrip. Setiap teknisi dengan akses konsol dapat melihatnya. Setiap pelanggaran keamanan pada konsol RMM Anda membocorkan kredensial setiap klien.

Clavitor memindahkan kredensial keluar dari RMM. RMM hanya menyimpan token agen (satu per klien). Token memberikan akses bercakupan ke brankas klien tersebut. Pelanggaran keamanan pada konsol RMM Anda membocorkan token, bukan kredensial — dan setiap token dibatasi daftar putih IP pada endpoint tempat penerapannya.

### Dengan cakupan per klien

Setiap brankas klien memiliki token agen sendiri. Akses teknisi dikontrol oleh cakupan, bukan oleh "siapa yang dapat masuk ke konsol RMM."

### Diaudit per skrip

Setiap akses kredensial dicatat — skrip mana, endpoint mana, kredensial mana, kapan. Klien Anda dapat melihat jejak audit. Anda dapat membuktikan siapa yang mengakses apa.

### Dicabut dalam satu klik

Klien keluar? Cabut token agen mereka. Setiap endpoint berhenti mengambil kredensial segera. Tidak ada kata sandi untuk dirotasi, tidak ada properti kustom untuk dihapus di 200 mesin.

## Berhenti menyimpan kredensial di RMM Anda.

Satu CLI. Setiap klien. Setiap kredensial bercakupan, diaudit, dan dapat dicabut.
[Mulai gratis](https://clavitor.ai/id/checkout)
[Tinjauan pengembang →](https://clavitor.ai/id/developers)
