Guida completa allo script: Automatizzare la creazione di URL e la configurazione di ScreenConnect su Linux

Punti chiave

  • Lautomazione aumenta l’efficienza: Lo script per automatizzare la configurazione di ScreenConnect su Linux identifica e segnala potenziali conflitti di URL in ambienti con più istanze di ScreenConnect. automatizza il recupero e l’organizzazione degli URL delle sessioni ScreenConnect, migliorando notevolmente l’efficienza nella gestione del supporto remoto.
  • Personalizzabile per vari ambienti: La flessibilità nell’impostazione di parametri come l’ID dell’istanza e il dominio si adatta a diverse configurazioni di ScreenConnect.
  • Riduce il lavoro manuale e gli errori: L’automatizzazione della generazione degli URL riduce al minimo l’inserimento manuale, minimizzando la probabilità di errori e permettendo di risparmiare tempo.
  • Consapevolezza delle istanze multiple: Lo script per automatizzare la configurazione di ScreenConnect su Linux identifica e segnala potenziali conflitti di URL in ambienti con più istanze di ScreenConnect.
  • La sicurezza è fondamentale: Sebbene lo script per automatizzare la configurazione di ScreenConnect su Linux sia efficiente, è fondamentale mantenere le best practice di sicurezza nell’ambiente in cui viene utilizzato.
  • Potenziale di integrazione con NinjaOne: L’integrazione di script come questo per automatizzare la configurazione di ScreenConnect su Linux in piattaforme come NinjaOne può semplificare notevolmente i processi di gestione remota.

L’automazione nella gestione dell’IT è un fattore decisivo, in quanto snellisce i processi migliorando l’efficienza. Un esempio lampante sono gli script che semplificano compiti complessi. In questo contesto, approfondiamo uno script progettato per l’applicazione ConnectWise ScreenConnect sui sistemi Linux. Il suo ruolo nella gestione efficiente delle sessioni di assistenza remota lo rende una risorsa preziosa per i professionisti IT e i fornitori di servizi gestiti (MSP). 

Background

ConnectWise ScreenConnect è uno strumento di assistenza remota molto utilizzato dai team IT e dagli MSP per la sua affidabilità e facilità d’uso. Questo script per automatizzare la configurazione di ScreenConnect su Linux risponde in particolare all’esigenza di recuperare automaticamente gli URL di lancio di ScreenConnect e di memorizzarli in un campo personalizzato. È stato pensato per ambienti in cui è fondamentale un accesso rapido e organizzato a più sessioni remote.

Lo script per automatizzare la configurazione di ScreenConnect su Linux:

#!/usr/bin/env bash
#
# Description: Retrieves the ConnectWise ScreenConnect launch URL and saves it to a custom field (defaults to screenconnectURL). Requires the domain used for ScreenConnect and a Session Group the machine is a part of to successfully build the URL.
# By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/it/condizioni-utilizzo
# Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. 
# Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. 
# Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. 
# Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. 
# Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. 
# Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. 
# EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).
#
# Preset Parameter: --instanceId "ReplaceMeWithYourInstanceId"
#   The Instance ID for your instance of ScreenConnect. Used to differentiate between multiple installed ScreenConnect instances.
#   To get the instance ID, you can see it in the program name, e.g., connectwisecontrol-yourinstanceidhere.
#   It's also available in the ScreenConnect Admin Center (Administration > Advanced > Server Information).
#
# Preset Parameter: --screenconnectDomain "replace.me"
#   The domain used for your ScreenConnect instance.
#
# Preset Parameter: --sessionGroup "ReplaceMe"
#   A session group that contains all your machines (defaults to All Machines).
#
# Preset Parameter: --customField "ReplaceMeWithAnyMultilineCustomField"
#   The custom field you would like to store this information in.
#
# Preset Parameter: --help
#   Displays some help text.


# These are all our preset parameter defaults. You can set these = to something if you would prefer the script defaults to a certain parameter value.
_arg_instanceId=
_arg_screenconnectdomain=
_arg_sessiongroup="All Machines"
_arg_customfield="screenconnectURL"
_fieldValue=

# Help text function for when invalid input is encountered
print_help() {
    printf '\n\n%s\n\n' 'Usage: [--instanceId|-i <arg>] [--screenconnectDomain|-d <arg>] [--sessionGroup|-g <arg>] [--customField|-c <arg>] [--help|-h]'
    printf '%s\n' 'Preset Parameter: --instanceid "ReplaceWithYourInstanceID"'
    printf '\t%s\n' "Replace the text encased in quotes with your instance id. You can see the instance id in the ScreenConnect Admin Center (Administration > Advanced > Server Information). It's also usually present in the application name on already installed instance. e.g., connectwisecontrol-yourinstanceid."
    printf '\n%s\n' 'Preset Parameter: --screenconnectDomain "replace.me"'
    printf '\t%s' "Replace the text encased in quotes with the domain used for ConnectWise ScreenConnect. e.g. 'example.screenconnect.com'"
    printf '\n%s\n' 'Preset Parameter: --sessionGroup "Replace Me"'
    printf '\t%s' "Replace the text encased in quotes with the name of a Session Group that contains all of your machines e.g., 'All Machines'"
    printf '\n%s\n' 'Preset Parameter: --customField "replaceMe"'
    printf '\t%s' "Replace the text encased in quotes with the name of a custom field you'd like to store this information to (defaults to screenconnectUrl). E.g. 'screenconnectUrl'"
    printf '\n%s\n' 'Preset Parameter: --help'
    printf '\t%s\n' "Displays this help menu."
}

# Determines whether or not help text is necessary and routes the output to stderr
die() {
    local _ret="${2:-1}"
    echo "$1" >&2
    test "${_PRINT_HELP:-no}" = yes && print_help >&2
    exit "${_ret}"
}

# Grabbing the parameters and parsing through them.
parse_commandline() {
    while test $# -gt 0; do
        _key="$1"
        case "$_key" in
        --screenconnectdomain | --screenconnectDomain | --domain | -d)
            test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1
            _arg_screenconnectdomain=$2
            shift
            ;;
        --screenconnectdomain=*)
            _arg_screenconnectdomain="${_key##--screenconnectdomain=}"
            ;;
        --instanceId | --instanceid | -i)
            test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1
            _arg_instanceId=$2
            shift
            ;;
        --instanceid=*)
            _arg_instanceId="${_key##--instanceid=}"
            ;;
        --sessionGroup | --sessiongroup | -g)
            test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1
            _arg_sessiongroup=$2
            shift
            ;;
        --sessiongroup=*)
            _arg_sessiongroup="${_key##--sessiongroup=}"
            ;;
        --customField | --customfield | -c)
            test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1
            _arg_customfield=$2
            shift
            ;;
        --customfield=*)
            _arg_customfield="${_key##--customfield=}"
            ;;
        --help | -h)
            _PRINT_HELP=yes die 0
            ;;
        *)
            _PRINT_HELP=yes die "FATAL ERROR: Got an unexpected argument '$1'" 1
            ;;
        esac
        shift
    done
}

# Function to set a custom field
setCustomField() {
    echo "$_fieldValue" | /opt/NinjaRMMAgent/programdata/ninjarmm-cli set --stdin "$_arg_customfield"
}

export PATH=$PATH:/usr/sbin:/usr/bin

parse_commandline "$@"

# If script form is used, override command-line arguments
if [[ -n $screenconnectDomain ]]; then
    _arg_screenconnectdomain="$screenconnectDomain"
fi

if [[ -n $sessionGroup ]]; then
    _arg_sessiongroup="$sessionGroup"
fi

if [[ -n $instanceId ]]; then
    _arg_instanceId="$instanceId"
fi

if [[ -n $customFieldName ]]; then
    _arg_customfield="$customFieldName"
fi

# If we weren't given an instance id we should warn that this is not advised.
if [[ -z $_arg_instanceId ]]; then
    echo "WARNING: Without the instance id we will be unable to tell which ScreenConnect instance is yours (if multiple are installed). This could result in the wrong URL being displayed."
    echo "To get the instance id you can find it in ScreenConnect itself (Admin > Advanced > Server Information > Instance Identifier Fingerprint). It's also in the application name on every installed copy 'connectwisecontrol-yourinstanceidhere'"
fi

# --screenconnectDomain and --sessionGroup are required. We should also escape the session group given.
if [[ -z $_arg_screenconnectdomain || -z $_arg_sessiongroup ]]; then
    _PRINT_HELP=yes die "FATAL ERROR: Unable to build the URL without the Domain and Session Group!" 1
else
    _arg_sessiongroup=$(python3 -c "import urllib.parse;print(urllib.parse.quote('$_arg_sessiongroup'))")
fi

# Double check ScreenConnect is installed
installedPkg=$(ls /opt | grep "connectwisecontrol-$_arg_instanceId")
if [[ -z $installedPkg ]]; then
    _PRINT_HELP=no die "FATAL ERROR: It appears ConnectWise ScreenConnect is not installed!" 1
fi

# Lets start building some urls
for pkg in $installedPkg; do
    file="/opt/$pkg/ClientLaunchParameters.txt"
    id=$(grep -Eo 's=.{8}-.{4}-.{4}-.{4}-.{12}' "$file" | sed 's/s=//g' | sed 's/&e=Access//g')
    instanceid=${pkg//"connectwisecontrol-"/}
    # We shouldn't have multiple results but if we do we should warn the technician
    if [[ -n "$launchurls" ]]; then
        echo "WARNING: Multiple installed instances detected and no instance id was given. One of these urls will be incorrect."
        launchurls=$(
            printf '%s\n' "$launchurls"
            printf '%s\t' "$instanceid"
            printf '%s\n' "https://$_arg_screenconnectdomain/Host#Access/$_arg_sessiongroup//$id/Join"
        )
    else
        launchurls=$(
            printf '%s\t\t' "InstanceID"
            printf '%s\n' "LaunchURL"
            printf '%s\t' "$instanceid"
            printf '%s\t' "https://$_arg_screenconnectdomain/Host#Access/$_arg_sessiongroup//$id/Join"
        )
    fi
done

# Check that we were successful
if [[ -n $launchurls ]]; then
    echo "Launch URL(s) Created"
else
    _PRINT_HELP=no die "FATAL ERROR: Failed to create Launch URL(s)!" 1
fi

# Change how we output the results based on how many urls we received.
if [[ $(echo "$launchurls" | wc -l) -gt 2 ]]; then
    _fieldValue="$launchurls"
    echo "$_fieldValue"
else
    _fieldValue=$(echo "$launchurls" | tail -n 1 | awk '{print $2}')
    echo "$_fieldValue"
fi

echo "Setting Custom Field..."
setCustomField
exit 0

 

Accedi a oltre 700 script nel Dojo NinjaOne

Ottieni l’accesso

Analisi dettagliata dello script per automatizzare la configurazione di ScreenConnect su Linux

Lo script per automatizzare la configurazione di ScreenConnect su Linux inizia definendo i valori predefiniti per vari parametri come l’ID dell’istanza, il dominio, il gruppo di sessione e il campo personalizzato. Questi parametri sono fondamentali perché orientano il modo in cui lo script per automatizzare la configurazione di ScreenConnect su Linux interagirà con l’ambiente ScreenConnect. La funzione parse_commandline interpreta gli argomenti della riga di comando, consentendo agli utenti di specificare i dettagli di ScreenConnect.

In particolare, lo script per automatizzare la configurazione di ScreenConnect su Linux verifica la presenza del pacchetto ScreenConnect nel sistema. Se assente, interrompe l’esecuzione, assicurando un processo affidabile. Quindi costruisce l’URL necessario per avviare una sessione ScreenConnect in base ai parametri forniti. Questa fase è fondamentale perché traduce i dati inseriti dagli utenti in URL utilizzabili.

In caso di istanze multiple di ScreenConnect, lo script per automatizzare la configurazione di ScreenConnect su Linux segnala in modo intelligente i potenziali conflitti di URL. Questa funzione migliora la consapevolezza dell’utente, riducendo gli errori in ambienti con più istanze.

Infine, lo script per automatizzare la configurazione di ScreenConnect su Linux visualizza gli URL costruiti o li salva nel campo personalizzato specificato, per facilitarne l’accesso in futuro.

Casi d’uso potenziali

Immagina un MSP responsabile della gestione dell’infrastruttura IT in diverse sedi di clienti. Utilizza ScreenConnect per il supporto remoto, ma ha difficoltà a gestire più URL di sessione. Implementando questo script per automatizzare la configurazione di ScreenConnect su Linux, può generare e memorizzare rapidamente questi URL, consentendo tempi di risposta più rapidi e un’assistenza remota più organizzata.

Confronti

I metodi tradizionali di gestione delle sessioni ScreenConnect prevedono spesso il recupero e l’organizzazione manuale degli URL, che richiede molto tempo ed è soggetta a errori. Questo script automatizza il processo, apportando efficienza e precisione. Si contrappone ai metodi manuali offrendo un approccio sistematico che riduce la probabilità di errori e fa risparmiare tempo prezioso.

Domande frequenti

  • Lo script per automatizzare la configurazione di ScreenConnect su Linux è personalizzabile per diversi ambienti?
    • Sì, lo script per automatizzare la configurazione di ScreenConnect su Linux identifica e segnala potenziali conflitti di URL in ambienti con più istanze di ScreenConnect.consente parametri personalizzati, ad esempio ID, dominio ecc., ed è quindi adattabile a diverse configurazioni.
  • Può gestire più istanze di ScreenConnect?
    • Lo script per automatizzare la configurazione di ScreenConnect su Linux identifica e segnala potenziali conflitti di URL in ambienti con più istanze di ScreenConnect. segnala i potenziali conflitti di URL nelle configurazioni a più istanze, consentendo una verifica manuale.
  • È sicuro utilizzare questo script per automatizzare la configurazione di ScreenConnect su Linux?
    • Lo script per automatizzare la configurazione di ScreenConnect su Linux in sé non compromette la sicurezza, ma accertati che l’ambiente in cui viene eseguito sia sicuro.

Implicazioni

Sebbene lo script per automatizzare la configurazione di ScreenConnect su Linux semplifichi la gestione degli URL, gli utenti devono essere consapevoli delle implicazioni per la sicurezza. Garantire che gli URL siano memorizzati e accessibili in modo sicuro è fondamentale per prevenire l’accesso non autorizzato alle sessioni remote.

Raccomandazioni

  • Verifica sempre i parametri prima dell’esecuzione.
  • Aggiorna regolarmente lo script per automatizzare la configurazione di ScreenConnect su Linux e ScreenConnect stesso alle versioni più recenti.
  • Implementa le best practice di sicurezza nel tuo ambiente per salvaguardare gli URL di sessione remota.

Considerazioni finali

L’integrazione di script come quello per automatizzare la configurazione di ScreenConnect su Linux nella piattaforma NinjaOne può aumentarne in modo significativo l’efficienza. Automatizzando attività come il recupero degli URL per le sessioni remote, gli utenti di NinjaOne possono concentrarsi maggiormente sulle attività strategiche di gestione IT, in modo che la piattaforma sia uno strumento ancora più potente nell’arsenale dei professionisti IT e degli MSP.

Passi successivi

La creazione di un team IT efficiente ed efficace richiede una soluzione centralizzata che funga da principale strumento per la fornitura di servizi. NinjaOne consente ai team IT di monitorare, gestire, proteggere e supportare tutti i dispositivi, ovunque essi si trovino, senza la necessità di una complessa infrastruttura locale.

Per saperne di più su NinjaOne Endpoint Management, fai un tour dal vivo, o inizia la tua prova gratuita della piattaforma NinjaOne.

Categorie:

Ti potrebbe interessare anche

Guarda una demo×
×

Guarda NinjaOne in azione!

Inviando questo modulo, accetto La politica sulla privacy di NinjaOne.

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.