命令行禁用netbios?

问题描述 投票:0回答:3

我有一个以太网适配器和一个无线适配器,我一辈子都无法弄清楚用于为系统上所有适配器通过TCP / IP禁用Netbios的命令行(或Powershell)。我对此表示感谢。

enter image description here

powershell command-line-interface netbios
3个回答
4
投票

根据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/


2
投票

如果尝试在没有连接的适配器上设置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
}

0
投票

从其他答案和评论中,我将其用作禁用NetBIOS的一行命令:

(Get-WmiObject Win32_NetworkAdapterConfiguration -Filter IpEnabled="true").SetTcpipNetbios(2)

© www.soinside.com 2019 - 2024. All rights reserved.