{"id":208397,"date":"2024-01-22T10:07:45","date_gmt":"2024-01-22T10:07:45","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/generer-un-rapport-de-reseau-local-sans-fil-powershell\/"},"modified":"2024-05-20T13:45:46","modified_gmt":"2024-05-20T13:45:46","slug":"generer-un-rapport-de-reseau-local-sans-fil-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/fr\/script-hub\/generer-un-rapport-de-reseau-local-sans-fil-powershell\/","title":{"rendered":"Comment g\u00e9n\u00e9rer un rapport complet sur le r\u00e9seau local sans fil (WLAN) \u00e0 l&rsquo;aide de PowerShell"},"content":{"rendered":"<p>Les rapports sur le r\u00e9seau local sans fil (WLAN) sont indispensables dans le secteur de l&rsquo;informatique. La capacit\u00e9 \u00e0 comprendre rapidement et efficacement l&rsquo;\u00e9tat, les performances et les failles de s\u00e9curit\u00e9 potentielles des r\u00e9seaux sans fil est vitale pour toute entreprise, qu&rsquo;elle soit grande ou petite. Un script PowerShell bien structur\u00e9 permet aux professionnels de l&rsquo;informatique et aux <a href=\"https:\/\/www.ninjaone.com\/fr\/quest-ce-quun-msp\/\">fournisseurs de services g\u00e9r\u00e9s (MSP)<\/a> de g\u00e9n\u00e9rer un\u00a0<strong>rapport complet sur le r\u00e9seau local sans fil.<\/strong><\/p>\n<h2>Contexte<\/h2>\n<p>\u00c0 une \u00e9poque o\u00f9 le temps de fonctionnement et la s\u00e9curit\u00e9 du r\u00e9seau sont primordiaux, la possibilit\u00e9 de g\u00e9n\u00e9rer un rapport sur le r\u00e9seau local sans fil devient une n\u00e9cessit\u00e9. Ces rapports aident les professionnels de l&rsquo;informatique \u00e0 surveiller la performance de leurs r\u00e9seaux, \u00e0 comprendre le comportement des utilisateurs et \u00e0 rep\u00e9rer les anomalies potentielles qui pourraient indiquer des failles de s\u00e9curit\u00e9. Pour les entreprises MSP qui g\u00e8rent les r\u00e9seaux de plusieurs clients, ces rapports constituent un bon moyen de montrer le travail effectu\u00e9 et les informations cl\u00e9s. Le script fourni est un outil qui peut \u00eatre utilis\u00e9 par les professionnels de l&rsquo;informatique pour automatiser et simplifier ce processus de cr\u00e9ation de rapports.<\/p>\n<h2>Le script<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Saves a Wireless LAN report to a Multi-Line Custom Field.\r\n.DESCRIPTION\r\n    Saves a Wireless LAN report to a Multi-Line Custom Field.\r\n.EXAMPLE\r\n     -CustomField \"wlanreport\"\r\n    Saves a Wireless LAN report to a Multi-Line Custom Field.\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2016\r\n    Release Notes:\r\n    Initial Release\r\nBy 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.\r\n    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. \r\n    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. \r\n    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. \r\n    Warranty Disclaimer: The script is provided \u201cas is\u201d and \u201cas available\u201d, 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. \r\n    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. \r\n    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. \r\n    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).\r\n#&gt;\r\n\r\n[CmdletBinding()]\r\nparam (\r\n    [Parameter()]\r\n    [String]\r\n    $CustomField = \"wlanreport\"\r\n)\r\n\r\nprocess {\r\n    if (-not (Test-IsElevated)) {\r\n        Write-Error -Message \"Access Denied. Please run with Administrator privileges.\"\r\n        exit 1\r\n    }\r\n    if ($env:CustomField) {\r\n        # Use Script Variable and overwrite parameter\r\n        $CustomField = $env:CustomField\r\n    }\r\n    $WLanReportXmlPath = \"C:ProgramDataMicrosoftWindowsWlanReportwlan-report-latest.xml\"\r\n    # Generate the wlan report\r\n    netsh.exe wlan show wlanreport | Out-Null\r\n    # Check that the xml report exists\r\n    if (-not $(Test-Path -Path $WLanReportXmlPath)) {\r\n        Write-Host \"[Error] $WLanReportXmlPath was not created by: netsh.exe wlan show wlanreport\"\r\n        exit 1\r\n    }\r\n    # Convert the report from XML to a hash table\r\n    $WLanReport = [xml[]]$(Get-Content -Raw -Path $WLanReportXmlPath) | ConvertFrom-Xml\r\n    # Get the date that the report was generated\r\n    $ReportDate = [DateTime]::ParseExact($WLanReport.WlanReport.ReportInformation.ReportDate -replace 'Z', \"yyyy'-'MM'-'dd'T'HH':'mm':'ss\", $null)\r\n    # Collect data into one variable\r\n    $Report = if ($WLanReport) {\r\n        # Output the date of the report\r\n        Write-Output \"Report Date : $ReportDate\"\r\n        # Output the user information\r\n        $WLanReport.WlanReport.UserInformation | Format-Table\r\n        # Output the saved Access Points\r\n        $WLanReport.WlanReport.Profiles.'Wi-Fi'.Keys | ForEach-Object {\r\n            $AccessPointName = $_\r\n            $AccessPointData = [xml[]]$WLanReport.WlanReport.Profiles.'Wi-Fi'.\"$AccessPointName\"\r\n            if ($null -ne $AccessPointData) {\r\n                $AccessPoint = $AccessPointData | ConvertFrom-Xml\r\n                [PSCustomObject]@{\r\n                    AccessPointName  = $AccessPointName\r\n                    Authentication   = $AccessPoint.\"$AccessPointName\".MSM.security.authEncryption.authentication\r\n                    Encryption       = $AccessPoint.\"$AccessPointName\".MSM.security.authEncryption.encryption\r\n                    MacRandomization = $AccessPoint.\"$AccessPointName\".MacRandomization.enableRandomization\r\n                }\r\n            }\r\n        } | Format-Table\r\n        \r\n        # Output the system information\r\n        $WLanReport.WlanReport.SystemInformation.Keys | ForEach-Object {\r\n            $Data = $($WLanReport.WlanReport.SystemInformation.\"$($_)\")\r\n            if ($Data -is \"String\") {\r\n                Write-Output \"$_ : $Data\"\r\n            }\r\n        }\r\n        # Output network adapters\r\n        Get-NetAdapter | Format-Table Name, InterfaceDescription, Status, MacAddress, LinkSpeed, MediaType\r\n    }\r\n    else {\r\n        $null\r\n    }\r\n\r\n    if ($Report) {\r\n        # Output report to Activity Feed\r\n        $Report | Out-String | Write-Host\r\n        # Save report to multi-line custom field\r\n        Ninja-Property-Set -Name $CustomField -Value $($Report | Out-String)\r\n    }\r\n    else {\r\n        Write-Host \"Could not generate wlan report.\"\r\n        exit 1\r\n    }\r\n    \r\n}\r\nbegin {\r\n    function Test-IsElevated {\r\n        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()\r\n        $p = New-Object System.Security.Principal.WindowsPrincipal($id)\r\n        $p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)\r\n    }\r\n    function ConvertFrom-Xml {\r\n        param([parameter(Mandatory, ValueFromPipeline)] [System.Xml.XmlNode] $node)\r\n        process {\r\n            if ($node.DocumentElement) { $node = $node.DocumentElement }\r\n            $oht = [ordered] @{}\r\n            $name = $node.Name\r\n            if ($node.FirstChild -is [system.xml.xmltext]) {\r\n                $oht.$name = $node.FirstChild.InnerText\r\n            }\r\n            else {\r\n                $oht.$name = New-Object System.Collections.ArrayList \r\n                foreach ($child in $node.ChildNodes) {\r\n                    $null = $oht.$name.Add((ConvertFrom-Xml $child))\r\n                }\r\n            }\r\n            $oht\r\n        }\r\n    }\r\n}\r\nend {\r\n    $ScriptVariables = @(\r\n        [PSCustomObject]@{\r\n            name           = \"CustomField\"\r\n            calculatedName = \"customfield\"\r\n            required       = $true\r\n            defaultValue   = [PSCustomObject]@{\r\n                type  = \"TEXT\"\r\n                value = \"wlanreport\"\r\n            }\r\n            valueType      = \"TEXT\" # Must be uppercase!\r\n            valueList      = $null\r\n            description    = \"A multi-line Custom Field that the report will be saved to.\"\r\n        }\r\n    )\r\n}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p style=\"text-align: center;\">Acc\u00e9dez \u00e0 plus de 700 scripts dans le Dojo NinjaOne<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.ninjaone.com\/fr\/phase-de-test-gratuit\/\">Obtenez l&rsquo;acc\u00e8s<\/a><\/p>\n<\/div>\n<h2>Description d\u00e9taill\u00e9e<\/h2>\n<p>Le script commence par v\u00e9rifier la version n\u00e9cessaire, qui est la 5.1, afin d&rsquo;assurer la compatibilit\u00e9. Ensuite, un synopsis, une description et des exemples sont fournis, offrant une explication succincte de l&rsquo;objectif du script..<\/p>\n<p>Des param\u00e8tres sont ensuite d\u00e9finis pour le script, la valeur par d\u00e9faut \u00e9tant <strong>\u00ab\u00a0wlanreport\u00a0\u00bb<\/strong>. Dans le bloc \u00ab\u00a0processus\u00a0\u00bb, le script v\u00e9rifie la pr\u00e9sence de privil\u00e8ges \u00e9lev\u00e9s. Sans droits d&rsquo;administrateur, le script ne s&rsquo;ex\u00e9cutera pas. Il v\u00e9rifie ensuite la pr\u00e9sence d&rsquo;une variable d&rsquo;environnement nomm\u00e9e <strong>\u00ab\u00a0CustomField\u00a0\u00bb<\/strong> Si elle est trouv\u00e9e, elle remplacera le param\u00e8tre du script.<\/p>\n<p>La partie principale du script g\u00e9n\u00e8re le rapport WLAN par le biais de la commande netsh.exe wlan show wlanreport et v\u00e9rifie ensuite si le rapport a \u00e9t\u00e9 cr\u00e9\u00e9 avec succ\u00e8s. Apr\u00e8s validation, il convertit ce rapport XML en une table de hachage plus lisible, extrait les donn\u00e9es utiles telles que les informations sur les utilisateurs, les point d&rsquo;acc\u00e8s et les informations sur le syst\u00e8me, puis les pr\u00e9sente sous forme de tableau.<\/p>\n<p>Le bloc final du script d\u00e9finit quelques fonctions personnalis\u00e9es comme Test-IsElevated, qui v\u00e9rifie si le script est ex\u00e9cut\u00e9 avec des droits \u00e9lev\u00e9s, et ConvertFrom-Xml, une fonction permettant de convertir des donn\u00e9es XML.<\/p>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<p>Imaginez Sarah, informaticienne dans une entreprise de taille moyenne. Leur bureau a r\u00e9cemment connu des fluctuations de r\u00e9seau et Sarah a pour mission de diagnostiquer les probl\u00e8mes li\u00e9s au r\u00e9seau local sans fil (WLAN). \u00c0 l&rsquo;aide de ce script, elle peut rapidement g\u00e9n\u00e9rer un rapport d\u00e9taill\u00e9 sur le r\u00e9seau local sans fil, en d\u00e9couvrant les donn\u00e9es relatives aux connexions des utilisateurs, aux points d&rsquo;acc\u00e8s actifs et aux d\u00e9tails du syst\u00e8me, ce qui l&rsquo;aide \u00e0 identifier la cause premi\u00e8re du probl\u00e8me.<\/p>\n<h2>Comparaisons<\/h2>\n<p>Traditionnellement, la g\u00e9n\u00e9ration d&rsquo;un rapport WLAN impliquait des interventions manuelles, \u00e0 l&rsquo;aide d&rsquo;outils int\u00e9gr\u00e9s au syst\u00e8me d&rsquo;exploitation, de logiciels tiers ou m\u00eame d&rsquo;outils mat\u00e9riels. Bien que ces m\u00e9thodes soient toujours valables, le <a href=\"https:\/\/www.ninjaone.com\/fr\/script-hub\/generer-un-rapport-de-reseau-local-sans-fil-powershell\/\">script PowerShell offre automatisation<\/a>, rapidit\u00e9 et coh\u00e9rence, ce qui est particuli\u00e8rement avantageux pour les entreprises MSP qui g\u00e8rent de nombreux r\u00e9seaux et ont besoin d&rsquo;une approche standardis\u00e9e.<\/p>\n<h2>FAQ<\/h2>\n<ul>\n<li><strong>Ce script peut-il \u00eatre modifi\u00e9 pour fonctionner sur des versions plus anciennes de PowerShell ?\u00a0<\/strong><br \/>\nCe script n\u00e9cessite sp\u00e9cifiquement la version 5.1 en raison de certaines fonctionnalit\u00e9s qu&rsquo;il utilise. Tenter de l&rsquo;utiliser avec des versions plus anciennes peut entra\u00eener des probl\u00e8mes de compatibilit\u00e9.<\/li>\n<li><strong>Que faire si je veux que le rapport soit enregistr\u00e9 ailleurs ?\u00a0<\/strong><br \/>\nLe script peut \u00eatre modifi\u00e9. Vous devrez modifier la variable $WLanReportXmlPath en fonction de l&#8217;emplacement souhait\u00e9.<\/li>\n<\/ul>\n<h2>Implications<\/h2>\n<p>Bien que le script permette de g\u00e9n\u00e9rer des rapports complets sur les r\u00e9seaux locaux sans fil, les utilisateurs doivent comprendre ses r\u00e9sultats pour prendre des d\u00e9cisions pertinentes en mati\u00e8re de s\u00e9curit\u00e9. Le fait de n\u00e9gliger des d\u00e9tails sp\u00e9cifiques ou de mal interpr\u00e9ter les donn\u00e9es peut conduire \u00e0 des vuln\u00e9rabilit\u00e9s de s\u00e9curit\u00e9 qui passent inaper\u00e7ues.<\/p>\n<h2>Recommandations<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\">Ex\u00e9cutez toujours le script avec les autorisations n\u00e9cessaires.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\">Assurez-vous que votre version de PowerShell est compatible.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\">Examinez et interpr\u00e9tez r\u00e9guli\u00e8rement les rapports produits pour une prise de d\u00e9cision efficace.<\/li>\n<\/ul>\n<h2>Conclusions<\/h2>\n<p>NinjaOne offre aux professionnels de l&rsquo;informatique une <a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/logiciel-a-guichet-unique-explications\">plateforme centralis\u00e9e pour g\u00e9rer l&rsquo;infrastructure informatique<\/a>. Le couplage de ce script avec les capacit\u00e9s de NinjaOne peut am\u00e9liorer la surveillance, la gestion et le reporting des r\u00e9seaux sans fil, en fournissant une approche compl\u00e8te de la <a href=\"https:\/\/www.ninjaone.com\/fr\/plateforme-de-gestion-de-terminaux\/gestion-de-reseau\/\">gestion des r\u00e9seaux informatiques<\/a>.\u00a0En tirant parti d&rsquo;outils tels que le script PowerShell fourni, les professionnels de l&rsquo;informatique peuvent travailler plus intelligemment, en veillant \u00e0 ce que leurs r\u00e9seaux soient toujours \u00e0 leur meilleure performance.<\/p>\n","protected":false},"author":35,"featured_media":144008,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"operating_system":[4212],"use_cases":[4281],"class_list":["post-208397","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows","use_cases-configuration-generale"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub\/208397","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/comments?post=208397"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media\/144008"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=208397"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/operating_system?post=208397"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/use_cases?post=208397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}