Come generare un report sulle LAN wireless utilizzando PowerShell

I report sulle LAN wireless sono indispensabili nel settore IT. La capacità di comprendere in modo rapido ed efficiente lo stato, le prestazioni e le potenziali vulnerabilità di sicurezza delle reti wireless è fondamentale per le aziende, grandi o piccole che siano. Attraverso uno script PowerShell ben strutturato, è possibile ottenere questo risultato senza problemi, fornendo ai professionisti IT e ai Managed Service Provider (MSP) la possibilità di generare un report sulle LAN wireless.

Background

In un momento storico in cui l’autonomia e la sicurezza della rete sono fondamentali, la possibilità di generare un report sulle LAN wireless diventa una necessità. Questi report aiutano i professionisti IT a monitorare lo stato di salute delle reti, a comprendere il comportamento degli utenti e a individuare potenziali anomalie che potrebbero indicare violazioni della sicurezza. Per gli MSP che gestiscono le reti di più clienti, questi report rappresentano un modo tangibile per mostrare il lavoro svolto e le conoscenze acquisite. Lo script fornito per generare un report sulle LAN wireless è uno strumento che può essere utilizzato dai professionisti IT per automatizzare e semplificare questo processo di reporting, sfruttando la potenza dello scripting PowerShell.

Lo script per generare un report sulle LAN wireless

#Requires -Version 5.1

<#
.SYNOPSIS
    Saves a Wireless LAN report to a Multi-Line Custom Field.
.DESCRIPTION
    Saves a Wireless LAN report to a Multi-Line Custom Field.
.EXAMPLE
     -CustomField "wlanreport"
    Saves a Wireless LAN report to a Multi-Line Custom Field.
.OUTPUTS
    None
.NOTES
    Minimum OS Architecture Supported: Windows 10, Windows Server 2016
    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).
#>

[CmdletBinding()]
param (
    [Parameter()]
    [String]
    $CustomField = "wlanreport"
)

process {
    if (-not (Test-IsElevated)) {
        Write-Error -Message "Access Denied. Please run with Administrator privileges."
        exit 1
    }
    if ($env:CustomField) {
        # Use Script Variable and overwrite parameter
        $CustomField = $env:CustomField
    }
    $WLanReportXmlPath = "C:ProgramDataMicrosoftWindowsWlanReportwlan-report-latest.xml"
    # Generate the wlan report
    netsh.exe wlan show wlanreport | Out-Null
    # Check that the xml report exists
    if (-not $(Test-Path -Path $WLanReportXmlPath)) {
        Write-Host "[Error] $WLanReportXmlPath was not created by: netsh.exe wlan show wlanreport"
        exit 1
    }
    # Convert the report from XML to a hash table
    $WLanReport = [xml[]]$(Get-Content -Raw -Path $WLanReportXmlPath) | ConvertFrom-Xml
    # Get the date that the report was generated
    $ReportDate = [DateTime]::ParseExact($WLanReport.WlanReport.ReportInformation.ReportDate -replace 'Z', "yyyy'-'MM'-'dd'T'HH':'mm':'ss", $null)
    # Collect data into one variable
    $Report = if ($WLanReport) {
        # Output the date of the report
        Write-Output "Report Date : $ReportDate"
        # Output the user information
        $WLanReport.WlanReport.UserInformation | Format-Table
        # Output the saved Access Points
        $WLanReport.WlanReport.Profiles.'Wi-Fi'.Keys | ForEach-Object {
            $AccessPointName = $_
            $AccessPointData = [xml[]]$WLanReport.WlanReport.Profiles.'Wi-Fi'."$AccessPointName"
            if ($null -ne $AccessPointData) {
                $AccessPoint = $AccessPointData | ConvertFrom-Xml
                [PSCustomObject]@{
                    AccessPointName  = $AccessPointName
                    Authentication   = $AccessPoint."$AccessPointName".MSM.security.authEncryption.authentication
                    Encryption       = $AccessPoint."$AccessPointName".MSM.security.authEncryption.encryption
                    MacRandomization = $AccessPoint."$AccessPointName".MacRandomization.enableRandomization
                }
            }
        } | Format-Table
        
        # Output the system information
        $WLanReport.WlanReport.SystemInformation.Keys | ForEach-Object {
            $Data = $($WLanReport.WlanReport.SystemInformation."$($_)")
            if ($Data -is "String") {
                Write-Output "$_ : $Data"
            }
        }
        # Output network adapters
        Get-NetAdapter | Format-Table Name, InterfaceDescription, Status, MacAddress, LinkSpeed, MediaType
    }
    else {
        $null
    }

    if ($Report) {
        # Output report to Activity Feed
        $Report | Out-String | Write-Host
        # Save report to multi-line custom field
        Ninja-Property-Set -Name $CustomField -Value $($Report | Out-String)
    }
    else {
        Write-Host "Could not generate wlan report."
        exit 1
    }
    
}
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)
    }
    function ConvertFrom-Xml {
        param([parameter(Mandatory, ValueFromPipeline)] [System.Xml.XmlNode] $node)
        process {
            if ($node.DocumentElement) { $node = $node.DocumentElement }
            $oht = [ordered] @{}
            $name = $node.Name
            if ($node.FirstChild -is [system.xml.xmltext]) {
                $oht.$name = $node.FirstChild.InnerText
            }
            else {
                $oht.$name = New-Object System.Collections.ArrayList 
                foreach ($child in $node.ChildNodes) {
                    $null = $oht.$name.Add((ConvertFrom-Xml $child))
                }
            }
            $oht
        }
    }
}
end {
    $ScriptVariables = @(
        [PSCustomObject]@{
            name           = "CustomField"
            calculatedName = "customfield"
            required       = $true
            defaultValue   = [PSCustomObject]@{
                type  = "TEXT"
                value = "wlanreport"
            }
            valueType      = "TEXT" # Must be uppercase!
            valueList      = $null
            description    = "A multi-line Custom Field that the report will be saved to."
        }
    )
}

 

Accedi a oltre 700 script nel Dojo di NinjaOne

Ottieni l’accesso

Analisi dettagliata

Lo script per generare un report sulle LAN wireless inizia controllando la versione necessaria di PowerShell, che è la 5.1, per garantire la compatibilità. Vengono poi forniti una sinossi, una descrizione e degli esempi, che offrono una spiegazione sintetica dello scopo dello script.

Vengono quindi definiti i parametri dello script per generare un report sulle LAN wireless, il cui nome predefinito è “wlanreport” Nel blocco “processo”, lo script  per generare un report sulle LAN wireless verifica la presenza di privilegi elevati. Senza i diritti di amministratore, lo script non verrà eseguito. Quindi lo script controlla la presenza di una variabile ambientale chiamata “CustomField” Se viene trovata, sovrascrive il parametro dello script.

La parte principale dello script genera il report WLAN attraverso il comando “netsh.exe wlan show wlanreport” e poi controlla se il report è stato creato con successo. Dopo la convalida, converte questo report XML in una tabella hash più leggibile, estrae i dati utili come le informazioni sull’utente, i punti di accesso e le informazioni sul sistema e li formatta in un formato di tabella.

Il blocco finale dello script per generare un report sulle LAN wireless definisce alcune funzioni personalizzate come Test-IsElevated, che verifica se lo script viene eseguito con diritti elevati, e ConvertFrom-Xml, una funzione per convertire i dati XML.

Casi d’uso potenziali

Immagina Sarah, una professionista IT di un’azienda di medie dimensioni. Recentemente nel suo ufficio si sono verificate alcune fluttuazioni nelle prestazioni della rete e il compito di Sarah è quello di diagnosticare eventuali problemi con la WLAN. Utilizzando questo script per generare un report sulle LAN wireless, Sarah può generare rapidamente un report WLAN dettagliato, scoprendo i dati relativi alle connessioni degli utenti, ai punti di accesso attivi e ai dettagli del sistema, per poter individuare la causa principale del problema.

Confronti

Tradizionalmente, la generazione di un report WLAN richiedeva interventi manuali che utilizzassero strumenti integrati nel sistema operativo, software di terze parti o persino strumenti hardware. Sebbene questi metodi siano ancora validi, lo script PowerShell fornito offre automazione, velocità e coerenza, particolarmente vantaggiose per gli MSP che gestiscono numerose reti e necessitano di un approccio standardizzato.

Domande frequenti

  • Questo script per generare un report sulle LAN wireless può essere modificato per essere eseguito su versioni precedenti di PowerShell? 
    Questo script per generare un report sulle LAN wireless richiede specificamente la versione 5.1 a causa di alcune funzionalità che sfrutta. Il tentativo di utilizzarlo con versioni precedenti potrebbe causare problemi di compatibilità.
  • E se volessi salvare il report in una diversa destinazione? 
    Lo script per generare un report sulle LAN wireless può essere modificato. È necessario modificare la variabile $WLanReportXmlPath utilizzando il percorso desiderato.

Implicazioni

Sebbene lo script aiuti a generare report completi sulle WLAN, gli utenti devono comprenderne i risultati per prendere decisioni significative in materia di sicurezza. Trascurare dettagli specifici o interpretare male i dati può portare a far passare inosservate delle vulnerabilità di sicurezza.

Raccomandazioni

  • Esegui sempre lo script per generare un report sulle LAN wireless con le autorizzazioni necessarie.
  • Assicurati che la versione di PowerShell sia compatibile.
  • Esamina regolarmente e interpreta correttamente i report generati per prendere decisioni efficaci.

Considerazioni finali

Per i professionisti dell’IT, NinjaOne offre una piattaforma centralizzata per la gestione dell’infrastruttura IT. Integrare l’uso questo script per generare un report sulle LAN wireless con le funzionalità di NinjaOne può migliorare il monitoraggio e la gestione delle reti wireless e la reportistica, fornendo un approccio completo alla gestione delle reti IT. Sfruttando strumenti come lo script PowerShell per generare un report sulle LAN wireless fornito, i professionisti IT possono lavorare in modo più intelligente, senza dover lavorare di più, assicurando che le loro reti siano sempre al massimo delle prestazioni.

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.