Puedo hacerlo manualmente haciendo clic derecho en una conexión de red, abriendo la pestaña Compartir y haciendo clic en la casilla de verificación "Permitir que otros usuarios de la red se conecten a través de la conexión a Internet de esta computadora".
Ahora necesito automatizar esta tarea. ¿Existe una herramienta de línea de comandos o un cmdlet Powershell para lograr esto?
windows-7
internet-connection
powershell
utapyngo
fuente
fuente
Microsoft-Windows-SharedAccess
componente de instalación desatendida de Windows está muy cerca, ¡pero solo funciona en la instalación de Windows! technet.microsoft.com/en-us/library/ff715511.aspxRespuestas:
Aquí hay una solución pura de PowerShell (debe ejecutarse con privilegios administrativos):
Consulte también esta pregunta en social.msdn.microsoft.com :
fuente
[System.Runtime.Interopservices.Marshal]::ReleaseComObject(...)
espolvoreado.EnableSharing
está lanzando esta excepción, aunque estoy ejecutando PowerShell como Administrador: Excepción: Excepción llamando a "EnableSharing" con "1" argumento (s): "Un evento no pudo invocar a ninguno de los suscriptores (Excepción de HRESULT: 0x80040201) "-> El destino de una invocación ha lanzado una excepción. -> Un evento no pudo invocar a ninguno de los suscriptores (Excepción de HRESULT: 0x80040201)regsvr32 hnetcfg.dll
como administrador manualmente.He creado una herramienta de línea de comando simple para esto.
Descargar y descomprimir o
git clone [email protected]:utapyngo/icsmanager.git
Construir corriendo
build.cmd
Registre la
HNetCfg
biblioteca COM:regsvr32 hnetcfg.dll
(es una biblioteca estándar ubicada en%WINDIR%\System32
)Uso de la línea de comandos
Abra la línea de comandos como administrador
cd
alicsmanager
directorio (oicsmanager-master
si descargaste zip).Tipo
icsmanager
Esto debería mostrar las conexiones de red disponibles. Observe el atributo GUID. Para utilizar esta herramienta, debe tener al menos dos conexiones.
Tipo
icsmanager enable {GUID-OF-CONNECTION-TO-SHARE} {GUID-OF-HOME-CONNECTION}
Esto debería habilitar ICS.
Uso de Powershell
Módulo de importación:
Import-Module IcsManager.dll
Lista de conexiones de red:
Get-NetworkConnections
Iniciar conexión compartida a Internet:
Enable-ICS "Conexión para compartir" "Conexión de inicio"
Detener la conexión compartida a Internet:
Disable-ICS
Descargo de responsabilidad: aún no probé la herramienta. Úselo bajo su propio riesgo. No dude en abrir un problema en GitHub si algo no funciona. Las solicitudes de extracción también son bienvenidas.
fuente
C:\Windows\System32\hnetcfg.dll
.regsvr32 hnetcfg.dll
. Y lo aprendíhnetcfg.dll
en msdn.microsoft.com/en-us/library/windows/desktop/…Según tengo entendido, la capacidad de enrutamiento se eliminó de Windows desde Vista y ahora solo está disponible en Windows Server.
Puede encontrar el siguiente truco en Internet para volver a habilitarlo
netsh routing
, que puede probar bajo su propio riesgo. Sugiero primero las precauciones habituales, incluida la creación de un punto de restauración del sistema.Ejecutar en el símbolo del sistema (cmd) como administrador:
netsh add helper ipmontr.dll
netsh add helper ippromon.dll
Es posible que también deba configurar el Servicio de enrutamiento y acceso remoto en Inicio automático.
Reinicia antes de intentar cualquier cosa.
fuente
The following helper DLL cannot be loaded: IPMONTR.DLL.
The following helper DLL cannot be loaded: IPPROMON.DLL.
Un antiguo colega mío solía hacerlo a través de la herramienta netsh de Windows. Como nunca he hecho esto yo mismo, puedo aconsejarle que eche un vistazo a la documentación de Microsoft Netsh .
Como puedo recordar, fue una lástima y muchas llamadas netsh donde era necesario hacerlo, pero al final funcionó ...
fuente
netsh routing
Windows XP, pero en Windows 7 han eliminado ese comando. Es por eso que solo estoy preguntando sobre Windows 7.Lo siguiente debería funcionar
fuente
netsh routing
Windows XP, pero en Windows 7 han eliminado ese comando. Es por eso que solo estoy preguntando sobre Windows 7.Desafortunadamente, no existe dicho comando cmd para Windows 7 o más, así que utilicé esta función de Visual Basic para hacerlo:
Tenga en cuenta que se requiere "" "". Que te diviertas.
fuente
Según lo que he leído, si los que han publicado dicen
netsh
que no funciona a partir de las 7 en adelante, eso es incorrecto. Ahora, si se trata estrictamente de "netsh routing
", supongo que podría estar en lo cierto, pero esto funciona. Estoy a punto de mostrar el contenido de un archivo por lotes que he creado que funciona en Windows 8.1. En lugar de obtener los comentarios habituales y piezas de información, voy a tratar de ayudar a aquellos con la información completa.Primero, debe asegurarse de que la conexión que compartirá esté configurada para compartir realmente la conexión. Este enlace aquí debería ayudarlo a eso:
http://windows.microsoft.com/en-us/windows/set-internet-connection-sharing#1TC=windows-7
Que yo sepa, creo que esto debería funcionar para Windows 7 y 8.
Ahora, dado que el tema era sobre una solución de línea de comandos, este es el contenido del archivo por lotes de cómo configuro y preparo un adaptador inalámbrico virtual.
Una vez creado, es posible que deba seguir las instrucciones anteriores y asegurarse de compartir la conexión de origen con el adaptador virtual recién creado que verán sus dispositivos inalámbricos.
Conexión para compartir el archivo .bat:
Estaré más que feliz de responder preguntas sobre esto porque habrá algunas situaciones únicas y me gustaría ayudar ya que tuve que reconstruir lo que encontré arriba.
Pero para llevar esto a la perspectiva, esto funciona en Windows 8.1 usando una conexión Ethernet en una computadora portátil que comparte su conexión con el adaptador virtual. Puede funcionar igual de bien si está tratando de compartir una conexión inalámbrica de origen.
fuente