Comment gérer efficacement les connexions VPN à l’aide de PowerShell sous Windows

Vous rencontrez des problèmes avec la configuration ou la gestion de votre VPN sous Windows ? L’interface graphique intégrée ne suffit pas toujours, notamment pour ajuster des paramètres avancés ou créer des scripts d’automatisation des connexions VPN. Ce guide explique comment gérer les connexions VPN via PowerShell : de la création de nouvelles connexions à la modification des configurations existantes. C’est un peu surprenant, mais PowerShell offre un contrôle total, très pratique pour le dépannage ou les configurations personnalisées. Après avoir suivi ce guide, vous pourrez configurer, modifier et déconnecter des VPN directement en ligne de commande, ce qui vous fera gagner du temps et de l’énergie.

Comment gérer les connexions VPN sous Windows à l’aide de PowerShell

Utilisation de PowerShell pour créer une connexion VPN

La création d’un VPN dans PowerShell utilise la cmdlet Add-VpnConnection. Pourquoi ? Parce que c’est simple et compatible avec la plupart des VPN courants. Si votre interface graphique ne vous offre pas les fonctionnalités nécessaires ou si vous souhaitez automatiser le processus, c’est la solution idéale. Vous aurez besoin au minimum de l’adresse du serveur et d’un nom de connexion. Sur certaines machines, cette commande peut échouer lors de sa première exécution, puis fonctionner après un redémarrage ou une relance rapide de PowerShell. Quoi qu’il en soit, c’est plus rapide que de naviguer dans les menus.

Par exemple, pour créer un VPN basique, vous taperez :

Add-VpnConnection -Name "VPNname1" -ServerAddress "vpn.woshub.com" -PassThru

Dans de nombreux cas, vous souhaiterez davantage de contrôle, vous permettant ainsi d’ajouter des options telles que le type de tunnel ou les méthodes d’authentification.

Configuration des paramètres VPN personnalisés

C’est là que cette commande devient vraiment pratique. Imaginons que vous souhaitiez utiliser un VPN L2TP avec une clé pré-partagée ou définir un niveau de chiffrement spécifique. Pourquoi ? Cela améliore la compatibilité et la sécurité. Ces paramètres sont essentiels si la configuration par défaut ne fonctionne pas ou si votre fournisseur VPN recommande certaines configurations. Sachez que si vous configurez un type de tunnel personnalisé comme IKEv2 ou L2TP, vous devrez probablement importer les certificats au préalable – car, bien sûr, Windows a la fâcheuse habitude de compliquer les choses inutilement.

Exemple de création d’un VPN L2TP/IPsec avec une clé pré-partagée :

Add-VpnConnection -Name "VPN_L2TP" -ServerAddress "vpn.woshub.com" -TunnelType L2TP -L2tpPsk "My1pre-SharedKey2" -Force -EncryptionLevel "Required" -AuthenticationMethod MSChapv2 -UseWinlogonCredential -RememberCredential -AllUserConnection –PassThru

Cette commande configure un VPN sécurisé utilisant IPsec. Si vous utilisez SSTP, assurez-vous que le serveur possède un certificat SSL valide et importez l’autorité de certification racine dans votre magasin de certificats afin d’éviter les erreurs de certificat.

Ajustement des connexions VPN existantes

Parfois, la connexion fonctionne initialement, mais il est ensuite nécessaire d’ajuster certains paramètres : tunnelage fractionné, chiffrement ou identifiants. Dans ce cas, la commande Set-VpnConnection s’avère très utile. Par exemple, si vous souhaitez désactiver le tunnelage fractionné :

Set-VpnConnection -Name "VPN_SSTP" -SplitTunneling $false -PassThru

Cela peut aider à résoudre les problèmes de latence de résolution DNS ou d’accès, notamment sur certains réseaux ou lors de l’utilisation de routes statiques.

Gestion des paramètres VPN IPsec

Si vous utilisez des configurations IPsec personnalisées, la commande Set-VpnConnectionIpsecConfiguration est essentielle. Elle vous permet d’affiner les paramètres de sécurité, les hachages, les suites de chiffrement et les groupes PFS. Cas d’utilisation typique : la connexion à des VPN d’entreprise exigeant un niveau de sécurité élevé. Vous devrez probablement importer au préalable les certificats d’autorité de certification et les certificats de votre périphérique, ce qui peut s’avérer fastidieux, mais justifie le renforcement de la sécurité. Exemple :

Set-VpnConnectionIPsecConfiguration -ConnectionName "VPN_IKEv2" -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES256 -DHGroup Group14 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -PfsGroup PFS2048 –PassThru

Enregistrement des identifiants VPN

Si vous ne souhaitez pas saisir votre nom d’utilisateur et votre mot de passe à chaque fois ou si vous souhaitez automatiser certaines tâches, vous pouvez enregistrer vos identifiants grâce au module VPNCredentialsHelper. Installez-le au préalable :

Install-Module -Name VPNCredentialsHelper

Ensuite, stockez vos identifiants VPN en toute sécurité dans le Gestionnaire d’informations d’identification Windows :

$user = "vpn_username1" $plainpass = "vpn_password1" Set-VpnConnectionUsernamePassword -connectionname "VPN_SSTP" -username $user -password $plainpass

Ainsi, Windows gère vos identifiants et vous n’avez pas à les saisir à chaque fois.

Ajout de routes statiques sur VPN Connect

Parfois, vous souhaitez que certains flux de données transitent systématiquement par votre VPN. Vous pouvez configurer des routes statiques qui seront ajoutées dynamiquement lors de votre connexion :

Add-VpnConnectionRoute -ConnectionName "VPN" -DestinationPrefix 192.168.31.0/24 –PassThru

Cette méthode n’est activée qu’après la connexion VPN et est idéale pour accéder à un sous-réseau distant sans perturber votre réseau principal.

Liste, suppression et connexion des VPN

Afficher tous vos VPN est aussi simple que :

Get-VpnConnection

Pour vous déconnecter ou vous déconnecter, il suffit d’exécuter :

Remove-VpnConnection -Name "VPN_SSTP"

Ou connectez-vous à un profil enregistré avec :

rasdial "VPN_SSTP"

Et pour vérifier l’état de la connexion :

Get-VpnConnection | Select Name, ConnectionStatus
Attention : certains problèmes de VPN liés aux paramètres réseau Windows ou à la résolution DNS sont fréquents. Leur résolution peut nécessiter l’examen de cartes réseau spécifiques ou de règles de pare-feu, mais cet article devrait couvrir la plupart des besoins de gestion de VPN avec PowerShell.