Réseau - Détection du type de connexion

Il est souvent utile de connaître le type de connexion utilisée lors de l’exécution de certaines opérations sur un poste de travail, afin de réaliser ou non certaines opérations.

Par exemple, lors d’une mise à jour d’une version de Windows, il peut être souhaitable de bloquer la mise à jour si elle n’est pas exécutée sur le réseau interne de l’entreprise, ou au minimum d’avertir l’utilisateur des risques de l’opération.

Ou encore, si l’ordinateur est connecté en VPN, la mise à jour du client VPN demandera que la nouvelle version de la solution VPN soit téléchargée dans son intégralité avant que l’installation n’ait lieu…

Le script fourni ici commence par déterminer quelle est l’interface réseau utilisée pour la connexion au domaine, puis vérifie quel est son type, d’après les informations relatives au medium physique : 802.3, 802.11, Bluetooth, …

Les types ne correspondant pas à une connexion filaire ou sans fil sont considérés comme relevant du VPN.


<#
.SYNOPSIS
    Get the type of network connection

.DESCRIPTION
    Retrieve the network connection type when a computer is connected to a domain:
    - LAN
    - Wireless
    - VPN

.EXAMPLE
    Get-NetworkConnectionType

.INPUTS
    none

.OUTPUTS
    One of these string values:
    - LAN
    - Wireless
    - VPN

.NOTES
    version 1.0: initial version
#>

function Get-NetworkConnectionType {
    [CmdletBinding()]
    [OutputType([String])]
    Param ()
    
    begin {
        $connectionType = "n/a"
    }
    
    process {

        # get the connection which is used for domain access
        $connectionProfile = Get-NetConnectionProfile | Where-Object { $_.NetworkCategory -eq "DomainAuthenticated" }

        # if a connection exists, check the adapter in use
        if ($null -ne $connectionProfile) {
            # get the adapter
            $connectionAdapter = Get-NetAdapter -Name $connectionProfile.InterfaceAlias
            switch ($connectionAdapter.PhysicalMediaType ) {
                "802.3" {
                    $connectionType = "LAN"
                    break;
                }
                "Native 802.11" {
                    $connectionType = "Wireless"
                    break;
                }
                "Bluetooth" {
                    $connectionType = "Wireless"
                    break;
                }
                default {
                    $connectionType = "VPN"
                }
            }
        }
        
    }
    
    end {
        Write-Output $connectionType
    }
}

Dernière modification: 

17/03/2019 - 18:42