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