A
AlexandreRenoux1
Bonjour,
j'ai crée un petit script qui peux vous aider à réglé le soucis de Internet Connection Sharing. Il faut le mettre en tache planifier au démarrage,
il vous faudra modifier le nom de l'interface à match, ici je partage une connexion VPN.
#Get des info sur la carte reseau physique et viruel (VPN)
$MainAdapter = Get-NetAdapter | Where-Object {$_.InterfaceDescription -match 'Realtek'}
$VpnAdapter = Get-NetAdapter | Where-Object {$_.InterfaceDescription -match 'TAP'}
#Récuperation des elements utile pour la suite
$id_carte_physique = $MainAdapter.ifIndex
$alias_carte_physique = $MainAdapter.InterfaceAlias
$alias_carte_virtuel = $VpnAdapter.InterfaceAlias
#Recuperation de l'adresse IP/GW de la carte physique
$ip_physique = (Get-NetIPAddress -InterfaceIndex $id_carte_physique).IPAddress
$GW_physique = (Get-NetIPConfiguration -InterfaceIndex $id_carte_physique).IPv4DefaultGateway.NextHop
#Inscription de la dll pour l'objet HNetCfg.HNetShare
regsvr32 hnetcfg.dll /s
#Reset ICS
$m = New-Object -ComObject HNetCfg.HNetShare
if ($m.EnumEveryConnection -ne $null) {
$pubConn = $m.EnumEveryConnection | where {$m.NetConnectionProps.Invoke($_).Name -eq $alias_carte_physique}
$privConn = $m.EnumEveryConnection | where {$m.NetConnectionProps.Invoke($_).Name -eq $alias_carte_virtuel}
$pubConnConf = $m.INetSharingConfigurationForINetConnection.Invoke($pubConn)
$privConnConf = $m.INetSharingConfigurationForINetConnection.Invoke($privConn)
$pubConnConf.DisableSharing()
$privConnConf.DisableSharing()
$pubConnConf.EnableSharing(1)
$privConnConf.EnableSharing(0)
}
#Suppresion de l'adresse ICS par défaut
Remove-NetIPAddress –InterfaceIndex $id_carte_physique –IPAddress 192.168.137.1 –PrefixLength 24 -confirm:$false
#Assignation IP/GW/DNS Physique
New-NetIPAddress –InterfaceIndex $id_carte_physique –IPAddress $ip_physique –PrefixLength 24 –DefaultGateway 172.20.19.1
Set-DnsClientServerAddress –InterfaceIndex $id_carte_physique -ServerAddresses $GW_physique -confirm:$false
#Suppression des doublons des regles de firewall
$all_firewall_rules = Get-NetFirewallRule
$Array_rules = @()
foreach ($firewall_rule in $all_firewall_rules)
{
$unique = $true
foreach($rule in $Array_rules)
{
if($firewall_rule.DisplayName -eq $rule.DisplayName)
{
if($firewall_rule.Profiles -eq $rule.Profiles)
{
$unique = $false
}
}
CS
}
if($unique)
{
$temp_rules = New-Object System.Object
$temp_rules | Add-Member -type NoteProperty -name DisplayName -value $firewall_rule.DisplayName
$temp_rules | Add-Member -type NoteProperty -name Profiles -value $firewall_rule.Profiles
$Array_rules += $temp_rules
}
else
{
Remove-NetFirewallRule -name $firewall_rule.Name
write-host "Suppresion " $firewall_rule.displayName
}
}
Il désactive et reactive un partage réseaux, assigne l'IP et supprime les doublons du firewall.
Bye
Continue reading...
j'ai crée un petit script qui peux vous aider à réglé le soucis de Internet Connection Sharing. Il faut le mettre en tache planifier au démarrage,
il vous faudra modifier le nom de l'interface à match, ici je partage une connexion VPN.
#Get des info sur la carte reseau physique et viruel (VPN)
$MainAdapter = Get-NetAdapter | Where-Object {$_.InterfaceDescription -match 'Realtek'}
$VpnAdapter = Get-NetAdapter | Where-Object {$_.InterfaceDescription -match 'TAP'}
#Récuperation des elements utile pour la suite
$id_carte_physique = $MainAdapter.ifIndex
$alias_carte_physique = $MainAdapter.InterfaceAlias
$alias_carte_virtuel = $VpnAdapter.InterfaceAlias
#Recuperation de l'adresse IP/GW de la carte physique
$ip_physique = (Get-NetIPAddress -InterfaceIndex $id_carte_physique).IPAddress
$GW_physique = (Get-NetIPConfiguration -InterfaceIndex $id_carte_physique).IPv4DefaultGateway.NextHop
#Inscription de la dll pour l'objet HNetCfg.HNetShare
regsvr32 hnetcfg.dll /s
#Reset ICS
$m = New-Object -ComObject HNetCfg.HNetShare
if ($m.EnumEveryConnection -ne $null) {
$pubConn = $m.EnumEveryConnection | where {$m.NetConnectionProps.Invoke($_).Name -eq $alias_carte_physique}
$privConn = $m.EnumEveryConnection | where {$m.NetConnectionProps.Invoke($_).Name -eq $alias_carte_virtuel}
$pubConnConf = $m.INetSharingConfigurationForINetConnection.Invoke($pubConn)
$privConnConf = $m.INetSharingConfigurationForINetConnection.Invoke($privConn)
$pubConnConf.DisableSharing()
$privConnConf.DisableSharing()
$pubConnConf.EnableSharing(1)
$privConnConf.EnableSharing(0)
}
#Suppresion de l'adresse ICS par défaut
Remove-NetIPAddress –InterfaceIndex $id_carte_physique –IPAddress 192.168.137.1 –PrefixLength 24 -confirm:$false
#Assignation IP/GW/DNS Physique
New-NetIPAddress –InterfaceIndex $id_carte_physique –IPAddress $ip_physique –PrefixLength 24 –DefaultGateway 172.20.19.1
Set-DnsClientServerAddress –InterfaceIndex $id_carte_physique -ServerAddresses $GW_physique -confirm:$false
#Suppression des doublons des regles de firewall
$all_firewall_rules = Get-NetFirewallRule
$Array_rules = @()
foreach ($firewall_rule in $all_firewall_rules)
{
$unique = $true
foreach($rule in $Array_rules)
{
if($firewall_rule.DisplayName -eq $rule.DisplayName)
{
if($firewall_rule.Profiles -eq $rule.Profiles)
{
$unique = $false
}
}
CS
}
if($unique)
{
$temp_rules = New-Object System.Object
$temp_rules | Add-Member -type NoteProperty -name DisplayName -value $firewall_rule.DisplayName
$temp_rules | Add-Member -type NoteProperty -name Profiles -value $firewall_rule.Profiles
$Array_rules += $temp_rules
}
else
{
Remove-NetFirewallRule -name $firewall_rule.Name
write-host "Suppresion " $firewall_rule.displayName
}
}
Il désactive et reactive un partage réseaux, assigne l'IP et supprime les doublons du firewall.
Bye
Continue reading...