Vous êtes déjà client NinjaOne ? Connectez-vous pour consulter d'autres guides et les dernières nouvelles.

Script personnalisé : Suppression de NinjaOne Agent (MacOS)

Rubrique

Ce script supprime l'agent NinjaOne sur les machines Mac OS.

Environnement

Automatisation NinjaOne

Description

Collez le code suivant dans un fichier texte et enregistrez-le avec l'extension .sh , ou téléchargez le script shell joint à cet article.

#!/bin/bash
## Démarrer Ninja Agent et la suppression à distance
if [[ $EUID -ne 0 ]]; then
    Write-LogEntry "Ce script doit être exécuté en tant qu'administrateur. Essayez de l'exécuter avec sudo ou en tant qu'utilisateur système/root."
    exit 1
fi
LaunchDaemons=$(ls '/Bibliothèque/LaunchDaemons' | grep 'ninjarmm')
if [[ -z ${LaunchDaemons// /} ]]; then
    Write-LogEntry 'No Launch Daemons found'
else
    for Daemon in $LaunchDaemons; do
        Write-LogEntry "Suppression de $Daemon"
        if [[ $Daemon =~ 'ncstreamer' ]]; then
            Write-LogEntry 'Déchargement du démon Ninja Remote...'
            launchctl unload "$Daemon"
        fi
        rm -f "$Daemon"
    terminé
fi
LaunchAgents=$(ls '/Bibliothèque/LaunchAgents' | grep 'ninjarmm')
si [[ -z ${LaunchAgents// /} ]]; alors
    Write-LogEntry 'Aucun agent de lancement trouvé'
sinon
    pour Agent en $LaunchAgents ; faire
Écrire-EntréeJournal « Suppression de $Agent »
rm -f « $Agent »
Terminé
fi
NinjaDir=/Applications/NinjaRMMAgent
si [[ -d $NinjaDir ]] ; alors
Écrire-EntréeJournal « Suppression de $NinjaDir »
rm -rf $NinjaDir
fi
# Arrêter le processus Ninja en dernier pour l'empêcher de redémarrer
NinjaProcesses=($(pgrep ninjarmm))
if [[ ${#NinjaProcesses[@]} -gt 0 ]]; then
    for NP in "${NinjaProcesses[@]}"; do
        Write-LogEntry "Arrêt du processus NinjaRMM $NP"
        kill -9 "$NP"
    done
    CheckRemaining=$(pgrep ninjarmm)
    if [[ -z "$CheckRemaining" ]]; then
        Write-LogEntry "Tous les processus NinjaRMM ont été interrompus avec succès."
    else
        Write-LogEntry "Impossible d'interrompre tous les processus NinjaRMM, interruption en cours !"
        Write-LogEntry "Processus restants : $CheckRemaining"
    fi
fi
# Nettoyage Ninja Remote
NinjaRemoteProcess=($(pgrep ncstreamer))
if [[ ${#NinjaRemoteProcess[@]} -gt 0 ]]; then
    for NRP in "${NinjaRemoteProcess[@]}"; do
        Write-LogEntry "Arrêt du processus Ninja Remote $NRP"
        kill -9 "$NRP"
    done
    CheckRemaining=$(pgrep ncstreamer)
    if [[ -z "$CheckRemaining" ]]; then
        Write-LogEntry "Tous les processus Ninja Remote ont été arrêtés avec succès."
    else
        Write-LogEntry "Impossible d'arrêter tous les processus Ninja Remote. Assurez-vous qu'aucune session NR n'est active."
        Write-LogEntry "Processus restants : $CheckRemaining"
    fi
fi
SettingsPath='Bibliothèque/Préférences'
for UserPath in /Utilisateurs/*; do
    Utilisateur=$(basename "$UserPath")
    if [[ $Utilisateur != 'Partagé' ]]; then
        FullPath="/Utilisateurs/$Utilisateur/$SettingsPath"
        if [[ -d $FullPath ]]; then
            NRSettingsFiles=$(ls "$FullPath" | grep 'ninjarmm')
            if [[ ${NRSettingsFiles// /} ]]; then
                for NRFile in $NRSettingsFiles; do
                    Write-LogEntry "Suppression de $FullPath/$NRFile"
                    rm -f "$FullPath/$NRFile"
                done
            fi
        fi
    fi
terminé
NRPrinter='/Bibliothèque/Imprimantes/NinjaRemote'
if [[ -d "$NRPrinter" ]]; then
    Write-LogEntry "Suppression de l'imprimante Ninja Remote à $NRPrinter"
    rm -rf "$NRPrinter"
fi
NRPrinterBackend='/usr/libexec/cups/backend/nrprinter'
if [[ -f "$NRPrinterBackend" ]]; then
    Write-LogEntry "Suppression de l'imprimante Ninja Remote à $NRPrinterBackend"
    rm -f "$NRPrinterBackend"
fi
if lpstat -p "NinjaRemote" /dev/null 2&1; then
    Write-LogEntry 'Suppression de l'imprimante Ninja Remote depuis CUPS'
    lpadmin -x NinjaRemote
fi
NRPShared='/Users/Shared/NrPdfPrint'
if [[ -f $NRPShared ]]; then
    Write-LogEntry 'Suppression du fichier d'imprimante partagé'
    rm -f "$NRPShared"
fi
NRDir='/Applications/NinjaRemote'
if [[ -d $NRDir ]]; then
    Write-LogEntry 'Suppression du répertoire Ninja Remote'
    rm -rf "$NRDir"
fi

FAQ

Pour aller plus loin