Gestire e configurare NETBIOS in Windows con PowerShell

Punti chiave

  • NETBIOS è un protocollo di rete legacy di Windows con potenziali rischi per la sicurezza.
  • Lo script PowerShell fornito automatizza il processo per configurare NETBIOS sugli adattatori di rete.
  • Lo script verifica la presenza di diritti amministrativi, garantendo un’esecuzione con diritti elevati.
  • Utilizza i moderni metodi CIM, ma ricorre a WMI per i sistemi più vecchi.
  • L’automazione, come quella fornita da questo script, offre più coerenza rispetto alle configurazioni manuali e riduce le possibilità di errore umano.
  • Testa sempre gli script in ambienti non critici prima della distribuzione completa.
  • Una corretta configurazione di NETBIOS è essenziale per la sicurezza della rete, soprattutto con i sistemi legacy.
  • Strumenti come NinjaOne possono integrare e semplificare l’utilizzo di script come questo per una gestione IT centralizzata.

Nel panorama in evoluzione della gestione delle reti, è essenziale capire come configurare le impostazioni che influiscono sui protocolli di comunicazione. Tra questi, NETBIOS (Network Basic Input/Output System) si distingue per il suo utilizzo diffuso nelle reti Windows per motivi correlati ai sistemi legacy ancora in uso. In questo articolo analizzeremo uno script PowerShell progettato su misura per configurare NETBIOS in ambiente Windows per gli adattatori di rete.

Background

NETBIOS è stato per anni un punto fermo della rete Windows, svolgendo un ruolo nella risoluzione dei nomi locali. Tuttavia, oggi può rappresentare un potenziale rischio per la sicurezza se non viene controllato. I professionisti IT e i Managed Service Provider (MSP) hanno spesso la necessità di gestire e configurare centralmente le impostazioni NETBIOS, per ottimizzare le prestazioni della rete, garantire la conformità o aumentare la sicurezza. È qui che entrano in gioco gli script PowerShell come quello fornito, che offrono una soluzione affidabile e automatizzabile per configurare NETBIOS.

Lo script per configurare NETBIOS

#Requires -Version 2.0

<#
.SYNOPSIS
    Disables or Enables NETBIOS on all network adapters
.DESCRIPTION
    Disables or Enables NETBIOS on all network adapters
.EXAMPLE
    No parameters needed.
    Sets the default of "Use NetBIOS setting from the DHCP server" on all network adapters
.EXAMPLE
    -Disable
    Disables NETBIOS on all network adapters
.EXAMPLE
    -Enable
    Enables NETBIOS on all network adapters
.OUTPUTS
    None
.NOTES
    General notes
    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/terms-of-use.
    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).
.COMPONENT
    ProtocolSecurity
#>

[CmdletBinding()]
param (
    [Parameter()]
    [switch]
    $Enable,
    [Parameter()]
    [switch]
    $Disable
)

begin {
    function Test-IsElevated {
        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()
        $p = New-Object System.Security.Principal.WindowsPrincipal($id)
        $p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)
    }
}
process {
    if (-not (Test-IsElevated)) {
        Write-Error -Message "Access Denied. Please run with Administrator privileges."
        exit 1
    }
    $NetBios = if ($PSBoundParameters.ContainsKey("Enable")) {
        # 1 - Enable NetBIOS over TCP/IP
        1
    }
    elseif ($PSBoundParameters.ContainsKey("Disable")) {
        # 2 - Disable NetBIOS over TCP/IP
        2
    }
    elseif ($PSBoundParameters.ContainsKey("Enable") -and $PSBoundParameters.ContainsKey("Disable")) {
        Write-Error "Can not enable and disable at the same time."
        exit 1
    }
    else {
        # 0 - Use NetBIOS setting from the DHCP server
        0
    }

    if ($(Get-Command "Get-CimInstance" -ErrorAction SilentlyContinue).Name -like "Get-CimInstance") {
        $Arguments = @{
            TcpipNetbiosOptions = [UInt32]($NetBios)
        }
        $Session = New-CimSession
        $Query = 'Select * From Win32_NetworkAdapterConfiguration'
        $Response = Invoke-CimMethod -Query $Query -Namespace Root/CIMV2 -MethodName SetTcpipNetbios -Arguments $Arguments -CimSession $Session
        if ($Response.ReturnValue -is [int] -and $Response.ReturnValue -gt 1) {
            # 0 and 1 are success return values
            # https://powershell.one/wmi/root/cimv2/win32_networkadapterconfiguration-SetTcpipNetbios#return-value
            Write-Error "SetTcpipNetbios returned error code ($($Response.ReturnValue))"
            Remove-CimSession -CimSession $Session
            exit 1
        }
        Write-Host "Netbios set to $NetBios"
        Remove-CimSession -CimSession $Session
    }
    else {
        $Adapters = $(Get-WmiObject -Class win32_networkadapterconfiguration)
        Foreach ($Adapter in $Adapters) {
            try {
                $Adapter.SetTcpipNetbios($NetBios)
            }
            catch {
                # Do nothing if error occurs
            }
            $Adapter | Select-Object Description, TcpipNetbiosOptions
        }
    }
}
end {}

 

Accedi a oltre 700 script nel Dojo di NinjaOne

Ottieni l’accesso

Analisi dettagliata

Lo script per configurare NETBIOS presentato è sviluppato in PowerShell, uno strumento potente nelle mani degli amministratori. Ecco una spiegazione passo per passo:

  • Commenti iniziali e metadati: Questi forniscono una descrizione, esempi di utilizzo e altri metadati sulla funzionalità dello script per configurare NETBIOS.
  • Cmdlet Binding: Consente alle funzioni avanzate di agire in modo simile ai cmdlet.
  • Parametri: Definisce due switch, ‘Enable’ and ‘Disable’, per configurare NETBIOS.
  • Controllo dell’elevazione dei permessi: È fondamentale eseguire lo script per configurare NETBIOS con diritti amministrativi. La funzione “Test-IsElevated” garantisce questo aspetto verificando se l’utente corrente possiede privilegi amministrativi.
  • Configurazione NETBIOS: In base allo switch fornito (Enable/Disable), lo script imposta l’opzione NETBIOS corretta.
  • Implementazione: Se esiste il comando ‘Get-CimInstance’ (tipico delle versioni moderne di PowerShell), lo script per configurare NETBIOS utilizza CIM (Common Information Model) per configurare gli adattatori di rete. In caso contrario, ricorre al vecchio metodo WMI (Windows Management Instrumentation).
  • Feedback e pulizia: Lo script per configurare NETBIOS fornisce un feedback sulle impostazioni applicate e cancella le sessioni create.

Casi d’uso potenziali

Immagina un MSP che supervisiona l’infrastruttura IT di un’azienda che sta espandendo la propria presenza grazie alla fusione con un’altra organizzazione. Utilizza un mix di sistemi moderni e legacy. Questo MSP deve standardizzare le impostazioni NETBIOS su centinaia di macchine per garantire un’interconnessione perfetta e ridurre le potenziali vulnerabilità di sicurezza. Distribuendo questo script, può automatizzare il processo per configurare NETBIOS, risparmiando tempo e riducendo al minimo gli errori umani.

Confronti

Sebbene esistano strumenti basati su GUI e metodi manuali per configurare le impostazioni NETBIOS sui singoli computer, il vantaggio di questo script per configurare NETBIOS sta nell’automazione. Può essere integrato in script di distribuzione più ampi o in strumenti di gestione dei sistemi. Rispetto alle configurazioni manuali, questo script per configurare NETBIOS riduce la possibilità di sviste e fornisce un metodo coerente e riproducibile.

Domande frequenti

  • Posso eseguirlo su qualsiasi macchina Windows? 
    Sì, a patto che tu abbia PowerShell, ma ricordati di testarlo sempre su un computer che funga da ambiente di prova.
  • Cosa succede se per errore si abilita e disabilita NETBIOS contemporaneamente? 
    Lo script per configurare NETBIOS ha dei controlli integrati e visualizza un errore se si tenta di farlo.
  • C’è un feedback che informa se le impostazioni sono state applicate correttamente? 
    Sì, lo script per configurare NETBIOS fornisce un feedback sulla configurazione NETBIOS applicata.

Implicazioni

Una configurazione errata di NETBIOS può lasciare le macchine vulnerabili a vari attacchi, soprattutto sulle reti aperte. Garantire le impostazioni corrette è fondamentale per la sicurezza informatica. Sebbene NETBIOS sia meno diffuso nelle reti moderne, i sistemi legacy dipendono ancora da esso, e questo rende importante la gestione delle sue impostazioni.

Raccomandazioni

  • Esegui sempre lo script per configurare NETBIOS in un ambiente di prova prima di distribuirlo in produzione.
  • Assicurati di aver compreso ogni componente dello script per configurare NETBIOS per essere in grado di risolvere i problemi, se necessario.
  • Ricontrolla e aggiorna regolarmente lo script per configurare NETBIOS in base all’evoluzione degli standard di rete.

Considerazioni finali

Strumenti di automazione, come NinjaOne, semplificano ulteriormente i processi e possono integrare script come questo, fornendo controllo, reportistica e monitoraggio centralizzati. Quando si naviga nell’intricato mondo delle configurazioni di rete, gli strumenti e gli script che semplificano le attività diventano preziosi per i professionisti IT di tutto il mondo.

 

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ù sulla distribuzione remota di script con NinjaOne, 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.