Minimisation du bruit des réseaux Windows avec PowerShell

Minimisation du bruit des réseaux Windows avec PowerShellJ’ai déjà fait de nombreux billets sur la manière de minimiser le bruit des protocoles utilisés par les stations et les serveurs Windows. Je vous ai parlé de la manière de désactiver le protocole LLMNR. Tous ces hacks s’appliquent aussi bien à Windows 10 qu’à Windows Server 2012 R2.

A l a demande de Jimmy, je vous ai donc écrit un script PowerShell pour désactiver tous ces protocoles inutiles et bruyants. J’y ai ajouté NetBios over IP qui a été remplacé depuis Windows 2000 par CIFS pour l’authentification et le partage de fichiers (tcp/445, udp/445) et par le DNS pour la résolution de noms (udp/53).

Minimiser le bruit de votre machine Windows

J’ai mis quelques commentaires qui, je l’espère, vous permettront de comprendre.

#Disable NetBios Over Ip : tcp/139, udp/137, udp/138
$Path='HKLM:\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces'
Get-ChildItem -Path $Path|Select Name|ForEach{
    $Key=$_.Name.Replace("HKEY_LOCAL_MACHINE\","HKLM:")
    Set-Itemproperty -Path $Key -Name "NetbiosOptions" -value 0
}
#Disable LLMNR : udp/5355
$Path='HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient'
$Value = Get-ItemProperty -Path $Path -Name 'EnableMulticast' -ErrorAction SilentlyContinue
If($Value -eq $null)
{
    New-ItemProperty -path $Path -name 'EnableMulticast' -value 0 -PropertyType Dword
}
Else
{
    Set-Itemproperty -Path $Path -Name "EnableMulticast" -value 0
}
#Disable IPv6
$Path='HKLM:\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters'
$Value = Get-ItemProperty -Path $Path -Name 'DisabledComponents' -ErrorAction SilentlyContinue
If($Value -eq $null)
{
    New-ItemProperty -path $path -name 'DisabledComponents' -value 4294967295 -PropertyType Dword
}
Else
{
    Set-Itemproperty -Path $Path -Name "DisabledComponents" -value 4294967295
}
#Disable SSDP : udp/1900
$Path='HKLM:\SYSTEM\CurrentControlSet\services\SSDPSRV'
Set-Itemproperty -Path $Path -Name "Start" -value 4
#Disable UPnP : tcp/5000
$Path='HKLM:\SYSTEM\CurrentControlSet\services\upnphost'
Set-Itemproperty -Path $Path -Name "Start"-value 4
#Disable Discovery Provider Host
$Path='HKLM:\SYSTEM\CurrentControlSet\services\fdPHost'
Set-Itemproperty -Path $Path -Name "Start" -value 4
#Disable IPSec : Udp/500
$Path='HKLM:\SYSTEM\CurrentControlSet\services\PolicyAgent'
Set-Itemproperty -Path $Path -Name "Start" -value 4
$Path='HKLM:\SYSTEM\CurrentControlSet\services\IKEEXT'
Set-Itemproperty -Path $Path -Name "Start" -value 4
#Disable AutoProxy
$Path='HKLM:\SYSTEM\CurrentControlSet\services\WinHttpAutoProxySvc'
Set-Itemproperty -Path $Path -Name "Start" -value 4

Minimiser le bruit de toutes les machines du domaine Active Directory

La désactivation de NetBios over IP vous empêchera notamment l’échange de fichiers avec les vieux systèmes comme Windows 98 ou Windows NT4. 

Clear
$computers=Get-ADComputer -Filter * -Properties Name,DistinguishedName|Select Name,DistinguishedName |Where {$_.DistinguishedName -NotLike '*,OU=Domain Controllers,*'}
ForEach($computer in $computers)
{
    $ping=&{ping $computer.name -n 1 -w 200}
    If($ping -match 'perdus = 0')
    {
        $start=Invoke-Command -ComputerName $computer.Name -ScriptBlock{
            #Disable NetBios Over Ip : tcp/139, udp/137, udp/138
            $Path='HKLM:\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces'
            Get-ChildItem -Path $Path|Select Name|ForEach{
                $Key=$_.Name.Replace("HKEY_LOCAL_MACHINE\","HKLM:")
                Set-Itemproperty -Path $Key -Name "NetbiosOptions" -value 0
            }
            #Disable LLMNR : udp/5355
            $Path='HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient'
            $Value = Get-ItemProperty -Path $Path -Name 'EnableMulticast' -ErrorAction SilentlyContinue
            If($Value -eq $null)
            {
                New-ItemProperty -path $Path -name 'EnableMulticast' -value 0 -PropertyType Dword
            }
            Else
            {
                Set-Itemproperty -Path $Path -Name "EnableMulticast" -value 0
            }
            #Disable IPv6
            $Path='HKLM:\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters'
            $Value = Get-ItemProperty -Path $Path -Name 'DisabledComponents' -ErrorAction SilentlyContinue
            If($Value -eq $null)
            {
                New-ItemProperty -path $path -name 'DisabledComponents' -value 4294967295 -PropertyType Dword
            }
            Else
            {
                Set-Itemproperty -Path $Path -Name "DisabledComponents" -value 4294967295
            }
            #Disable SSDP : udp/1900
            $Path='HKLM:\SYSTEM\CurrentControlSet\services\SSDPSRV'
            Set-Itemproperty -Path $Path -Name "Start" -value 4
            #Disable UPnP : tcp/5000
            $Path='HKLM:\SYSTEM\CurrentControlSet\services\upnphost'
            Set-Itemproperty -Path $Path -Name "Start"-value 4
            #Disable Discovery Provider Host
            $Path='HKLM:\SYSTEM\CurrentControlSet\services\fdPHost'
            Set-Itemproperty -Path $Path -Name "Start" -value 4
            #Disable IPSec : Udp/500
            $Path='HKLM:\SYSTEM\CurrentControlSet\services\PolicyAgent'
            Set-Itemproperty -Path $Path -Name "Start" -value 4
            $Path='HKLM:\SYSTEM\CurrentControlSet\services\IKEEXT'
            Set-Itemproperty -Path $Path -Name "Start" -value 4
            #Disable AutoProxy
            $Path='HKLM:\SYSTEM\CurrentControlSet\services\WinHttpAutoProxySvc'
            Set-Itemproperty -Path $Path -Name "Start" -value 4
        }
    }
}

Enregistrer

Réseau  / Formateur Powershell PowerShell Réseau Windows 

Commentaires

Pas encore de commentaire.

Laisser un commentaire

(requis)

(requis)