找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 73119|回复: 15

[网络连接] 【已解决】关于禁止用netbios的批处理

[复制链接]
发表于 2017-12-21 09:42:45 | 显示全部楼层 |阅读模式
禁止用netbios
先查看一下当前所有网络接口信息
wmic nicconfig get caption,index,TcpipNetbiosOptions
找到你要修改的网卡对应的序号
wmic nicconfig where index=7 call SetTcpipNetbios 2
--------------------------------------------------------------------------------
禁止用netbios具体流程大概是上面的方法,但每台机器的网卡index值是不同的,所以wmic nicconfig where index=7 call SetTcpipNetbios 2   这条命令中的网卡index难以确定

用wmic nicconfig get caption,index,TcpipNetbiosOptions查看可以看到,网卡中TcpipNetbiosOptions是有值的,其他的都没有值。

TcpipNetbiosOptions的值,0代表默认,1代表启用,2代表禁用
请问怎么通过TcpipNetbiosOptions不为空,获取TcpipNetbiosOptions不为空值的对应的index的值,放入 wmic nicconfig where index=7 call SetTcpipNetbios 2 语句index中达到禁用netbios的目的?
 楼主| 发表于 2017-12-21 10:40:19 | 显示全部楼层
找到一方法

wmic nic where "netconnectionid='本地连接'" get  caption,index

不知道怎么用
发表于 2017-12-21 11:08:52 | 显示全部楼层
wmic nicconfig where "TcpipNetbiosOptions='0' or TcpipNetbiosOptions='1'" call SetTcpipNetbios 2
 楼主| 发表于 2017-12-21 11:19:53 | 显示全部楼层
wmic nicconfig where "TcpipNetbiosOptions='0' or TcpipNetbiosOptions='1'" call SetTcpipNetbios 2
WHY 发表于 2017-12-21 11:08



十分感谢。


但还是有问题,当网卡没有插网线时,TcpipNetbiosOptions的值也没有(不是0、1、2中的任一个),请问这个怎么办?

TcpipNetbiosOptions没有值,但MACAddress 中是有值的
我改成
wmic nicconfig where "MACAddress<>''" call SetTcpipNetbios 2
但不行
是不是因为有2个MACAddress不为空的值

这还是只有一个网卡的情况下,如果有2个网卡,那么即使在插入网线情况下,TcpipNetbiosOptions也会有2行值
发表于 2017-12-21 14:01:50 | 显示全部楼层
网线拔掉了,也就是你从此不准备连网啦,关闭NETBIOS还有什么意义?
 楼主| 发表于 2017-12-21 14:47:06 | 显示全部楼层
本帖最后由 zb848 于 2017-12-21 14:56 编辑
网线拔掉了,也就是你从此不准备连网啦,关闭NETBIOS还有什么意义?
WHY 发表于 2017-12-21 14:01



我的工作是管理单位的电脑,单位信息安全要求必须关闭关闭NETBIOS,所有新装的电脑下发前都必须关闭NETBIOS,我自己封装了个系统,每次新机器都是用封装系统装机,封装系统可以在启动后调用批处理进行安全设置,这时候是没有插入网线的(电脑只能用于内部网络,严禁连接外网,现在还不知道发到那个单位,IP也无法确定 )

只有下发到下级 单位后使用后才插入网线(内部网络),我不可能跑到下级单位去给他进行安全设置,所以要在之前就做好安全设置,就是在封装系统启动后调用批处理进行安全设置。

其实问题解决办法是,能不能读取网卡的索引号index,只要能读取这个号,就可用命令设置这个index的TcpipNetbiosOptions值
发表于 2017-12-21 16:34:57 | 显示全部楼层
好吧,至少你应该知道对应的网卡名称或者网络连接名称才行
  1. @echo off
  2. for /f %%i in ('wmic nic where "NetConnectionID='以太网' or NetConnectionID='本地连接' or NetConnectionID='无线网络连接'" get Index^|findstr [0-9]') do (
  3.     wmic nicconfig where "Index='%%i' and TcpipNetbiosOptions!='2'" call SetTcpipNetbios 2
  4. )
  5. pause
复制代码
 楼主| 发表于 2017-12-21 17:18:01 | 显示全部楼层
好吧,至少你应该知道对应的网卡名称或者网络连接名称才行
WHY 发表于 2017-12-21 16:34



    在插入网线时可能用,但不插入网线时无效
发表于 2017-12-21 21:23:24 | 显示全部楼层
错误码 84 (IP not enabled on adapter)告诉你需要 IPEnabled=True,也就是需要联网
发表于 2017-12-21 21:48:39 | 显示全部楼层
Configuring NetBIOS over TCP/IP
https://social.technet.microsoft ... forum=winservercore

You can edit the registry to change the NetBIOS configuration. Under HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters\Interfaces, find the GUID(s) with NetbiosOptions set to 0 and set them to 2. This is the equivalent of selecting disabled in the GUI.
With Server Core you can use regedit and connect remotely to set this or use the reg.exe command line tool.
Andrew

And here is the VBS script to run.
You will need admin rights, or put in a GPO under Computer Configuration/Policies/Windows Settings/Scripts/Startup:
  1. OPTION EXPLICIT
  2. Const HKEY_LOCAL_MACHINE    = &H80000002
  3. Const sNetKey = "System\CurrentControlSet\Services\NetBT\Parameters\Interfaces"
  4. Dim oReg            ' Registry object
  5. Dim sSubKey         ' SubKey instance
  6. Dim aSubKeys        ' SubKeys array
  7. Dim dwValue         ' registry value
  8. Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
  9. oReg.EnumKey HKEY_LOCAL_MACHINE, sNetKey, aSubKeys
  10. ' Top layer is interfaces
  11. For Each sSubKey in aSubKeys
  12.     oReg.GetDWORDValue HKEY_LOCAL_MACHINE, sNetKey & sSubKey, "NetbiosOptions", dwValue
  13.     If dwvalue <> 2 Then
  14.         oReg.SetDWORDValue HKEY_LOCAL_MACHINE, sNetKey & sSubKey, "NetbiosOptions", 2
  15.     End If
  16. Next
复制代码

评分

参与人数 1技术 +1 收起 理由
zb848 + 1 十分感谢

查看全部评分

发表于 2017-12-22 00:49:41 | 显示全部楼层
为了公司的安全性建议开双网独立运行,物理机制比软件设置机制更好你会关,别人也会开,万能的某度什么都知道
 楼主| 发表于 2017-12-22 08:02:37 | 显示全部楼层
本帖最后由 zb848 于 2017-12-22 08:07 编辑
yu2n 发表于 2017-12-21 21:48


请问大神,这个好像不是批处理,怎么用啊?
 楼主| 发表于 2017-12-22 08:05:17 | 显示全部楼层
为了公司的安全性建议开双网独立运行,物理机制比软件设置机制更好你会关,别人也会开,万能的某度什么都知道
/zhqsystem/zhq 发表于 2017-12-22 00:49


谢谢你的提示,我单位是严格内外网物理隔离的(双线独立运行),内网机是不允许接入外网的,有外网的都是双机的
发表于 2017-12-22 13:37:30 | 显示全部楼层
本帖最后由 yu2n 于 2017-12-22 14:53 编辑

回复 12# zb848


    将代码另存为 "C:\0.vbs",直接双击运行;也可用命令 WScript.exe "C:\0.vbs" 运行。

注意:
1. 此脚本需要修改注册表 HKEY_LOCAL_MACHINE 部分,需要以管理员权限运行。
2. 此脚本会禁用本机所有物理网卡的 Netbios。(包括已禁用、断线中的网卡)
3. 此脚本运行后,重启电脑才能生效。


补充:
以下命令执行后会马上生效,但是会跳过已禁用、断线中的网卡。
  1. wmic nicconfig where "TcpipNetbiosOptions!=NULL" call SetTcpipNetbios 2
复制代码
 楼主| 发表于 2017-12-22 15:31:49 | 显示全部楼层
回复  zb848


    将代码另存为 "C:\0.vbs",直接双击运行;也可用命令 WScript.exe "C:\0.vbs" 运行。 ...
yu2n 发表于 2017-12-22 13:37



十分感谢。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 22:13 , Processed in 0.025205 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表