MSP-Tools
Ihre RMM-Plattform führt bereits API-Aufrufe durch. Clavitor macht diese sicher.
Ihre Techniker verwenden Datto, N-able und ConnectWise täglich. Jedes Skript, jede Automatisierung, jede geplante Aufgabe benötigt Anmeldedaten. Heute befinden sie sich in Skriptvariablen, benutzerdefinierten Feldern oder einem gemeinsamen Tresor, den jeder einsehen kann. Der Clavitor-Proxy und die CLI ändern das, ohne Ihre Arbeitsabläufe zu verändern.
Das Proxymuster für RMM
Setzen Sie HTTPS_PROXY auf dem Endpunkt, und Ihre bestehenden Skripte funktionieren unverändert. Der Proxy fängt ausgehende HTTPS-Anfragen ab, löst clavitor://-Referenzen in Headern auf und injiziert die tatsächlichen Anmeldedaten. Ihr Skript sieht das Geheimnis nie. Ihre RMM-Konsole protokolliert es nie.
# 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 ist die tägliche Arbeitssprache des MSP. Sowohl die CLI als auch der Proxy funktionieren nativ.
CLI — Einzelwerte
# 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
Rendern — Konfigurationsvorlagen
# 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 — transparente Injektion
$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 ersetzt Platzhalter für benutzerdefinierte Felder zur Laufzeit in Skriptparametern unter Verwendung der Syntax {[Atera.<level>.CustomField.<name>]}. Übergeben Sie das Clavitor-Token als Parameter an ein einmaliges Installationsskript; spätere Skripte rufen die CLI auf dem Endpunkt auf.
Installation über IT-Automatisierungsprofil
Erstellen Sie in der Atera-Skriptbibliothek ein PowerShell-Skript Clavitor installieren mit einem Parameter. Rufen Sie im IT-Automatisierungsprofil, das es ausführt, den Platzhalter für das Feld auf Kundenebene auf:
Install-Clavitor.ps1 -Token "{[Atera.Customer.CustomField.ClavitorToken]}"Atera ersetzt den Wert, bevor der Agent seine Argumentliste liest. Das Skript:
param([Parameter(Mandatory)][string]$Token) $Token | clavitor-cli init Remove-Variable Token
Anmeldedaten zur Laufzeit auflösen
Sobald der Endpunkt registriert ist, liest jedes spätere Atera-Skript Anmeldedaten aus dem Tresor — Atera verwaltet nur den Token-Slot:
$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, secureConnectWise Automate
Automate ersetzt Extra Data Field (EDF)-Makros in Skriptschrittargumenten unter Verwendung der Syntax {%^el:FieldName^%} (EDF auf Computerebene). Die CLI wird über ein Automate-Skript installiert, das die Binärdatei herunterlädt und einen PowerShell-Schritt mit dem als Parameter übergebenen Token aufruft — der EDF-Wert wird ersetzt, bevor der Skriptschritt ausgeführt wird.
Automate-Skript: Installation
Erstellen Sie im Automate-Skripteditor das Skript mit zwei Schritten:
Step 1 File Download from LTShare clavitor-cli.exe → %windir%\Temp\
Step 2 Shell Execute (PowerShell) Install-Clavitor.ps1 -Token "{%^el:ClavitorToken^%}"Das Makro {%^el:ClavitorToken^%} wird durch den EDF-Wert auf Computerebene ersetzt, bevor der PowerShell-Schritt ausgeführt wird. Halten Sie Token unter 255 Zeichen, um innerhalb des Substitutionslimits von LabReplace zu bleiben. Das Skript selbst:
# Install-Clavitor.ps1 param([Parameter(Mandatory)][string]$Token) $Token | clavitor-cli init Remove-Variable Token
Automate-Skript: Domänenanmeldedaten rotieren
Nachfolgende Skripte lesen aus dem Tresor und schreiben einen Status zurück in das EDF für das Dashboarding:
$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, secureDatto RMM
Datto RMM stellt Site- und globale Variablen für PowerShell-Komponenten als Umgebungsvariablen mit dem Präfix $env: bereit; benutzerdefinierte Felder (UDFs) werden als $env:UDF_1 bis $env:UDF_30 bereitgestellt. Eine Komponente installiert die CLI; alles danach liest aus dem Tresor.
Komponente: Installation und Initialisierung
Definieren Sie eine Site-Variable ClavitorToken in der Datto-Konsole — sie wird innerhalb der Komponente als $env:ClavitorToken verfügbar:
# Datto RMM component: bootstrap Clavitor CLI # Site variable "ClavitorToken" → $env:ClavitorToken at runtime $env:ClavitorToken | clavitor-cli init
Komponente: API-Überwachung über den Proxy
Nachfolgende Komponenten schreiben clavitor://-Referenzen in Anforderungsheader — der Proxy löst sie auf dem Host auf. Die Anmeldedaten gelangen nie in den Speicher des Skripts oder die Protokolle von 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-NullKaseya VSA
VSA-Agentenprozeduren ersetzen #variable#-Makros zur Laufzeit in PowerShell-Argumenten und führen dann das Skript über die executePowershell-Schrittfamilie (executePowerShell64BitSystem usw.) aus. Ein benutzerdefiniertes Feld im Agentendatensatz enthält das Clavitor-Token; die Prozedur übergibt es zur Initialisierung über stdin.
Agentenprozedur: Installation
Fügen Sie ein benutzerdefiniertes Agentenfeld ClavitorToken hinzu (Audit → Profil bearbeiten → Benutzerdefinierte Felder) und erstellen Sie dann eine Prozedur mit zwei Schritten:
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#"Das Makro #vAgentConfiguration.ClavitorToken# wird durch den Wert des benutzerdefinierten Feldes ersetzt, bevor VSA den Befehl ausführt — das Token erscheint nicht in der Prozedurhistorie von VSA.
Agentenprozedur: Privilegierte Anmeldedaten rotieren
Nach der Initialisierung liest jede spätere Prozedur aus dem Tresor:
# 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
Die Automatisierungseinheit ist eine AMP (Automation Manager Policy) — eine PowerShell-basierte Richtlinie, die im Automation Manager erstellt wird. Benutzerdefinierte Eigenschaften auf Organisations-, Kunden- oder Site-Ebene können als Eingabeparameter an ein Run PowerShell Script-Objekt übergeben werden.
AMP: Installation mit benutzerdefinierter Eigenschaft als Eingabe
Fügen Sie eine benutzerdefinierte Eigenschaft ClavitorToken auf Kundenebene hinzu (Administration → Benutzerdefinierte Eigenschaften). Erstellen Sie im Automation Manager eine AMP, deren Run PowerShell Script-Objekt den Eingabeparameter Token an diese benutzerdefinierte Eigenschaft bindet. Das Skript:
param([Parameter(Mandatory)][string]$Token) $Token | clavitor-cli init Remove-Variable Token
Der Wert der benutzerdefinierten Eigenschaft wird als $Token übergeben. Er erscheint weder im exportierten XML der AMP noch im Auditprotokoll von N-central.
Skript-Repository: Anmeldedaten zur Laufzeit abrufen
Für Ad-hoc-Skripte, die über das Skript-Repository (Konfiguration → Repository → Skripte/Software) bereitgestellt werden, ist der Endpunkt bereits initialisiert — das Skript ruft einfach die CLI auf:
$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, secureN-able N-sight
N-sight (früher SolarWinds RMM) verwendet dieselbe Automation Manager-Engine wie N-central sowie einen Script Manager für .ps1, AMP, Batch- und andere Skripttypen. Das Muster entspricht N-central: AMP mit einem Eingabeparameter für das Token, danach wird alles weitere zur Laufzeit aufgelöst.
Script Manager: Installation über automatisierte Aufgabe
Laden Sie ein Install-Clavitor.ps1 unter Einstellungen → Script Manager mit einem Parameter für das Token hoch. Hängen Sie es als automatisierte Aufgabe auf dem Endpunkt an; übergeben Sie das Token als Skriptargument aus der gerätebezogenen Einstellung:
param([Parameter(Mandatory)][string]$Token) $Token | clavitor-cli init Remove-Variable Token
Automatisierte Aufgabe: geplantes Backup mit Tresoranmeldedaten
Nach der Initialisierung beziehen geplante Aufgaben Anmeldedaten aus dem Tresor. Jede Standardausgabe bis zu 255 Zeichen wird an das N-sight-Dashboard zurückgemeldet:
$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, secureNinjaOne
NinjaOne-Skripte, die auf dem Endpunkt ausgeführt werden, können benutzerdefinierte Felder über integrierte Cmdlets lesen und schreiben: Ninja-Property-Get <name> gibt den Wert zurück, Ninja-Property-Set <name> <value> schreibt ihn zurück. Speichern Sie das Clavitor-Token in einem organisationsweiten benutzerdefinierten Feld (Typ Sicher, damit es von der Konsole aus nur beschreibbar ist); das Installationsskript liest es einmalig.
Installationsskript: Token aus benutzerdefiniertem Feld lesen
Fügen Sie unter Administration → Bibliothek → Benutzerdefinierte Felder ein organisationsweites Feld clavitorToken vom Typ Secure hinzu. Führen Sie dann ein Installationsskript aus:
$token = Ninja-Property-Get clavitorToken $token | clavitor-cli init Remove-Variable token
Benutzerdefinierte Aktion: API-Aufruf über den Proxy
Nach der Installation rufen Automatisierungen externe APIs über den Proxy auf — die Anmeldedaten werden nie in eine Skriptvariable kopiert:
$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.statusSyncro
Syncro stellt benutzerdefinierte Asset-Felder und Tags als Plattform-Skriptvariablen unter Verwendung der doppelten Klammersyntax {{asset_custom_field_<name>}} bereit. Definieren Sie eine Skriptvariable vom Typ Plattform und binden Sie sie an das Feld — Syncro ersetzt den Wert zur Skriptausführungszeit in einen PowerShell-Parameter.
Syncro-Skript: Installation
Erstellen Sie ein benutzerdefiniertes Asset-Feld clavitor_token. Deklarieren Sie im Skripteditor eine Variable Token vom Typ Plattform, die an {{asset_custom_field_clavitor_token}} gebunden ist; übergeben Sie sie an einen PowerShell-Parameter im Skriptrumpf:
param([Parameter(Mandatory)][string]$Token) $Token | clavitor-cli init Remove-Variable Token
Das Quick Help-Panel am unteren Rand jedes Syncro-Skripteditors listet alle verfügbaren Plattformvariablen für den Asset-, Kunden- und Ticketkontext auf.
Syncro-Skript: VPN mit Tresoranmeldedaten verbinden
Nach der Installation lösen Skripte und automatisierte Korrekturen Anmeldedaten aus dem Tresor auf und verwenden sie direkt:
$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
Warum das für MSPs wichtig ist
Jede RMM-Plattform speichert Anmeldedaten irgendwo — benutzerdefinierte Eigenschaften, Site-Variablen, zusätzliche Datenfelder, Skriptparameter. Jeder Techniker mit Konsolenzugriff kann sie einsehen. Jeder Einbruch in Ihre RMM-Konsole legt die Anmeldedaten jedes Kunden offen.
Clavitor verschiebt die Anmeldedaten aus dem RMM heraus. Das RMM speichert nur den Agenten-Token (einen pro Kunde). Der Token gewährt bereichsbegrenzten Zugriff auf den Tresor dieses Kunden. Ein Einbruch in Ihre RMM-Konsole legt Token offen, keine Anmeldedaten — und jeder Token ist per IP-Whitelist auf den Endpunkt beschränkt, auf dem er bereitgestellt wurde.
Pro Kunde eingegrenzt
Jeder Kundentresor hat seinen eigenen Agenten-Token. Der Technikerzugriff wird durch den Geltungsbereich gesteuert, nicht dadurch, wer sich bei der RMM-Konsole anmelden kann.
Pro Skript auditiert
Jeder Zugriff auf Anmeldedaten wird protokolliert — welches Skript, welcher Endpunkt, welche Anmeldedaten, wann. Ihre Kunden können den Auditpfad einsehen. Sie können nachweisen, wer auf was zugegriffen hat.
Mit einem Klick widerrufbar
Kunde verlässt das Unternehmen? Widerrufen Sie seinen Agenten-Token. Jeder Endpunkt stellt die Auflösung von Anmeldedaten sofort ein. Keine Passwörter zu rotieren, keine benutzerdefinierten Eigenschaften auf 200 Maschinen zu bereinigen.
Hören Sie auf, Anmeldedaten in Ihrem RMM zu speichern.
Eine CLI. Jeder Kunde. Jede Anmeldedaten eingegrenzt, auditiert und widerrufbar.