Script PowerShell per rilevare dispositivi USB: Uno strumento essenziale per i professionisti IT

Punti chiave

  • Monitoraggio dei dispositivi USB: Lo script per rilevare dispositivi USB è fondamentale anche per avvisare i professionisti IT delle connessioni a essi.
  • Miglioramento della sicurezza: Aiuta a prevenire l’accesso e il trasferimento non autorizzato di dati attraverso le unità USB.
  • Avvisi personalizzabili: Offre flessibilità con la registrazione opzionale di campi personalizzati per avvisi e registrazioni su misura.
  • Compatibilità con le versioni precedenti: Funziona con PowerShell 5 e versioni successive, garantendo un’ampia compatibilità con i sistemi Windows.
  • Avvisi in tempo reale: Fornisce notifiche immediate al momento della connessione USB, consentendo risposte rapide in termini di sicurezza.
  • Dipendenza ridotta al minimo: Elimina la necessità di software di monitoraggio di terze parti, integrandosi direttamente nelle operazioni di sistema.
  • Raccolta dati: Raccoglie informazioni complete sui dispositivi USB collegati, contribuendo all’analisi della sicurezza e al processo decisionale.
  • Semplice ma efficace: Lo script per rilevare dispositivi USB è semplice nel suo approccio, ma potente nelle sue applicazioni per la sicurezza informatica.
  • Integrazione con gli strumenti di gestione: Può essere perfettamente integrato con framework di gestione come NinjaOne per migliorare le operazioni IT.
  • Essenziale per l’infrastruttura IT: Uno strumento fondamentale nell’arsenale dei professionisti IT e degli MSP per mantenere la sicurezza e l’integrità della rete.

Background

I dispositivi USB sono onnipresenti, comodi e, purtroppo, anche vettori comune per le minacce alla sicurezza. Per i professionisti IT e gli MSP, il monitoraggio delle connessioni dei dispositivi USB è fondamentale per prevenire l’accesso ai dati o il trasferimento non autorizzato degli stessi. Questo script PowerShell per rilevare dispositivi USB è stato progettato per questo scopo. Avverte gli amministratori quando un’unità USB viene collegata a un sistema e, in modo opzionale, registra l’evento, migliorando la sicurezza e la sorveglianza negli ambienti di rete.

Lo script per rilevare dispositivi USB:

<#
.SYNOPSIS
    Alerts when a USB drive is detected and optionally saves the results to a Custom Field.
.DESCRIPTION
    Alerts when a USB drive is detected and optionally saves the results to a Custom Field.
.EXAMPLE
    (No Parameters)
    
    No USB Drives are present.
.EXAMPLE
    (No Parameters)

    C:\Users\KyleBohlander\Documents\bitbucket_clientscripts\client_scripts\src\Test-USBDrive.ps1 : A USB Drive has been detected!
    At line:1 char:1
    + .\src\Test-USBDrive.ps1
    + ~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : LimitsExceeded: (:) [Write-Error], Exception
        + FullyQualifiedErrorId : System.Exception,Test-USBDrive.ps1

    Index Caption                        SerialNumber     Partitions
    ----- -------                        ------------     ----------
        1 Samsung Flash Drive USB Device AA00000000000489          1

PARAMETER: -CustomFieldName "replaceMeWithACustomFieldName"
    Name of a custom field to save the results to. This is optional; results will also output to the activity log.

.OUTPUTS
    None
.NOTES
    Minimum supported OS: Windows 10, Server 2012 R2
    Release Notes: Initial Release
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).
#>

[CmdletBinding()]
param (
    [Parameter()]
    [String]$CustomFieldName
)

begin {
    # Grab CustomFieldName from dynamic script form
    if ($env:customFieldName -and $env:customFieldName -notlike "null") { $CustomFieldName = $env:customFieldName }

    # Initialize exit code
    $ExitCode = 0

    # Initialize generic list for the report
    $Report = New-Object System.Collections.Generic.List[String]
    $CustomFieldReport = New-Object System.Collections.Generic.List[String]
}
process {

    # Get a list of USB drives
    $USBDrives = if ($PSVersionTable.PSVersion.Major -ge 5) {
        Get-CimInstance win32_diskdrive | Where-Object { $_.InterfaceType -eq 'USB' }
    }
    else {
        Get-WmiObject win32_diskdrive | Where-Object { $_.InterfaceType -eq 'USB' }
    }

    # Alert if a USB drive is detected
    if ($USBDrives) {
        Write-Error -Message "A USB Drive has been detected!" -Category LimitsExceeded -Exception (New-Object -TypeName System.Exception)

        # Grab relevant information about the USB Drive
        $USBDrives | ForEach-Object {
            $Report.Add( ($_ | Format-Table Index, Caption, SerialNumber, Partitions | Out-String) )
            if ($CustomFieldName) { $CustomFieldReport.Add( ($_ | Format-List Index, Caption, SerialNumber, Partitions | Out-String) ) }

            $Report.Add( (Get-Partition -DiskNumber $_.Index | Get-Volume | Format-Table DriveLetter, FriendlyName, DriveType, HealthStatus, SizeRemaining, Size | Out-String) )
            if ($CustomFieldName) { $CustomFieldReport.Add( (Get-Partition -DiskNumber $_.Index | Get-Volume | Format-List DriveLetter, FriendlyName, DriveType, HealthStatus, SizeRemaining, Size | Out-String) ) }
        }

        # Change exit code to indicate failure/alert
        $ExitCode = 1
    }
    else {
        # If no drives were found we'll need to indicate that.
        $Report.Add("No USB Drives are present.")
        if ($CustomFieldName) { $CustomFieldReport.Add("No USB Drives are present.") }
    }

    # Write to the activity log
    Write-Host $Report

    # Save to custom field if given one
    if ($CustomFieldName) {
        Write-Host ""
        Ninja-Property-Set -Name $CustomFieldName -Value $CustomFieldReport
    }

    # Exit with appropriate exit code
    Exit $ExitCode
}
end {
    
    
    
}

 

Accedi a oltre 700 script nel Dojo NinjaOne

Ottieni l’accesso

Analisi dettagliata

Lo script per rilevare dispositivi USB opera in tre fasi: Inizializzazione, elaborazione e terminazione.

  • Inizializzazione: Inizia controllando se è stato fornito un nome di campo personalizzato attraverso la variabile d’ambiente $env:customFieldName. Questo nome di campo personalizzato viene utilizzato a fini di logging. Lo script inizializza due elenchi, $Report e $CustomFieldReport, per memorizzare le informazioni sulle unità USB rilevate.
  • Elaborazione: Lo script per rilevare dispositivi USB utilizza Get-CimInstance o Get-WmiObject (a seconda della versione di PowerShell) per elencare le unità USB collegate al sistema. Se ne vengono trovate, viene generato un errore con un messaggio che indica il rilevamento di un’unità USB. Lo script raccoglie quindi informazioni dettagliate su ogni unità, compresi indice, didascalia, numero di serie, partizioni e altri dettagli del volume. Questi dati vengono aggiunti agli elenchi $Report e $CustomFieldReport.
  • Terminazione: Lo script per rilevare dispositivi USB si conclude con l’invio del contenuto di $Report al log delle attività. Se viene fornito il nome di un campo personalizzato, vengono impostate anche le informazioni nel campo personalizzato specificato, utilizzando Ninja-Property-Set.

Casi d’uso potenziali

Immagina un amministratore IT di un istituto finanziario. Deve assicurarsi che i dati sensibili non vengano divulgati attraverso i dispositivi USB. Implementando questo script per rilevare dispositivi USB, può ricevere avvisi immediati sulle connessioni dei dispositivi USB, per avere così la possibilità di intervenire rapidamente e ridurre i potenziali rischi per la sicurezza.

Confronti

I metodi tradizionali di monitoraggio delle attività USB prevedono controlli manuali o l’utilizzo di software di terze parti. Questo script PowerShell per rilevare dispositivi USB offre un approccio più integrato e personalizzabile, e fornisce avvisi in tempo reale senza la necessità di installare software aggiuntivi.

Domande frequenti

D: Questo script per rilevare dispositivi USB può essere eseguito su qualsiasi sistema Windows?
R: Lo script per rilevare dispositivi USB è progettato per Windows 10 e Server 2012 R2 o versioni successive.

D: Cosa succede se non viene rilevata alcuna unità USB?
R: Lo script segnalerà semplicemente che non sono presenti unità USB, evitando falsi allarmi.

D: È possibile modificare lo script per rilevare dispositivi USB per esigenze specifiche?
R: Assolutamente. Gli script PowerShell sono altamente personalizzabili.

Implicazioni

La capacità dello script di rilevare i dispositivi USB in tempo reale è fondamentale per mantenere l’integrità e la sicurezza dei dati. I dispositivi USB non autorizzati possono essere vettori di malware o diventare strumenti per ottenere dei dati. Il rilevamento precoce consente ai team IT di rispondere rapidamente alle potenziali minacce.

Raccomandazioni

  • Aggiornamenti regolari: Mantieni lo script per rilevare dispositivi USB e l’ambiente PowerShell aggiornati per garantire compatibilità e sicurezza.
  • Personalizzazione: Adatta lo script per rilevare dispositivi USB alle esigenze e ai criteri organizzativi specifici.
  • Test: Testa regolarmente lo script per rilevare dispositivi USB in un ambiente controllato per garantirne l’efficacia.

Considerazioni finali

Nel contesto della sicurezza e della gestione IT, NinjaOne offre soluzioni solide che integrano script PowerShell come questo. Integrando gli script in strutture di gestione IT più ampie, NinjaOne aiuta a semplificare le operazioni, a migliorare la sicurezza e a garantire il funzionamento continuo delle infrastrutture IT. Questo script per rilevare dispositivi USB testimonia la potenza di PowerShell in un moderno kit di strumenti IT, dato che fornisce funzionalità critiche per il monitoraggio e la protezione degli ambienti IT.

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 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.