Para fazer isso manualmente, clique com o botão direito do mouse em uma conexão de rede, abra a guia Compartilhamento e clique na caixa de seleção "Permitir que outros usuários da rede se conectem através da conexão com a Internet deste computador".
Agora eu preciso automatizar esta tarefa. Existe uma ferramenta de linha de comando ou um cmdlet do Powershell para fazer isso?
windows-7
internet-connection
powershell
utapyngo
fonte
fonte
Microsoft-Windows-SharedAccess
componente de instalação autônoma do Windows está muito próximo, mas funciona apenas na instalação do Windows! technet.microsoft.com/pt-br/library/ff715511.aspxRespostas:
Aqui está uma solução pura do PowerShell (deve ser executada com privilégios administrativos):
Veja também esta pergunta em social.msdn.microsoft.com :
fonte
[System.Runtime.Interopservices.Marshal]::ReleaseComObject(...)
polvilhado no.EnableSharing
está lançando essa exceção, mesmo que eu esteja executando o PowerShell como Administrador: Exceção: exceção chamando "EnableSharing" com argumento "1": "Um evento não pôde chamar nenhum dos assinantes (Exceção de HRESULT: 0x80040201) "-> A exceção foi lançada pelo destino de uma chamada. -> Um evento não pôde chamar qualquer um dos assinantes (Exceção de HRESULT: 0x80040201)regsvr32 hnetcfg.dll
como administrador manualmente.Eu criei uma ferramenta de linha de comando simples para isso.
Faça o download e descompacte ou
git clone [email protected]:utapyngo/icsmanager.git
Construir executando
build.cmd
Registre a
HNetCfg
biblioteca COM:regsvr32 hnetcfg.dll
(é uma biblioteca padrão localizada em%WINDIR%\System32
)Uso da linha de comando
Abra o prompt da linha de comando como administrador
cd
para oicsmanager
diretório (ouicsmanager-master
se você baixou o zip).Tipo
icsmanager
Isso deve exibir as conexões de rede disponíveis. Observe o atributo GUID. Para usar esta ferramenta, você precisa ter pelo menos duas conexões.
Tipo
icsmanager enable {GUID-OF-CONNECTION-TO-SHARE} {GUID-OF-HOME-CONNECTION}
Isso deve ativar o ICS.
Uso do PowerShell
Módulo de importação:
Import-Module IcsManager.dll
Listar conexões de rede:
Get-NetworkConnections
Inicie o compartilhamento de conexão com a Internet:
Ative o ICS "Conexão para compartilhar" "Conexão doméstica"
Pare o compartilhamento de conexão com a Internet:
Desativar-ICS
Isenção de responsabilidade: ainda não testei a ferramenta. Use-o por sua conta e risco. Sinta-se livre para abrir um problema no GitHub se algo não funcionar. Solicitações pull também são bem-vindas.
fonte
C:\Windows\System32\hnetcfg.dll
.regsvr32 hnetcfg.dll
. E eu aprendi sobrehnetcfg.dll
em msdn.microsoft.com/en-us/library/windows/desktop/…Pelo meu entendimento, o recurso de roteamento foi removido do Windows desde o Vista e só está disponível agora no Windows Server.
O truque a seguir pode ser encontrado na Internet para reativar
netsh routing
, que você pode tentar por seu próprio risco. Sugiro primeiro as precauções usuais, incluindo a criação de um ponto de restauração do sistema.Execute no prompt de comando (cmd) como administrador:
netsh add helper ipmontr.dll
netsh add helper ippromon.dll
Também pode ser necessário definir o serviço de roteamento e acesso remoto para inicialização automática.
Reinicie antes de tentar qualquer coisa.
fonte
The following helper DLL cannot be loaded: IPMONTR.DLL.
The following helper DLL cannot be loaded: IPPROMON.DLL.
Um ex-colega meu costumava fazer isso através do netsh da própria ferramenta do Windows. Como eu nunca fiz isso sozinho, posso aconselhá-lo a dar uma olhada na documentação do Microsoft netsh .
Como eu me lembro, era praticamente uma pena e muitas chamadas netsh eram necessárias, mas funcionou no final ...
fonte
netsh routing
no Windows XP, mas no Windows 7 eles removeram esse comando. É por isso que eu só estou perguntando sobre o Windows 7.O seguinte deve funcionar
fonte
netsh routing
no Windows XP, mas no Windows 7 eles removeram esse comando. É por isso que eu estou apenas perguntando sobre o Windows 7.Infelizmente, não existe esse comando cmd para o Windows 7 ou mais, então usei esta função do Visual Basic para fazer isso:
Por favor, note que "" "" é necessário. Diverta-se.
fonte
Com base no que eu li, se os que postaram disseram
netsh
que não funcionam a partir das 7 e acima, isso está incorreto. Agora, se for estritamente sobre "netsh routing
", acho que você pode estar certo, mas isso funciona - estou prestes a mostrar o conteúdo de um arquivo em lotes que criei para o Windows 8.1. Em vez de obter os comentários e informações usuais, tentarei ajudar aqueles com todas as informações.Primeiro, você precisa garantir que a conexão que você compartilhará esteja configurada para realmente compartilhar a conexão. Este link aqui deve ajudar você a:
http://windows.microsoft.com/en-us/windows/set-internet-connection-sharing#1TC=windows-7
Que eu saiba, acho que isso deve funcionar para o Windows 7 e 8.
Agora, como o tópico era sobre uma solução de linha de comando, este é o conteúdo do arquivo em lotes de como eu configuro um adaptador sem fio virtual e pronto para uso.
Depois de criada, talvez você precise usar as instruções acima e verifique se está compartilhando a conexão de origem com o adaptador virtual recém-criado que será visto pelos seus dispositivos sem fio.
Arquivo .bat de compartilhamento de conexão:
Ficarei feliz em responder perguntas sobre isso, porque haverá algumas situações únicas e gostaria de ajudar, pois tive que juntar o que encontrei acima.
Mas, para trazer isso à perspectiva, isso funciona no Windows 8.1 usando uma conexão Ethernet em um laptop, compartilhando sua conexão com o adaptador virtual. Pode funcionar tão bem se você estiver tentando compartilhar uma conexão sem fio de origem.
fonte