Share via


ProxyCfg.exe, outil de configuration de proxy

Important

ProxyCfg.exe a été déconseillé depuis Windows Vista et Windows Server 2008. Il est remplacé par Netsh.exe (voir les commandes Netsh.exe).

Cette rubrique explique l’utilisation de l’outil de configuration proxy Microsoft Windows HTTP Services (WinHTTP)ProxyCfg.exe.

Il existe deux façons d’accéder aux serveurs HTTP et HTTPS (Secure Hypertext Transfer Protocol) via un proxy à l’aide de Microsoft Windows HTTP Services (WinHTTP). Tout d’abord, vous pouvez spécifier les paramètres de proxy à partir de votre application WinHTTP. Ensuite, vous pouvez spécifier les paramètres de proxy par défaut à partir de l’extérieur de votre application à l’aide de l’utilitaire de configuration du proxy situé dans le répertoire %windir%\system32.

Vous pouvez définir par programme les données proxy à partir de votre application ou de votre script. Si vous écrivez une application à l’aide de l’API WinHTTP, utilisez l’une des deux techniques suivantes pour modifier les paramètres de proxy.

  • Utilisez la fonction WinHttpOpen. Spécifiez le type d’accès dans le deuxième paramètre, le nom du proxy dans le troisième paramètre et une liste de contournement dans le quatrième paramètre. L’exemple suivant montre comment la fonction WinHttpOpen peut être utilisée pour définir des données proxy.

    hSession = WinHttpOpen( L"WinHTTP Example/1.0",  
                            WINHTTP_ACCESS_TYPE_NAMED_PROXY,
                            L"proxy_name", 
                            L"<local>", 
                            0);
    
  • Utilisez la fonction WinHttpSetOption. L’indicateur WINHTTP_OPTION_PROXY vous permet de spécifier les paramètres de proxy avec une structure WINHTTP_PROXY_INFO. L’exemple de code suivant montre comment la fonction WinHttpSetOption peut être utilisée pour définir des données proxy.

    WINHTTP_PROXY_INFO proxyInfo;
    proxyInfo.dwAccessType = WINHTTP_ACCESS_TYPE_NAMED_PROXY;
    proxyInfo.lpszProxy = L"proxy_name";
    proxyInfo.lpszProxyBypass = L"<local>";
    
    // Set the proxy information for this session.
    WinHttpSetOption( hSession, 
                      WINHTTP_OPTION_PROXY, 
                      &proxyInfo, 
                      sizeof(proxyInfo));
    

Si vous écrivez un script ou une application à l’aide de l’objet WinHttpRequest , utilisez la technique suivante pour modifier les paramètres de proxy.

  • Utilisez la méthode SetProxy. Spécifiez le type d’accès dans le premier paramètre, le nom du proxy dans le deuxième paramètre et une liste de contournement dans le troisième paramètre. L’exemple suivant montre comment la méthode SetProxy peut être utilisée dans le script pour définir des données proxy.

    WinHttpReq.SetProxy( HTTPREQUEST_PROXYSETTING_PROXY, 
                         "proxy_server:80", 
                         "*.microsoft.com");
    

Pour spécifier les paramètres par défaut et éliminer la nécessité d’utiliser la méthode SetProxy ou la fonction WinHttpSetOption, utilisez l’utilitaire de configuration du proxy. À l’aide de cet utilitaire, vous pouvez spécifier que votre application accède directement à un réseau, via un proxy ou via une combinaison d’accès direct et proxy en spécifiant une liste de contournement. Lorsque vous utilisez l’API WinHTTP, l’outil de configuration du proxy détermine uniquement les paramètres lorsque vous passez l’indicateur WINHTTP_ACCESS_TYPE_DEFAULT à l’API WinHttpOpen. L’objet WinHttpRequest utilise les paramètres de l’outil de configuration proxy par défaut.

Les paramètres de proxy pour WinHTTP ne sont pas les paramètres de proxy pour Microsoft Internet Explorer. Vous ne pouvez pas configurer les paramètres de proxy pour WinHTTP dans Microsoft Windows Panneau de configuration. L’utilisation de l’utilitaire de configuration du proxy WinHTTP ne modifie pas les paramètres que vous utilisez pour Internet Explorer.

Remarque

Si vous tentez d’ouvrir et d’envoyer une requête HTTP à l’aide de WinHTTP et que les paramètres du proxy sont incorrects, une erreur se produit.

Paramètres de ligne de commande

Le tableau suivant répertorie les paramètres de ligne de commande disponibles pour une utilisation avec l’outil `ProxyCfg.exe``.

Paramètre Description
Aucune Quand aucun paramètre n’est spécifié, les paramètres de proxy WinHTTP actuels sont affichés.
? Les informations d’aide s’affichent.
j Spécifie que les applications WinHTTP accèdent directement au réseau, sans proxy.
p Indique le serveur proxy. Vous pouvez également spécifier une liste facultative de serveurs accessibles sans proxy.
u Spécifie que les applications WinHTTP utilisent les paramètres de proxy de l’utilisateur actuel pour Internet Explorer. Ce paramètre ne fonctionne pas si Internet Explorer détecte automatiquement les paramètres de proxy, ou s’il utilise une URL de configuration automatique pour définir les informations du proxy.
i Spécifie que les applications WinHTTP utilisent les paramètres de proxy de l’utilisateur actuel pour Internet Explorer. Cela fonctionne uniquement lorsque ProxyCfg.exe n’a pas été utilisé précédemment. Si ProxyCfg.exe est installé, spécifiez que le paramètre de ligne de commande « u » utilise les paramètres manuels. Ce paramètre ne fonctionne pas si Internet Explorer détecte automatiquement les paramètres de proxy, ou s’il utilise une URL de configuration automatique pour définir les informations du proxy.

Vous pouvez spécifier des proxys dans une chaîne délimitée par un espace. Les listes de serveurs proxy peuvent contenir le numéro de port qui est utilisé pour accéder au proxy. Pour répertorier un proxy pour un protocole spécifique, la chaîne doit suivre le format, <protocol>=https://< proxy_name>. Les protocoles valides sont HTTP et HTTPS. Par exemple, pour répertorier un proxy HTTP, une chaîne valide est http=https://http_proxy_name:80, où http_proxy_name est le nom du serveur proxy et 80 est le numéro de port que vous devez utiliser pour accéder au proxy. Si le proxy utilise le numéro de port par défaut pour ce protocole, vous pouvez omettre le numéro de port. Si un nom de proxy est répertorié par lui-même, vous pouvez l’utiliser comme proxy par défaut pour tous les protocoles qui n’ont pas de proxy spécifié. Par exemple, http=https://http_proxy other_proxy utilise http_proxy pour toutes les opérations HTTP, tandis que le protocole HTTPS utilise le proxy nommé other_proxy.

Vous pouvez répertorier les noms d’hôtes ou adresses IP connus localement dans la liste de contournement du proxy. Cette liste peut contenir des caractères génériques, tels que « * », qui amènent l’application à contourner le serveur proxy pour les adresses qui correspondent au modèle spécifié, par exemple « * ».microsoft.com" ou « *.org ». Les caractères génériques carte doivent être les caractères les plus à gauche de la liste. Par exemple, « aaa.* » n’est pas pris en charge. Pour répertorier plusieurs adresses et noms d’hôtes, séparez-les par des espaces ou des points-virgules dans la chaîne de contournement de proxy. Si vous spéicifiez la macro <locale>, la fonction ignore les noms d’hôte qui ne contiennent pas de point.

Avertissement

Après l’exécution de Proxycfg.exe, vous ne pouvez pas restaurer les paramètres de proxy précédents. Toutefois, vous pouvez supprimer entièrement les paramètres du proxy.

Utilisation

Pour utiliser l’outil de configuration du proxy, ouvrez une fenêtre d’invite de commandes et exécutez l’utilitaire de configuration proxy avec les paramètres de ligne de commande appropriés. La section suivante fournit des exemples de syntaxe.

Exemple de syntaxe

Exemple 1 : Utiliser un proxy uniquement pour les ressources externes

Voici l’utilisation la plus courante pour Proxycfg.exe. Cette commande spécifie que les serveurs HTTP et HTTPS sont accessibles via le serveur proxy nommé   proxy_server », à l’exception des noms d’hôtes qui ne contiennent pas de période.

proxycfg -p proxy_server «< local> »

Exemple 2 : Utiliser un proxy pour toutes les ressources

L’exemple suivant spécifie que les serveurs HTTP et HTTPS sont accessibles via le serveur proxy nommé « proxy_server ». Aucune liste de contournement n’est spécifiée.

proxycfg -p proxy_server

Exemple 3 : Utiliser un autre proxy pour des ressources sécurisées

L’exemple suivant spécifie que les serveurs HTTP sont accessibles via le proxy http_proxy et les serveurs HTTPS sont accessibles via https_proxy. Les sites intranet locaux et tous les sites du domaine *.microsoft.com contournent le proxy.

proxycfg -p "http=http_proxy https=https_proxy" "<local>;*.microsoft.com"

Suppression de ProxyCfg.exe

Après avoir utilisé l’outil de configuration du proxy, vous ne pouvez pas restaurer vos paramètres de proxy d’origine. Toutefois, si nécessaire, vous pouvez supprimer les paramètres de Registre créés par l’utilitaire. Pour supprimer les entrées de Registre créées par ProxyCfg.exe, vous devez supprimer la valeur WinHttpSettings de la clé de Registre suivante.

HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft Corporation\Windows\CurrentVersion\Paramètres Internet\ Connexions\WinHttpSettings

La suppression de la valeur WinHttpSettings supprime toutes les configurations de proxy.

ProxyCfg.exe et authentification

L’utilitaire de configuration proxy définit la stratégie d’authentification par défaut. Étant donné que vous ne devez pas effectuer l’authentification NTLM avec des hôtes non approuvés, par défaut, l’authentification NTLM se produit automatiquement avec les hôtes de la liste de contournement du proxy. S’il n’existe aucun proxy, vous pouvez toujours utiliser ProxyCfg.exe pour spécifier une liste de contournement des hôtes que vous approuvez pour effectuer l’authentification NTLM. Un nom de proxy est obligatoire lors de l’utilisation de ProxyCfg.exe à cet effet, mais vous pouvez utiliser n’importe quelle chaîne valide à la place d’un nom de proxy réel.

Pour plus d’informations sur la stratégie d’ouverture de session automatique, consultez Stratégie d’ouverture de session automatique.