论坛: 菜鸟乐园 标题: 用脚本编程(WindowsScriptHost)关闭NT/2K默认共享~~ 复制本贴地址    
作者: ma2751_cn [ma2751_cn]       登录
近几天发现有好多朋友问起怎么关闭默认共享,一时有空就自己半生不熟的脚本编程为给大家写个脚本。

众所周知,在win NT/2K中能在命令提示符下用:net share 服务名关闭服务,做为默认共享在WIN中也做为一种服务运行。但重新启动计算机后共享又会开启,以下代码能够关闭默认共享且开机自动关闭。

Dim fs,dise,ds,WSH       '定义变量
Set WSH=CreateObject("WScript.shell")    '创建能与系统沟通的对象
Set fs=CreateObject("Script.FileSystemObject")  '创建文件系统对象
Set dise=fs.Drives      '获取启动器的集合
For Each ds in dise     
WSH.run("net share "&ds.driveletter&"$ /delete")   '关闭C$等共享
Next
WSH.run("net share admin$ /delete")  '关闭admin$共享
WSH.run("net share ipc$ /delete")     '关闭ipc$共享
Dim dirsys,FName
Set dirsys=fs.GetSpecialFoldor(1)   '获得系统目录,0为windows目录
Set FName=fs.GetFile(Wscript.ScriptFullName)  '得到自己的路径
If (fs.fileexists(dirsys&"\stopshare.vbs")  '如果自己在系统目录
Then   '就什么都不做
Else   
FName.copy(dirsys&"\stopshare.vbs")  ''否则就复制自己到系统目录
WSH.RegWrite"HKLM\software\microsoft\windows\CurrentVersion\run",dirsys&"\stopshare.vbs"  '修改注册表让自己每次启动都运行

把以上代码保存为stopshare.vbs然后运行,注意:一定要是stopshare.vbs文件名.!!另求如何用脚本得到自己文件名的代码~~~用什么对象-属性或方法???请告知!谢~~

其实直接修改注册表也能关闭默认共享,而且重启也不会再次打开.以下是详细代码~~

Dim WSH
Set WSH=WScript.CreateObject("WScript.shell")
WSH.RegWrite"HKLM\system\CurrentControlset\services\lanmanserver\parameters\Autoshareserver",0,"REG_DWORD"  '关闭C$等共享
WSH.RegWrite"HKLM\system\CurrentControlset\services\lanmanserver\parameters\AutoShareWKS",0,"REG_DWORD"   '关闭admin$共享
WSH.RegWrite"HKLM\system\CurrentControlset\control\lsa\restrictanonymous",2,"REG_DWORD"   '当值为0时开启IPC$共享,值为1时可使匿名用户无法列举本机用户列表,值为2时可使匿名用户无法连接本机IPC$共享'

地主 发表时间: 05/03 18:00

回复: RobinHood [virusonic]   论坛用户   登录
如果c:\winnt也被默认共享,怎么办?

B1层 发表时间: 05/03 18:37

回复: ma2751_cn [ma2751_cn]      登录
c:\winnt也被默认共享???/

要明白什么是默认共享。

B2层 发表时间: 05/04 22:02

回复: kv3000 [kv3000]   论坛用户   登录
请问别人能否用net share \\ip\ipc$   呢?

B3层 发表时间: 05/04 22:13

回复: ma2751_cn [ma2751_cn]      登录
能,只要别人得到你的shell~~~
比如说别人从终端服务登陆你的机器后~~

B4层 发表时间: 05/04 22:18

回复: kv3000 [kv3000]   论坛用户   登录
那我怎么才可以防止类似发生?

B5层 发表时间: 05/04 22:23

回复: ma2751_cn [ma2751_cn]      登录
net share \\ip\ipc$ 

没有这个命令吧~~


B6层 发表时间: 05/04 22:45

回复: kv3000 [kv3000]   论坛用户   登录
呵呵所以我问一下!

B7层 发表时间: 05/04 22:55

回复: aa11 [aa11]   论坛用户   登录
搞得我还以为有这个命令呢~

试了半天~

一看下面的贴子~

原来没这个命令~

晕~

B8层 发表时间: 05/05 07:36

回复: disun [benww]   论坛用户   登录
脚本我不大懂,但也能看出来本质上还是用的net share命令,既然如此,为什么不建一个如下的批处理(假设系统九个分区),然后将之放到启动组里?我看效果一样.
net share c$ /del
net share d$ /del
net share e$ /del
net share f$ /del
net share g$ /del
net share h$ /del
net share i$ /del
net share j$ /del
net share k$ /del
net share ipc$ /del
net share admin$ /del

B9层 发表时间: 04-05-14 22:25

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号