Je peux le faire manuellement en cliquant avec le bouton droit de la souris sur une connexion réseau, en ouvrant l'onglet Partage et en cliquant sur la case à cocher "Autoriser les autres utilisateurs du réseau à se connecter via la connexion Internet de cet ordinateur".
Maintenant, je dois automatiser cette tâche. Existe-t-il un outil de ligne de commande ou une applet de commande Powershell pour accomplir cela?
windows-7
internet-connection
powershell
utapyngo
la source
la source
Microsoft-Windows-SharedAccess
composant d'installation sans surveillance de Windows est si proche, mais il ne fonctionne que lors de l'installation de Windows! technet.microsoft.com/en-us/library/ff715511.aspxRéponses:
Voici une solution PowerShell pure (qui devrait être exécutée avec des privilèges d’administrateur):
Voir également cette question sur social.msdn.microsoft.com :
la source
[System.Runtime.Interopservices.Marshal]::ReleaseComObject(...)
.EnableSharing
renvoie cette exception, même si j'exécute PowerShell en tant qu'administrateur: Exception: Exception appelant "EnableSharing" avec un ou plusieurs arguments "1": "Un événement n'a pas pu appeler l'un des abonnés (exception de HRESULT: 0x80040201) "-> Une exception a été émise par la cible d'un appel. -> Un événement n'a pu invoquer aucun des abonnés (Exception de HRESULT: 0x80040201)regsvr32 hnetcfg.dll
tant qu'administrateur manuellement.J'ai créé un outil de ligne de commande simple pour cela.
Téléchargez et décompressez ou
git clone [email protected]:utapyngo/icsmanager.git
Construire en courant
build.cmd
Enregistrez la
HNetCfg
bibliothèque COM:regsvr32 hnetcfg.dll
(c'est une bibliothèque standard située à%WINDIR%\System32
)Utilisation en ligne de commande
Ouvrez l'invite de commande en tant qu'administrateur.
cd
dans leicsmanager
répertoire (ouicsmanager-master
si vous avez téléchargé le zip).Type
icsmanager
Cela devrait afficher les connexions réseau disponibles. Notez l'attribut GUID. Pour utiliser cet outil, vous devez avoir au moins deux connexions.
Type
icsmanager enable {GUID-OF-CONNECTION-TO-SHARE} {GUID-OF-HOME-CONNECTION}
Cela devrait permettre à ICS.
Utilisation de Powershell
Module d'importation:
Module d'importation IcsManager.dll
Liste des connexions réseau:
Get-NetworkConnections
Démarrer le partage de connexion Internet:
Activer-ICS "Connexion à partager" "Connexion à domicile"
Arrêter le partage de connexion Internet:
Désactiver-ICS
Avertissement: je n'ai pas encore testé l'outil. Utilisez à vos risques et périls. N'hésitez pas à ouvrir un problème sur GitHub si quelque chose ne fonctionne pas. Les demandes de tirage sont également les bienvenues.
la source
C:\Windows\System32\hnetcfg.dll
.regsvr32 hnetcfg.dll
. Et j'ai appris à proposhnetcfg.dll
de msdn.microsoft.com/en-us/library/windows/desktop/…À ma connaissance, la fonctionnalité de routage a été supprimée de Windows depuis Vista et n’est disponible que sous Windows Server.
Vous pouvez réactiver l’astuce suivante sur Internet
netsh routing
, que vous pouvez essayer à vos risques et périls. Je suggère d’abord les précautions habituelles, notamment la création d’un point de restauration du système.Exécuter à l'invite de commande (cmd) en tant qu'administrateur:
netsh add helper ipmontr.dll
netsh add helper ippromon.dll
Vous devrez peut-être également définir le service Routage et accès à distance sur Démarrage automatique.
Redémarrez avant d'essayer quoi que ce soit.
la source
The following helper DLL cannot be loaded: IPMONTR.DLL.
The following helper DLL cannot be loaded: IPPROMON.DLL.
Un ancien collègue à moi avait l'habitude de le faire via l'outil propre de la fenêtre, Windows. Comme je ne l'ai jamais fait moi-même, je peux vous conseiller de jeter un coup d'œil à la documentation de Microsoft NetSh .
Si je me souviens bien, c’était à peu près tout ce que l’on pouvait faire, mais cela a fonctionné à la fin ...
la source
netsh routing
Windows XP mais sous Windows 7, cette commande a été supprimée. C'est pourquoi je ne parle que de Windows 7.Ce qui suit devrait fonctionner
la source
netsh routing
Windows XP mais sous Windows 7, cette commande a été supprimée. C'est pourquoi je ne parle que de Windows 7.Malheureusement, il n'y a pas de telle commande cmd pour Windows 7 ou plus, j'ai donc utilisé cette fonction Visual Basic pour le faire:
Veuillez noter que "" "" est obligatoire. S'amuser.
la source
D'après ce que j'ai lu, si ceux qui ont posté disent que
netsh
cela ne fonctionne pas à partir de 7 ans et plus, c'est inexact. Maintenant, s’il s’agit strictement de "netsh routing
", vous avez peut-être raison, mais cela fonctionne. Je suis sur le point d’afficher le contenu d’un fichier de commandes que j’ai créé et qui fonctionne sous Windows 8.1. Au lieu d’obtenir les commentaires et les informations habituels, je vais essayer d’aider ceux qui disposent des informations complètes.Tout d'abord, vous devez vous assurer que la connexion que vous allez partager est configurée pour réellement partager la connexion. Ce lien ici devrait vous aider pour cela:
http://windows.microsoft.com/en-us/windows/set-internet-connection-sharing#1TC=windows-7
À ma connaissance, cela devrait fonctionner pour Windows 7 et 8.
Maintenant que le sujet portait sur une solution de ligne de commande, il s'agit du contenu du fichier de commandes décrivant la procédure d'obtention d'un adaptateur sans fil virtuel configuré et prêt à l'emploi.
Une fois créé, vous devrez peut-être suivre les instructions ci-dessus et vous assurer de partager la connexion source avec le nouvel adaptateur virtuel créé, visible par vos périphériques sans fil.
Fichier .bat de partage de connexion:
Je serai plus qu'heureux de répondre à vos questions à ce sujet car il y aura des situations uniques et j'aimerais vous aider car j'ai dû reconstituer ce que j'ai trouvé ci-dessus.
Mais pour mettre cela en perspective, cela fonctionne sous Windows 8.1 en utilisant une connexion Ethernet dans un ordinateur portable partageant sa connexion à l'adaptateur virtuel. Cela peut aussi bien fonctionner si vous essayez de partager une connexion sans fil source.
la source