Disable NetBIOS
Paquet d’installation silencieuse pour Disable NetBIOS
14
System and network
System and network
tis-disable-netbios
Objectif
Désactivation de NetBIOS sur les interfaces réseau.
Certaines solutions VPN nécessitent toutefois NetBIOS ou peuvent être perturbées par sa désactivation. Pour cette raison, un adaptateur VPN spécifique peut être exclu du traitement en modifiant la partie VPN_NAME = "NAME_VPN_ADAPTER" .
"""
Custom name of VPN adapter
Enter the name of the network adapter concerned:
ex: Get-NetAdapter | Select-Object InterfaceDescription
"""
VPN_NAME = "NAME_VPN_ADAPTER"
Fonctionnement
Le script agit sur les interfaces réseau ayant une configuration IP active (IPEnabled=True) via WMI et désactive NetBIOS sur celles-ci.
Utilisation
Il est possible d'indiquer une exception en renseignant le nom de l’interface réseau à ignorer. (Si VPN_NAME correspond à une partie du nom de l’interface, celle-ci sera ignorée par le script.)
- package: tis-disable-netbios
- name: Disable NetBIOS
- version: 14
- categories: System and network
- maintainer: WAPT Team,Tranquil IT
- locale: all
- target_os: windows
- architecture: all
- signature_date:
- size: 8.73 Ko
package : tis-disable-netbios
version : 14
architecture : all
section : base
priority : optional
name : Disable NetBIOS
categories : System and network
maintainer : WAPT Team,Tranquil IT
description : Disable netbios on all interfaces
depends :
conflicts :
maturity : PROD
locale : all
target_os : windows
min_wapt_version :
sources :
installed_size :
impacted_process :
description_fr : Désactiver netbios sur toutes les interfaces
description_pl : Wyłączenie netbios na wszystkich interfejsach
description_de : Netbios auf allen Schnittstellen deaktivieren
description_es : Desactivar netbios en todas las interfaces
description_pt : Desactivar netbios em todas as interfaces
description_it : Disabilitare netbios su tutte le interfacce
description_nl : Schakel netbios uit op alle interfaces
description_ru : Отключить netbios на всех интерфейсах
audit_schedule :
editor :
keywords :
licence :
homepage :
package_uuid : 87966917-160d-4149-be86-889ba6e0c241
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version : 10
max_os_version :
icon_sha256sum : 04c349c5b94ca20ba22d88f25510da7f820cc9d5f1a876e9a3960d0c0cabc353
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date : 2026-03-17T15:23:42.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature : YJt6mhlXy/ja/1LDyv2+ZK/wEns55uRG6Og/vjG8NEgjZwezcY39nYtPEcAfe/ZgJHJeGutXBVtZmR3xZ6kLpMerTmTRpNPGvOAn/59cOdStWGZX8/UjOerO7R38VkjnqaEPm9cQNkcwDPxb1ETDCS2XY4H5JBmvp9nEdV25DtgVZhDRHzdC87grrpFGsBk/j8cij7LKCbQLrkSn375Ey3Y8q3YSCiVoM41KlhnOWJIREDUALdEJhEse1g3CD9mm2/oky1E2d6wuC4xvZrzvjoLMAVyolw+aWfukOf9FWcDySpH/qThkYzb8cyngdp9EleKVUbbaARruONCvfXRdSw==
from setuphelpers import *
uninstallkey = []
VPN_NAME = "NAME_VPN_ADAPTER"
def ps_list(cmd):
result = run_powershell(cmd)
if not result:
return []
if isinstance(result, dict):
return [result]
return result
def field(obj, name, default=None):
if isinstance(obj, dict):
return obj.get(name, default)
return getattr(obj, name, default)
def get_enabled_adapters():
return ps_list(
'Get-CimInstance -ClassName "Win32_NetworkAdapterConfiguration" | '
'Where-Object { $_.IPEnabled -eq $true } | '
'Select-Object Description, TcpipNetbiosOptions, SettingID'
)
def set_netbios(setting_id, value):
safe_setting_id = setting_id.replace('"', '`"')
return ps_list(
'Get-CimInstance -ClassName "Win32_NetworkAdapterConfiguration" | '
'Where-Object { $_.SettingID -eq "%s" } | '
'Invoke-CimMethod -MethodName "SetTcpipNetbios" '
'-Arguments @{ TcpipNetbiosOptions = %s } | '
'Select-Object ReturnValue'
% (safe_setting_id, int(value))
)
def install():
for connection in get_enabled_adapters():
adapter_name = field(connection, 'Description', '') or ''
setting_id = field(connection, 'SettingID')
netbios_opt = field(connection, 'TcpipNetbiosOptions')
if VPN_NAME.lower() in adapter_name.lower():
print(u"Skipping NetBIOS disable for VPN adapter: %s" % adapter_name)
continue
if netbios_opt != 2:
print(u"Disabling NetBIOS on %s" % adapter_name)
print(set_netbios(setting_id, 2))
print("Fix Denis's last experiment on NetBios things...")
with disable_file_system_redirection():
run('reg import "%s"' % makepath(persistent_dir, 'fix.reg'))
def uninstall():
for connection in get_enabled_adapters():
adapter_name = field(connection, 'Description', '') or ''
setting_id = field(connection, 'SettingID')
netbios_opt = field(connection, 'TcpipNetbiosOptions')
if VPN_NAME.lower() in adapter_name.lower():
print(u"Skipping NetBIOS enable for VPN adapter: %s" % adapter_name)
continue
if netbios_opt == 2:
print(u'Enabling NetBIOS on %s' % adapter_name)
print(set_netbios(setting_id, 0))
def audit():
result = check_netbios()
if result == "ERROR":
print('Auto remediation')
install()
result = check_netbios()
if result == "ERROR":
print('Fail Fix netbios')
return "ERROR"
return "OK"
def check_netbios():
has_netbios = []
for connection in get_enabled_adapters():
adapter_name = field(connection, 'Description', '') or ''
netbios_opt = field(connection, 'TcpipNetbiosOptions')
if VPN_NAME.lower() in adapter_name.lower():
print(u'OK: VPN detected, check skipped for: %s' % adapter_name)
continue
if netbios_opt == 2:
print(u'OK: NetBIOS disabled on: %s' % adapter_name)
else:
print(u'ERROR: NetBIOS enabled on: %s' % adapter_name)
has_netbios.append(adapter_name)
if has_netbios:
print(u'\nNetBIOS must be disabled on:\n%s' % u'\n'.join(has_netbios))
return 'ERROR'
return 'OK'
4b5897d8f06b6e17618938d72a0508ce20adbc84cf332ee4a872d75cec999675 : WAPT/README.md
df5115979f4fdfc5f4a111d961680e3aaeb5e8d84523288960d00a5941ac82bd : WAPT/README_fr.md
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
335123f8eac756f1fe94fef9094e4a9aa696a670623e2296e02d8835e4a9cdb4 : WAPT/control
04c349c5b94ca20ba22d88f25510da7f820cc9d5f1a876e9a3960d0c0cabc353 : WAPT/icon.png
df9e7a57d9d44a24a5339aa627880b6d5f61c7bed55c8d30932c54517cbc2915 : WAPT/persistent/fix.reg
73630a4c7b5f8fd235c17f175e96b7817cae340a09e5ad2ee1d84b8978ae793e : luti.json
d002ab88f50d51a1ab42a7e561d73211e614a41dd565219eff1162a9087a4046 : setup.py