Configurer un proxy Windows depuis un script Powershell

Testé sous Windows 10

Autoriser l’exécution des script locaux PowerShell

Dans l’interpréteur PowerShell, lancé en tant qu’administrateur, entrez la commande suivante afin de changer de mode et d’autoriser l’exécution de scripts locaux :

Set-ExecutionPolicy RemoteSigned

Pour voir les paramètres de sécurité implémentés dans PowerShell et vérifier la modification que vous venez d’effectuer.

Get-ExecutionPolicy

Avant mon intervention, ils sont Restrited.

Pour exécuter l’interpréteur PowerShell en tant qu’administrateur, tapez powershell dans la zone de recherche, clic droit sur Windows PowerShell, clic sur Exécuter en tant qu’administrateur.

Pour avoir plus d’information, voir le site :

https://syskb.com/comment-executer-un-script-en-powershell/

– Comment exécuter un script PowerShell

– Modifier les paramètres de sécurité de Powershell

Le script

Mon script PowerShell que j’ai nommé Powershell_proxy.ps1. Les scripts PowerShell ont l’extension .ps1. On précède les commentaires par #. Vous pouvez utiliser le Bloc-notes Windows, notepad.exe, pour créer votre script.

J’ai trouvé ce script sur le site : http://woshub.com/using-powershell-behind-a-proxy/#h2_5

Vous avez juste à adapter l’adresse IP de votre serveur et le numéro du port.

Les commandes PowerShell sont appelées des commandlets pour command applets en anglais. Dans l’interface en ligne de commande elles sont abrégées en cmdlets.

Vous pouvez dans cet exemple définir les paramètres de proxy pour l’utilisateur Windows actuel à l’aide de PowerShell. La fonction PowerShell suivante vous permet de modifier les paramètres de proxy, mais elle vérifie d’abord la disponibilité du serveur proxy et la réponse du port sur celui-ci à l’aide de l’applet de commande Test-NetConnection. Le cmdlet Set-ItemProperty permet de modifier l’un des paramètres d’une clé de registre.

#http://woshub.com/using-powershell-behind-a-proxy/#h2_5

#Pour exécuter le script depuis le dossier où il se trouve powershell .\Powershell_proxy.ps1

function Set-Proxy ( $server,$port)

{

If ((Test-NetConnection -ComputerName $server -Port $port).TcpTestSucceeded) {

Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -name ProxyServer -Value "$($server):$($port)"

Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -name ProxyEnable -Value 1

}

Else {

Write-Error -Message "Invalid proxy server address or port:  $($server):$($port)"

}

}




Set-Proxy 192.168.1.100 3128

Pour exécuter le script depuis l’invite de commande ou un fichier batch (.bat) en étant positionné dans le répertoire où il se trouve :

powershell .\Powershell_proxy.ps1

Le . symbolise le répertoire courant, l’antislash est utilisé comme séparateur (sous Linux et pour les URL c’est le slash). Vous pouvez bien entendu nommer votre script autrement, mais toujours avec l’extension .ps1. On peut aussi utiliser le chemin absolu du script, c’est-à-dire depuis la racine, par exemple c:\monscript.ps1

J’ai créé précédemment un article intitulé « Lancer un batch lorsqu’une connexion câblée au réseau est détectée sous Windows 10 », on peut avec ce type de procédure lancer, non seulement un .bat, mais aussi un script PowerShell ou un programme.

Dans l’article « Configurer le serveur proxy sous Windows » vous verrez comment configurer manuellement ou vérifier les paramètres de votre serveur proxy (adresse IP et port) sous Windows 7, 8.1 Pro et 10.

Voilà pour ce premier article consacré au PowerShell, si vous avez des questions, des idées, n’hésitez pas à laisser un commentaire.

Dominique