windows 管理小技巧

本文介绍了Windows系统中网络配置的多种方法,包括去除缺省共享、管理远程终端服务、关闭特定端口和服务、重装TCP/IP协议及修改计算机名等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.1 去除缺省共享

Q: 在管理工具->计算机管理->共享文件夹中可以看到ADMIN$、C$、D$、IPC$等缺省
   共享,怎么才能去除这些缺省共享

A: 2K/XP下测试通过

1) 禁止C$、D$一类的缺省共享

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters

新建AutoShareServer、REG_DWORD、0x0

2) 禁止ADMIN$缺省共享

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters

新建AutoShareWks、REG_DWORD、0x0

3) 限制IPC$缺省共享

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa

restrictanonymous REG_DWORD 0 缺省
                            1 匿名用户无法枚举本机用户列表
                            2 匿名用户无法连接本机IPC$共享

不建议使用2,它可能会造成一些服务无法启动,比如SQL Server

D: 2002-08-28 11:50

NT、XP上restrictanonymous不支持2这个值,但是XP多了一个restrictanonymoussam,

restrictanonymous    REG_DWORD 1 匿名用户无法枚举本机用户列表以及共享列表

restrictanonymoussam REG_DWORD 1 匿名用户无法枚举本机用户列表

A: Jean-Baptiste Marchand <Jean-Baptiste.Marchand@hsc.fr> 2005-06

XP以前版本可以通过"net share ipc$ /delete"删除IPC$。

XP SP2/2003 SP1增加了新的机制:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters

PipeFirewallActive  REG_DWORD       0 缺省不存在,需要新建
                                    1 启用命名管道过滤机制,动态生效、无需
                                      重启

AllowedPipes        REG_MULTI_SZ      被允许通过SMB会话远程访问的命名管道
                                      列表,动态生效、无需重启

命名管道过滤机制适用于所有SMB会话,无论是空会话还是经过认证的会话。启用命
名管道过滤机制之后将允许列表清空,就相当于删除了IPC$,此时无法通过SMB会话
远程访问任何命名管道。
7.5 想登录远程终端服务但名额已满

Q:

想登录远程终端服务,但认证通过后告诉我名额已满无法登录。有管理员帐号,想踢
个人下来,再让自己登上去。

A: tk@nsfocus

> net use //<target>/ipc$ <password> /user:Administrator
> chcp 437
Active code page: 437
> query session /Server:<target>
 SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
 console                                     0  Conn    wdcon
 rdp-tcp                                 65536  Listen  rdpwd
 rdp-tcp#141       Administrator             1  Active  rdpwd
 rdp-tcp#138       Administrator             2  Active  rdpwd
> tsdiscon 2 /Server:<target>

这将导致2号会话断开连接,与点击远程终端界面右上角关闭钮等效,不会关闭当前
正在运行中的进程。

> reset session 2 /Server:<target>

reset命令导致2号会话中的进程被关闭,与tsdiscon命令不同。有点类似选择注销。

rdp-tcp#<num>中的<num>反映了会话建立的先后顺序,数字小表示先建立。
5.16 如何关闭445/TCP口

A: http://www.petri.co.il/what's_port_445_in_w2k_xp_2003.htm

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NetBT/Parameters

TransportBindName   REG_SZ  /Device/

删除缺省的"/Device/",留一个空值。重启后"netstat -na"将看不到445/TCP口。但
同时客户端SMB机制支持一并被取消。

A: Jean-Baptiste Marchand <Jean-Baptiste.Marchand@hsc.fr> 2002-02-09

至少有两种办法可以关闭445/TCP:

. 禁用NetBT驱动

第一种方法彻底禁用了系统中的SMB机制,客户端、服务端支持均被取消。为了停止
NetBT驱动,必须先停止工作站、服务器服务,如果不这样做而试图直接停止NetBT驱
动,系统将出故障。

> net stop rdr
> net stop srv
> net stop netbt

rdr、srv不是服务名称,也不是显示名称,而是net命令自己支持的,在此分别等价
于lanmanworkstation、lanmanserver。445/TCP将被热关闭。

"NetBios over Tcpip"驱动可以手工停止,但不能手工启动,只能重启才可恢复。为
了阻止NetBT驱动在重启OS时自动加载,必须将启动类型由缺省的1改成4:

--------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NetBT]
"Start"=dword:00000004
--------------------------------------------------------------------------

> sc config netbt start= disabled

. 修改注册表

更多时候第一种方法不是我们所期望的,客户端SMB机制的支持还是需要的。通过修
改注册表可以实现禁用由TCP层直接承载的SMB协议,但继续启用NetBT。

--------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NetBT/Parameters]
"SmbDeviceEnabled"=dword:00000000
--------------------------------------------------------------------------

重启OS使之生效,445/TCP不再侦听中。

A:

devmgmt.msc->查看->显示隐藏设备->非即插即用驱动程序->NetBios over Tcpip->右键停用->重启OS使之生效

这将彻底禁用系统中的SMB机制,客户端、服务端支持均被取消。

D: tk@nsfocus 2004-07-22

逆向分析netbt.sys之后,发现可以通过注册表改变445/TCP、445/UDP:

--------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NetBT/Parameters/Smb]
"SessionPort"=dword:00000000
"DatagramPort"=dword:00000000
--------------------------------------------------------------------------

本来试图通过这种办法关闭445/TCP,重启之后,系统自动处理成1/TCP、1/UDP。如
将SessionPort指定成135/TCP,在争夺中原EPM功能将丧失,SMB功能争夺成功。

D: sparrow@smth

装了IPv6之后,tk给出的注册表项就不起作用了。在此情况下为使之继续起作用,需
额外修改注册表:

--------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NetBT/Parameters]
"UseNewSmb"=dword:00000000

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NetBT/Parameters/Smb]
"SessionPort"=dword:000001bd
"DatagramPort"=dword:000001bd
--------------------------------------------------------------------------

装了IPv6之后,增加了一个驱动smb.sys,处理IPv6下的SMB协议。UseNewSmb非0时将
使用smb.sys,该驱动中固化了445/TCP。
5.25 如何重装TCP/IP协议

Q:

我想重装TCP/IP协议,但是在XP的Network Control Panel Applet(NCPA)中相应的卸
载按钮是灰色的,怎么办。

A: kijs <chenhua136899@gmail.com> 2006-02-22 09:18

在cmd.exe中输入"netsh int ip reset <path>/<logfile>"。这条命令将重置TCP/IP
协议,使其恢复到初次安装结束时的状态,与删除并重装TCP/IP协议的效果类似。这
里<logfile>用于记录netsh命令所产生的日志,必须指定。
 
5.26 关于计算机名的相关讨论

http://www.opencjk.org/~scz/200603151441.txt

Q: 我的电脑->属性->计算机名->计算机描述,我想改动这里,但它是灰色不可写的。

A: 如果lanmanserver service未启用,就会这样。执行"net start srv"即可。

Q: 我想修改所属工作组,但那里是灰色不可写的。

A: 如果lanmanworkstation service未启用,就会这样。执行"net start rdr"即可。

Q: 如何在命令行上修改计算机名

A: backend@nsfocus

--------------------------------------------------------------------------
set obj     = getobject( "winmgmts://./root/cimv2" )
set list    = obj.execquery( "select * from win32_computersystem" )
for each x in list
    x.rename( wscript.arguments.item( 0 ) )
next
--------------------------------------------------------------------------

> cscript.exe //nologo computerrename.vbs xxx

D: scz@nsfocus

平常自然语言所说的计算机名非常不精确,下面精确地介绍一下与之相关的注册表项:

--------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/ComputerName/ActiveComputerName]
"ComputerName"="CLOUDSKY"

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/ComputerName/ComputerName]
"ComputerName"="CLOUDSKY"

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters]
"Domain"=""
"Hostname"="CLOUDSKY"
"NV Domain"=""
"NV Hostname"="CLOUDSKY"
--------------------------------------------------------------------------

ActiveComputerName处的ComputerName对应当前NetBIOS名。另一处ComputerName将
在下一次重启时被复制到ActiveComputerName处。

"<Hostname>.<Domain>"对应当前FQDN(全称域名),"<NV Hostname>.<NV Domain>"将
在下一台重启时被复制到"<Hostname>.<Domain>"处。

显然,我们有两种名字,一种是NetBIOS名,一种是FQDN,它们之间没有必然联系,
尽管大多数时候它们是一致的。NetBIOS名可用在很多地方,适用于TCP/IP、IPX/SPX、
NetBEUI等实现了NetBIOS接口的通信协议。FQDN却只用于TCP/IP协议。微软在名字解
析问题上经历了多次变化,名字解析顺序各不相同,最终用户很难区分NetBIOS名与
FQDN。比如"ping <name>"究竟使用哪类名字,会有多个变种,依赖操作系统、网络
拓扑,这里不详细讨论了。总之要记住,说起计算机名时,有两种名字。

在GUI上修改计算机名时,实际操作的是:

--------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/ComputerName/ComputerName]
"ComputerName"="CLOUDSKY"

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters]
"NV Domain"=""
"NV Hostname"="CLOUDSKY"
--------------------------------------------------------------------------

现在应该明白为什么在GUI上修改计算机名后需要要重启才能生效了吧。

一般不建议直接操作注册表修改这些值,可以考虑Win32 API。SetComputerName()只
能设置NetBIOS名。SetComputerNameEx()可用于设置NetBIOS名或FQDN。

还可以用WMI,就像backend所演示的那样。这种办法与GUI修改法完全等价,同时修
改了NetBIOS名与FQDN,重启后生效。注意,这两种办法修改NetBIOS名时自动将之转
换成大写,而FQDN保持大小写敏感。

用注册表监视器观察hostname.exe,就会发现该命令只取了FQDN中的Hostname,并不
取NetBIOS名。"nbtstat -A <target>"所涉及的则是NetBIOS名。devmgmt.msc取的是
ActiveComputerName处的NetBIOS名。

如果破坏了HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/ComputerName,
在我的电脑里查看NetBIOS名,可能是空白。此时访问"//<ip>/ipc___FCKpd___3quot;,会出错,微软
给出的错误信息基本无用。抓包发现没有任何IP报文出现,出错层次很高,还没到达
IP层。访问"//<name>/ipc___FCKpd___3quot;倒是能成功。flier就碰上了这种事,应该是安装某软件
时直接操作注册表修改计算机名出岔子了。

Q: 在XP中打开磁盘管理,报"RPC服务不可用"。

A:

这是"Logical Disk Manager/dmserver"服务所用计算机名与ActiveComputerName处
的NetBIOS名不匹配所致,一般都是因为后者被破坏。重启OS后如果还不能恢复,请
在GUI上重新设置计算机名,应该就可以了。参看:

http://support.microsoft.com/kb/884564
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值