Sie sind bereits NinjaOne-Kunde? Melden Sie sich an, um weitere Leitfäden und die neuesten Updates zu sehen.

Benutzerdefiniertes Skript: NinjaOne Agent entfernen (MacOS)

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

FAQ

Nächste Schritte