Thema
Dieses Skript entfernt den NinjaOne Agent auf Mac OS-Rechnern.
Umgebung
NinjaOne-Automatisierung
Beschreibung
Fügen Sie den folgenden Code in eine Textdatei ein und speichern Sie diese mit der Erweiterung .sh oder laden Sie das diesem Artikel angehängte Shell-Skript herunter.
#!/bin/bash
## Ninja Agent und Remote-Entfernung starten
if [[ $EUID -ne 0 ]]; then
Write-LogEntry "Dieses Skript muss als Root ausgeführt werden. Versuchen Sie, es mit sudo oder als System-/Root-Benutzer auszuführen."
exit 1
fi
LaunchDaemons=$(ls '/Library/LaunchDaemons' | grep 'ninjarmm')
if [[ -z ${LaunchDaemons// /} ]]; then
Write-LogEntry 'No Launch Daemons found'
else
for Daemon in $LaunchDaemons; do
Write-LogEntry "Removing $Daemon"
if [[ $Daemon =~ 'ncstreamer' ]]; then
Write-LogEntry 'Unloading Ninja Remote daemon...'
launchctl unload "$Daemon"
fi
rm -f "$Daemon"
done
fi
LaunchAgents=$(ls '/Library/LaunchAgents' | grep 'ninjarmm')
if [[ -z ${LaunchAgents// /} ]]; then
Write-LogEntry 'No Launch Agents found'
else
für Agent in $LaunchAgents; tun
Write-LogEntry "Entfernen von $Agent"
rm -f "$Agent"
Fertig
fi
NinjaDir=/Applications/NinjaRMMAgent
wenn [[ -d $NinjaDir ]]; dann
Write-LogEntry "Entfernen von $NinjaDir"
rm -rf $NinjaDir
fi
# Ninja-Prozess zuletzt beenden, um einen Neustart zu verhindern
NinjaProcesses=($(pgrep ninjarmm))
if [[ ${#NinjaProcesses[@]} -gt 0 ]]; then
for NP in "${NinjaProcesses[@]}"; do
Write-LogEntry "Killing NinjaRMM process $NP"
kill -9 "$NP"
done
CheckRemaining=$(pgrep ninjarmm)
if [[ -z "$CheckRemaining" ]]; then
Write-LogEntry "Alle NinjaRMM-Prozesse wurden erfolgreich beendet."
else
Write-LogEntry "Nicht alle NinjaRMM-Prozesse konnten beendet werden, Abbruch!"
Write-LogEntry "Verbleibende Prozesse: $CheckRemaining"
fi
fi
# Ninja Remote Cleanup
NinjaRemoteProcess=($(pgrep ncstreamer))
if [[ ${#NinjaRemoteProcess[@]} -gt 0 ]]; then
for NRP in "${NinjaRemoteProcess[@]}"; do
Write-LogEntry "Killing Ninja Remote process $NRP"
kill -9 "$NRP"
done
CheckRemaining=$(pgrep ncstreamer)
if [[ -z "$CheckRemaining" ]]; then
Write-LogEntry "Alle Ninja Remote-Prozesse wurden erfolgreich beendet."
else
Write-LogEntry "Nicht alle Ninja Remote-Prozesse konnten beendet werden. Stellen Sie sicher, dass keine aktiven NR-Sitzungen vorhanden sind."
Write-LogEntry "Verbleibende Prozesse: $CheckRemaining"
fi
fi
SettingsPath='Bibliothek/Präferenzen'
für UserPath in /Users/*; do
User=$(basename "$UserPath")
if [[ $User != 'Gemeinsame' ]]; then
FullPath="/Users/$User/$SettingsPath"
if [[ -d $FullPath ]]; then
NRSettingsFiles=$(ls "$FullPath" | grep 'ninjarmm')
if [[ ${NRSettingsFiles// /} ]]; then
for NRFile in $NRSettingsFiles; do
Write-LogEntry "Entfernen von $FullPath/$NRFile"
rm -f "$FullPath/$NRFile"
done
fi
fi
fi
done
NRPrinter='/Library/Printers/NinjaRemote'
if [[ -d "$NRPrinter" ]]; then
Write-LogEntry "Entfernen des Ninja Remote-Druckers bei $NRPrinter"
rm -rf "$NRPrinter"
fi
NRPrinterBackend='/usr/libexec/cups/backend/nrprinter'
if [[ -f "$NRPrinterBackend" ]]; then
Write-LogEntry "Entfernen des Ninja Remote-Druckers bei $NRPrinterBackend"
rm -f "$NRPrinterBackend"
fi
if lpstat -p "NinjaRemote" /dev/null 2&1; then
Write-LogEntry 'Entfernen des Ninja Remote-Druckers von CUPS'
lpadmin -x NinjaRemote
fi
NRPShared='/Users/Shared/NrPdfPrint'
if [[ -f $NRPShared ]]; then
Write-LogEntry 'Removing shared printer file'
rm -f "$NRPShared"
fi
NRDir='/Applications/NinjaRemote'
if [[ -d $NRDir ]]; then
Write-LogEntry 'Removing Ninja Remote directory'
rm -rf "$NRDir"
fi