Obtenga configuración de proxy en PowerShell [3 formas]
1. Introducción
En entornos donde el acceso a Internet se controla a través de un proxy, los scripts de PowerShell a menudo necesitan conocer esta configuración para funcionar correctamente. Este artículo lo guiará a través de diferentes métodos para obtener la configuración del proxy mediante PowerShell, centrándose en la dirección del proxy, el puerto y su estado operativo.
2. Usando la clase Net.WebProxy
La clase Net.WebProxy de .NET Framework es un método sencillo para obtener la configuración de proxy predeterminada del sistema.
Usando la clase Net.WebProxy:
$proxy = [System.Net.WebProxy]::GetDefaultProxy()
"Address: " + $proxy.Address
"Bypass On Local: " + $proxy.BypassProxyOnLocalAquí,
[System.Net.WebProxy]::GetDefaultProxy(): recupera la configuración de proxy predeterminada.
$proxy.Address: muestra la URI del servidor proxy.
$proxy.BypassProxyOnLocal: Indica si las direcciones locales omiten el proxy.
La configuración y la información obtenida a través de Net.WebProxy son relevantes para las aplicaciones que utilizan el marco .NET. Es posible que no reflejen las configuraciones de proxy utilizadas por aplicaciones o servicios que no son .NET.
3. Usando el comando netsh
netsh (Network Shell) es la herramienta de línea de comandos en Windows, utilizada para comunicarse con diferentes configuraciones relacionadas con la red.
Usemos el comando netsh para obtener la configuración del proxy:
Utilice el comando netsh:
netsh winhttp show proxyPRODUCCIÓN :
Current WinHTTP proxy settings:
Proxy Server(s) : 10.0.0.21:8080
Bypass List : (none)En máquinas con Windows, el comando anterior es útil para verificar la configuración actual del proxy y es beneficioso para verificar la configuración del proxy y solucionar problemas de conectividad de red.
El winhttp especificó el contexto para el netsh, lo que indica que deseamos trabajar con la configuración de los servicios HTTP de Windows (configuración de WinHTTP). show proxy es el comando particular dentro del contexto WinHTTP, que muestra la configuración actual del proxy en la consola de PowerShell.
Después de ejecutar este comando, obtuvimos el servidor proxy actual, el número de puerto y cualquier lista de omisión que se haya configurado (consulte el resultado anterior).
Es importante tener en cuenta que netsh winhttp show proxy no muestra la configuración de proxy configurada para un usuario en su navegador web (como Internet Explorer, Chrome o Firefox). Esas configuraciones son específicas del usuario y se almacenan por separado de la configuración de WinHTTP.
4. Acceder a la configuración del proxy de Internet Explorer
Acceder a la configuración del proxy de Internet Explorer implica consultar el Registro de Windows para conocer la configuración del proxy establecida específicamente para Internet Explorer (IE). Este enfoque se basa en el hecho de que muchas aplicaciones de Windows, incluidos algunos sistemas antiguos o heredados, utilizan la configuración de proxy definida en Internet Explorer.
Utilice el cmdlet Get-ItemProperty:
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" |
Select ProxyEnable, ProxyServerPRODUCCIÓN :
ProxyEnable ProxyServer
----------- -----------
1 10.0.0.21:8080El código anterior obtuvo la configuración del proxy del registro de Windows. ¿Cómo? En este ejemplo, utilizamos el cmdlet Get-ItemProperty para obtener las propiedades del elemento especificado. En nuestro caso, fue la clave de registro especificada mediante el parámetro -Path.
En la ruta de la clave de registro, HKCU indica la colmena HKEY_CURRENT_USER en el registro de Windows. Esta clave de registro contiene Configuración de Internet, particularmente la configuración de proxy para el usuario actual. Canalizamos la salida del cmdlet Get-ItemProperty al cmdlet Select para elegir las propiedades ProxyEnable y ProxyServer con valores correspondientes.
ProxyEnable muestra el estado del proxy, ya sea que esté habilitado o no. Si el valor de la propiedad ProxyEnable es 1, significa que el proxy está habilitado. Mientras que el valor de 0 para esta propiedad representa que el proxy no está habilitado. La propiedad ProxyServer contiene los detalles relacionados con el servidor proxy como Server_IP:Port.
El cmdlet
Selectes un alias del cmdletSelect-Objecten PowerShell.
5. Usando la clase WebRequest
Este método implica crear una solicitud web para extraer la configuración del proxy usando la clase WebRequest.
Usando la clase WebRequest:
$request = [System.Net.WebRequest]::Create("http://www.example.com")
$proxy = $request.Proxy
if ($null -ne $proxy) {
"Proxy URI: " + $proxy.GetProxy($request.RequestUri).ToString()
} else {
"No proxy"
}WebRequest: crea un objeto para una URL específica.
$request.Proxy: recupera el proxy utilizado por esta solicitud.
GetProxy( $request.RequestUri).ToString(): genera el URI del proxy.
6. Usando la configuración de Windows
Navegue hasta Configuración de Windows > Red e Internet > Proxy y vea los detalles sobre el servidor proxy; comprueba la siguiente captura de pantalla.
También podemos usar
chrome://net-internals/#proxyen la barra de direcciones de Google y hacer clic en Entrar.
7. Conclusión
Exploramos cuatro métodos para obtener configuraciones de proxy en PowerShell, atendiendo a diversas configuraciones y requisitos de red.
Estos métodos van desde usar clases de .NET Framework, consultar el Registro de Windows hasta ejecutar comandos del sistema como netsh. Cada técnica ofrece una manera confiable de garantizar que los scripts de PowerShell puedan identificar y utilizar correctamente la configuración de proxy en un entorno de red.

