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