Désactiver NetBIOS over IP sous Windows

Désactiver NetBIOS over IP sous WindowsNetBIOS over IP – ou NetBT – a été conçu en 1987 par Microsoft à la demande d’IBM pour permettre le partage de données entre des machines équipées de systèmes d’exploitation OS/2. NetBEUI, son ancêtre, était limité à 255 machines. Non routable, il ne permettait pas d’interconnecter des réseaux.

Puis très vite, Microsoft l’a implémenté dans Windows 3.1 en 1992, puis dans Windows NT 3.1 en 1993. 35 années plus tard, la plupart des administrateurs réseau et système, contre les règles de sécurité élémentaires, laissent ce protocole actif sur les ordinateurs de leur parc informatique. C’est de mon point de vue une faute, alors que, depuis Windows 2000, Microsoft a remplacé NetBIOS over IP par CIFS  pour l’authentification et l’échange de données,  DNS pour la résolution de noms. Autrement dit, les ports TCP/139 et UDP/138 ont été remplacés par TCP/445 et UDP/445 ; l’UDP/137 par l’UDP/53 !

La seule raison, qui peut vous contraindre à maintenir de manière circonstanciée et limitée le protocole NetBIOS over IP dans vos infrastructures informatique, est d’avoir à communiquer avec d’anciennes imprimantes ou systèmes de supervision associés à des équipements très onéreux. Grâce au pare-feu équipant Windows, vous pouvez restreindre la communication NetBT  avec ces anciens équipements au travers de règles associant leurs adresses IP aux ports utilisés.

Désactiver NetBIOS over IP en PowerShell

Vous pouvez envoyer ce script PowerShell au niveau des stratégies locales avec gpedit.msc ou par GPO à l’aide de la console gpmc.msc, au travers d’un script de démarrage ou d’arrêt de vos systèmes Windows

$Path='HKLM:\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces' 
Get-ChildItem -Path $Path|Select Name|ForEach{
     $Key=$_.Name.Replace("HKEY_LOCAL_MACHINE\","HKLM:")     
     $key
     Set-Itemproperty -Path $Key -Name "NetbiosOptions" -value 2
}

Je vous conseille cette écriture :

$adapters=Get-WmiObject -Class win32_networkadapterconfiguration
$adapters
Foreach ($adapter in $adapters){
  $adapter.settcpipnetbios(2)
}

Désactiver NetBIOS over IP en ligne de commande

Sous l’interpréteur Windows cmd.exe, vous pouvez utiliser la commande wmic.exe. Là encore, cette commande peut être exécutée au travers d’un script de démarrage ou d’arrêt du système Windows, soit par stratégie locale ou par GPO.

C:\Windows\System32\wbem\wmic nicconfig where `(TcpipNetbiosOptions != Null and TcpipNetbiosOptions!=2`) call SetTcpipNetbios 2

La commande peut être exécutée en PowerShell :

&{C:\Windows\System32\wbem\wmic nicconfig where `(TcpipNetbiosOptions != Null and TcpipNetbiosOptions!=2`) call SetTcpipNetbios 2}

Réseau /