根据Andre Viot的博客:
$adapters=(gwmi win32_networkadapterconfiguration )
Foreach ($adapter in $adapters){
Write-Host $adapter
$adapter.settcpipnetbios(0)
}
应该在每个适配器上禁用Netbios。您可能希望更敏锐,并确保在正确的界面上禁用Netbios,因此,我首先运行Get-WmiObject Win32_NetworkAdapterConfiguration | Where IPAddress
,以查看当前已连接的适配器的列表。
ServiceName DHCPEnabled Index Description
----------- ----------- ----- -----------
VMSMP True 14 Intel Wireless Adapter
VMSMP True 29 Intel Ethernet Adapter
像这样,使用提供给Where Object的过滤器选择要禁用的过滤器。我想关闭局域网上的NetBios。
$adapter = Get-WmiObject Win32_NetworkAdapterConfiguration | Where Description -like "*Ethernet*"
$adapter.SetTcpIPNetbios(0) | Select ReturnValue
ReturnValue
-----------
0
尽管有很多可能的返回码,例如整批商品。确保check the list here,不要懒洋洋地认为该功能将在每台设备上都有效。您绝对应该首先进行测试,并了解其后果。
http://www.alexandreviot.net/2014/10/09/powershell-disable-netbios-interface/
如果尝试在没有连接的适配器上设置NetBIOS的配置,则可以在注册表中更改设置,而不必直接使用SetTcpIPNetbios。
我遍历每个适配器端口(我有16个),然后在所有适配器端口上关闭NetBIOS:
$i = 'HKLM:\SYSTEM\CurrentControlSet\Services\netbt\Parameters\interfaces'
Get-ChildItem $i | ForEach-Object {
Set-ItemProperty -Path "$i\$($_.pschildname)" -name NetBiosOptions -value 2
}
从其他答案和评论中,我将其用作禁用NetBIOS的一行命令:
(Get-WmiObject Win32_NetworkAdapterConfiguration -Filter IpEnabled="true").SetTcpipNetbios(2)