Applicazioni avanzate dei campi personalizzati in NinjaOne (prima parte)

An image of a man interacting with a window for the blog NinjaOne Custom Fields

 NinjaOne ha rilasciato la funzionalità del campo personalizzato nel 2021, aggiungendo un nuovo livello di flessibilità, personalizzazione e potenza di automazione alla nostra piattaforma. I campi personalizzati sono una funzione avanzata che richiede di essere impostata per essere utilizzata, ma quando inizierai a utilizzarla, scoprirai che la potenza e la flessibilità di questa funzione sono quasi illimitate.

Nella prima parte di questa guida, ti illustreremo due potenti situazioni di utilizzo dei campi personalizzati in NinjaOne, tra cui:

Una rapida panoramica dei campi personalizzati in NinjaOne

Ruoli dei campi personalizzati

I campi personalizzati di NinjaOne si dividono in due categorie: campi personalizzati globali, che si applicano a tutti i dispositivi indipendentemente dal loro tipo, e campi personalizzati role-based, che si applicano solo a tipi di dispositivi specifici. Un campo personalizzato globale può utilizzare una sorta di numero ID di risorsa universale, che potrai applicare a tutti i dispositivi. Per fare un esempio, potresti utilizzare campi personalizzati role-based per assegnare un proprietario di dispositivo alle workstation e ai portatili, ma non ai server.

Tipi di campi personalizzati

NinjaOne offre oltre venti tipi di campi personalizzati, da quelli testuali a quelli contenenti numeri interi, da quelli a tendina a quelli di mappatura dei dispositivi. Forniamo anche elementi di interfaccia utente per rendere i campi personalizzati più facili da usare.

Accesso

Ciascun campo personalizzato può essere adattato per l’accesso dei tecnici e degli script, consentendo in questo modo di controllare chi può accedere a quali dati.

Situazione d’uso numero 1: Monitorare praticamente tutto

Non appena si installa l’agente NinjaOne, vengono forniti centinaia di dati su ogni endpoint monitorato, dalle specifiche hardware al software installato, fino all’utilizzo della CPU. Tuttavia, i dati specifici e le esigenze di monitoraggio sono diversi per ogni azienda. I campi personalizzati di NinjaOne ti consentono di raccogliere, archiviare e monitorare quasi tutti i dati provenienti da un endpoint, permettendoti di avere le informazioni necessarie per prendere le tue decisioni. Alcuni esempi che abbiamo visto nei nostri partner:

  • Identificare e memorizzare il piano energetico corrente
  • Documentare gli account di amministratore locale esistenti
  • Ottenere un elenco di attività pianificate su un dispositivo
  • Monitoraggio della temperatura della CPU
  • Monitoraggio dello stato della batteria
Come fare

Vediamo un esempio di impostazione di un campo personalizzato e di uno script per monitorare lo stato della batteria. Per creare un monitoraggio personalizzato utilizzando i campi personalizzati, è necessario:

  1. Un campo personalizzato
  2. Uno script per raccogliere e memorizzare i dati
  3. Una condizione personalizzata per creare un alert
Configurazione del campo personalizzato

Il campo personalizzato verrà utilizzato per memorizzare i dati restituiti da uno script. 1)  Aggiungi un nuovo campo personalizzato. Poiché monitoreremo lo stato della batteria dei portatili, creeremo un campo personalizzato role-based.
2) Il passo successivo è la configurazione del campo personalizzato. Poiché vogliamo che questo campo venga scritto tramite uno script, imposteremo l’accesso del tecnico su ‘Sola lettura’ e l’accesso dello script su ‘Lettura/scrittura’.
Nota: se l’accesso per gli script non è impostato su “Scrittura” o “Lettura/Scrittura”, non sarai in grado di scrivere in questo campo con uno script.
3) Ora dobbiamo assegnare il campo personalizzato role-based a un Device Role. Quindi, spostati su “Ruoli” e seleziona il tipo o i tipi di ruolo a cui vuoi applicare questo campo. In questo caso, assegneremo questo campo personalizzato al ruolo Windows Laptop.

Configurazione del monitoraggio

Le condizioni in NinjaOne sono utilizzate per monitorare i cambiamenti di stato di un endpoint. NinjaOne include la possibilità di monitorare i campi personalizzati. In questo caso configureremo un monitoraggio per controllare gli stati di allarme o di degrado della batteria.

  1. Nella politicy scelta, vai su condizioni e clicca su “Aggiungi una condizione”
  2. Seleziona il tipo di condizione “Campi personalizzati”
  3. Alla voce “Il valore del campo personalizzato deve soddisfare qualsiasi condizione” seleziona “Aggiungi” e cerca “Stato della batteria”
  4. Imposta il selettore su ‘Contiene’ e aggiungere ‘Degradato’
  5. Ripeti le azioni descritte nei punti 3 e 4, ma invece di “Degradato” scegli “Warning”
  6. Imposta gravità, priorità, canale di notifica e impostazioni di ticketing in base alle tue preferenze e clicca su “Aggiungi”.

Condizione 1 - Quattro applicazioni avanzate dei campi personalizzati in NinjaOne
Se la condizione viene attivata, il risultato sarà simile a questo:

Creazione di uno script per estrarre i dati

Dobbiamo scrivere uno script che prelevi i dati dall’endpoint e li memorizzi nel nostro campo personalizzato. Modificheremo lo script che si trova qui (per vederlo è necessario aver effettuato l’accesso a Ninja).

$Battery = Get-CimInstance -ClassName win32_battery

Switch ($Battery.Availability) {
   1  { $Availability = "Other" ;break}
   2  { $Availability =  "Not using battery" ;break}
   3  { $Availability = "Running or Full Power";break}
   4  {$Availability =  "Warning" ;break}
   5  { $Availability = "In Test";break}
   6  { $Availability = "Not Applicable";break}
   7  { $Availability = "Power Off";break}
   8  { $Availability = "Off Line";break}
   9  { $Availability = "Off Duty";break}
   10  {$Availability =  "Degraded";break}
   11  {$Availability =  "Not Installed";break}
   12  {$Availability =  "Install Error";break}
   13  { $Availability = "Power Save - Unknown";break}
   14  { $Availability = "Power Save - Low Power Mode" ;break}
   15  { $Availability = "Power Save - Standby";break}
   16  { $Availability = "Power Cycle";break}
   17  { $Availability = "Power Save - Warning";break}
  }
    
$BatteryOutString = "Status: $($Battery.Status)", 
                    "Battery Name: $($Battery.name)", 
                    "Charge Remaining: $($Battery.EstimatedChargeRemaining)", 
                    "Estimated runtime: $($Battery.EstimatedRunTime)", 
                    "Availability: $Availability" 
                    | Format-Table | Out-String 

Ninja-Property-Set batteryState $BatteryOutString

Questo script estrae le informazioni sulla batteria e le formatta, quindi le scrive nel campo personalizzato ‘batteryStatus’. L’unica parte di questo script Powershell che riguarda in modo specifico Ninja è la riga finale:

Ninja-Property-Set batteryState $BatteryOutString

Ninja-Property-Set è il comando Powershell di NinjaOne per impostare un campo personalizzato su un valore specifico. La sintassi è:

Ninja-Property-Set fieldName Value

In questo caso, si imposta il campo batteryState sul valore memorizzato nella variabile $BatteryOutString. Aggiungere questo script a NinjaOne è facile.

  1. Vai su “Configurazione” -> “Scripting”
  2. clicca su “Aggiungi un nuovo script”
  3. Copia il codice qui sopra nell’IDE
    • Se il campo personalizzato non è denominato ‘batteryState’, aggiorna il nome del campo accanto a Ninja-Property-Set
  4. Imposta i parametri dello script su
    • Name: Set Battery Status
    • Language: PowerShell
    • Operating System: Windows
    • Architecture: Tutte
  5. Salva lo script
Mettere tutto insieme

Ora che abbiamo il campo personalizzato, la condizione e lo script, dobbiamo mettere tutto insieme per automatizzare il monitoraggio. Apri la policy a cui prima hai aggiunto la condizione come descritto in questa guida e vai su “Script pianificati”. Clicca su “Aggiungi uno script pianificato”. Clicca su “Aggiungi script” Seleziona lo script “Imposta stato batteria” creato in precedenza. Potrai eseguire questo script con la frequenza che ritieni necessaria. Per eseguire lo script su base oraria, seleziona “Ogni” dal menu a tendina “Pianificazione” e imposta “Si verifica ogni” su un’ora. Quindi premi Salva. Lo script set battery status ora estrarrà ogni ora i dati da tutti gli endpoint gestiti da questa policy e li scriverà nel nostro campo personalizzato. Se il valore restituito da uno di questi endpoint contiene “warning” o “degradato”, riceveremo un avviso per poter porre rimedio alla situazione. Questo stesso processo può essere utilizzato per monitorare quasi tutti i tipi di dati che possono essere estratti da un endpoint.

Situazione d’uso numero 2: Script di automazione avanzata

NinjaOne offre diversi modi per automatizzare le attività su tutti gli endpoint gestiti, da quelli più semplici a quelli più complessi. I quattro metodi principali per avviare le automazioni in NinjaOne sono:

  1. Script programmati: Automazioni che vengono eseguite regolarmente su tutti gli endpoint in una policy
  2. Condizioni di attivazione: Automazioni attivate da eventi, cambiamenti di stato o comportamento delle prestazioni di un endpoint
  3. Attività programmate: Automazioni che vengono eseguite regolarmente su tutti gli endpoint selezionati
  4. Script ad hoc: Automazioni eseguite manualmente su uno o più endpoint

Tutti questi metodi consentono di configurare una serie di script in base a una condizione time-based o event-based. Già così, questi metodi di automazione possono essere davvero potenti e generare valore, ma non sono particolarmente dinamici. Per automazioni più dinamiche, dobbiamo parlare di altri due concetti:

  • Condizioni sulla base del risultato di uno script
  • Campi personalizzati

Entrambe le funzioni di NinjaOne consentono di creare automazioni dinamiche concatenate in base ai risultati dell’implementazione di uno script iniziale. La differenza fondamentale è che le condizioni basate sui risultati degli script non memorizzano i valori per un’analisi successiva e possono attivarsi solo per un singolo risultato dello script.

Conteggio e alert sulla frequenza dei login falliti

La condizione integrata di NinjaOne legata a un ID evento di Windows consente di attivare un avviso, creare un ticket o attivare l’esecuzione di uno script ogni volta che viene rilevato uno specifico ID evento. È incredibilmente utile per rilevare eventi come la creazione di un account amministratore, le modifiche apportate al firewall di Windows o l’identificazione di un errore di Windows Server Backup, tutte situazioni in cui è possibile utilizzare singoli eventi. Quando abbiamo bisogno di un gran numero di eventi per rendere attivabile un alert, invece, abbiamo bisogno di campi personalizzati. Per esempio, è improbabile che sia necessario attivare un alert sulla base di un singolo login fallito. Dieci tentativi di login falliti nell’ultima ora, invece, potrebbero indicare che qualcosa non va. Creiamo quindi un’automazione che conti i login non riusciti nell’intervallo di un’ora e invii un alert se il conteggio supera la soglia di 10 accessi non riusciti.

Impostazione del campo personalizzato

Inizieremo creando un campo personalizzato per memorizzare i tentativi di login falliti. Per questo esempio, creeremo un campo personalizzato globale, in quanto verranno rilevati i login non riusciti in tutti i tipi di dispositivi.

  • Label di campo: Tentativi di login falliti
  • Nome campo: failedLoginAttempts
  • Tipo di campo: Numero intero
  • Script: Lettura / Scrittura

Crea il campo 1 - Quattro applicazioni avanzate dei campi personalizzati in NinjaOne
Imposteremo un secondo campo personalizzato per ottenere l’ID di sicurezza dell’ultimo tentativo di login.

  • Label di campo: Login all’account non riuscito Nome utente
  • Nome del campo: failedAccountLoginUserName
  • Tipo di campo: Testo
  • Script: Lettura / Scrittura
Scrivere lo script di monitoraggio

Successivamente, scriveremo uno script per rilevare i login falliti. L’operazione è abbastanza semplice: basta interrogare il registro degli eventi e contare il numero di tentativi di login falliti. Scriveremo quindi il valore restituito nel campo failedLoginAttempts. Restituiremo anche il nome dell’utente nel campo failedAccountLoginUserName.

$failedLogins = ((Get-EventLog -LogName Security -After (Get-Date).AddDays(-7) -InstanceID 4625) | Select @{Name="UserName";Expression={$_.ReplacementStrings[5]}} | Group-Object -Propert UserName).count

$Login = ((Get-EventLog -LogName Security -After (Get-Date).AddDays(-7) -InstanceID 4625) | Select @{Name="UserName";Expression={$_.ReplacementStrings[5]}} | Group-Object -Propert UserName).name Ninja-Property-Set failedLoginAttempts $failedLogins Ninja-Property-Set failedAccountLoginUserName $Login

Aggiungere questo script a NinjaOne è semplice.

  1. Vai su “Configurazione” -> “Scripting”
  2. clicca su “Aggiungi un nuovo script”
  3. Copia il codice qui sopra nell’IDE
    • Se il campo personalizzato non è denominato ‘failedLoginAttempts’, aggiorna il nome del campo accanto a Ninja-Property-Set
  4. Imposta i parametri dello script su
    • Name: Conteggio dei tentativi di login falliti
    • Language: PowerShell
    • Operating System: Windows
    • Architecture: Tutte
  5. Salva lo script

Successivamente, occorre impostare lo script in modo che venga eseguito periodicamente.

  1. Nella policy scelta, vai su Script pianificati e clicca su Aggiungi uno script pianificato
  2. Poi clicca su Aggiungi script e seleziona lo script Conteggio dei tentativi di login non falliti
  3. Assegna allo script un nome e una descrizione
  4. Imposta la pianificazione in modo che lo script venga eseguito ogni ora
Scrivi lo script di risoluzione

Se si rileva un volume elevato di tentativi di login falliti, è possibile porre rimedio al problema bloccando temporaneamente l’account.  Estrarremo l’utente dal campo failedAccountLoginUserName e lo disabiliteremo con Powershell.

$User = Ninja-Property-Get failedAccountLoginUserName

Disable-LocalUser -Name $User
Imposta la condizione
  1. Nella politicy scelta, vai su condizioni e clicca su “Aggiungi una condizione”
  2. Seleziona il tipo di condizione “Campi personalizzati”
  3. Alla voce ‘Il valore del campo personalizzato deve soddisfare qualsiasi condizione’ seleziona ‘Aggiungi’ e cerca ‘Tentativi di login falliti’, seleziona l’operatore ‘maggiore o uguale a’ e imposta il valore su 10.
  4. Clicca su “Applica”Condizione 2 - Quattro applicazioni avanzate dei campi personalizzati in NinjaOne
  5. Daremo alla condizione il nome “Numerosi tentativi di login falliti”
  6. Imposta la gravità, la priorità e gli intervalli di ripristino
  7. Decidi se vuoi che vengano create notifiche e ticket
  8. Clicca su “Aggiungi”
  9. Se vuoi automatizzare la disabilitazione dell’account locale dell’utente, puoi aggiungere lo script Disabilita utente locale come automazione a questa condizione

Condizione 3 - Quattro applicazioni avanzate dei campi personalizzati in NinjaOneContinua a leggere la seconda e la terza parte della serie qui sotto:

Perché NinjaOne?

Sei stanco di passare da un RMM all’altro e di rimanerne deluso? Prova tu stesso i campi personalizzati in Ninja e scopri perché NinjaOne è diverso. Inizia la tua prova gratuita.rmm prova gratuita

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.

Ti potrebbe interessare anche

Pronto a semplificare le parti più complesse dell'IT?
×

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.