| 
 
chineselgs 
高级用户
 
     论坛灌水专业户
  
 
积分 613 
发帖 266 
注册 2006-4-19 来自 河南省 
状态 离线
 | 
『楼 主』:
 [已结]批处理删除所有分区的默认共享
 
使用 LLM 解释/回答一下
  
请帮我解释下面的批处理的每个命令的意思: 
 
net share c$ /del 
net share d$ /del 
net share e$ /del 
net share f$ /del 
net share admin$ /del 
net share ipc$ /del 
del c:\winnt\logo1_.exe 
 
 
谢谢!!! 
 
 Last edited by willsort on 2006-6-14 at 17:08 ] 
 
    
 
  
  |  
                  
  
                    饮马恒河畔,剑指天山西,碎叶城揽月,库叶岛赏雪,黑海之滨垂钓,贝尔加湖面张弓;中南半岛访古,东京废墟祭祖! 
   |   
 | 
  2006-6-9 18:47 | 
  
 | 
 | 
 
Scott0902 
中级用户
 
   
 
  
  
积分 466 
发帖 237 
注册 2005-10-12 
状态 离线
 | 
 | 
  2006-6-9 19:04 | 
  
 | 
 | 
 
chineselgs 
高级用户
 
     论坛灌水专业户
  
 
积分 613 
发帖 266 
注册 2006-4-19 来自 河南省 
状态 离线
 | 
『第 3 楼』:
 
 
使用 LLM 解释/回答一下
  
谢谢啦!!! 
 
    
 
  
  |  
                  
  
                    饮马恒河畔,剑指天山西,碎叶城揽月,库叶岛赏雪,黑海之滨垂钓,贝尔加湖面张弓;中南半岛访古,东京废墟祭祖! 
   |   
 | 
  2006-6-9 19:46 | 
  
 | 
 | 
 
namejm 
荣誉版主
 
        batch fan
  
 
积分 5226 
发帖 1737 
注册 2006-3-10 来自 成都 
状态 离线
 | 
『第 4 楼』:
 
 
使用 LLM 解释/回答一下
  
  其实楼主所帖的脚本并不能删除所有分区的默认共享,并且有可能删不掉ipc$共享,更要命的是,还有可能在下次启动的时候自动重新生成默认的admin$共享。 
  下面帖一个经过本人注释过和小小改动过的脚本出来,楼主可以对比一下。
  
@echo off 
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
:: 
::     先列举存在的分区,然后再逐个删除以分区名命名的共享; 
::     通过修改注册表防止admin$共享在下次开机时重新加载;  
::     IPC$共享需要administritor权限才能成功删除 
:: 
::                             jm 改动于 2006-5-12 
:: 
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
 
title 默认共享删除器 
echo.  
echo ------------------------------------------------------  
echo.  
echo 开始删除每个分区下的默认共享.  
echo.  
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @( 
    if exist %%a:\nul ( 
        net share %%a$ /delete>nul 2>nul && echo 成功删除名为 %%a$ 的默认共享 || echo 名为 %%a$ 的默认共享不存在 
    )  
) 
net share admin$ /delete>nul 2>nul && echo 成功删除名为 admin$ 的默认共享 || echo 名为 admin$ 的默认共享不存在 
echo. 
echo ------------------------------------------------------  
echo. 
net stop Server>nul 2>nul && echo Server服务已停止. 
net start Server>nul 2>nul && echo Server服务已启动. 
echo.  
echo ------------------------------------------------------  
echo.  
echo 修改注册表以更改系统默认设置.  
echo.  
echo 正在创建注册表文件.  
echo Windows Registry Editor Version 5.00> c:\delshare.reg  
:: 通过注册表禁止Admin$共享,以防重启后再次加载 
echo >> c:\delshare.reg 
echo "AutoShareWks"=dword:00000000>> c:\delshare.reg  
echo "AutoShareServer"=dword:00000000>> c:\delshare.reg  
:: 删除IPC$共享,本功能需要administritor权限才能成功删除 
echo >> c:\delshare.reg 
echo "restrictanonymous"=dword:00000001>> c:\delshare.reg 
echo 正在导入注册表文件以更改系统默认设置.  
regedit /s c:\delshare.reg  
del c:\delshare.reg && echo 临时文件已经删除.  
echo.  
echo ------------------------------------------------------  
echo.  
echo 程序已经成功删除所有的默认共享.  
echo.  
echo 按任意键退出... 
pause>nul 
 
 Last edited by namejm on 2006-6-9 at 19:52 ]  
 
    
 
  
 |   
 | 
  2006-6-9 19:50 | 
  
 | 
 | 
 
chineselgs 
高级用户
 
     论坛灌水专业户
  
 
积分 613 
发帖 266 
注册 2006-4-19 来自 河南省 
状态 离线
 | 
『第 5 楼』:
 
 
使用 LLM 解释/回答一下
  
非常感谢楼上的!!!! 
 
    
 
  
  |  
                  
  
                    饮马恒河畔,剑指天山西,碎叶城揽月,库叶岛赏雪,黑海之滨垂钓,贝尔加湖面张弓;中南半岛访古,东京废墟祭祖! 
   |   
 | 
  2006-6-10 14:32 | 
  
 | 
 | 
 
willsort 
元老会员
 
          Batchinger
  
 
积分 4432 
发帖 1512 
注册 2002-10-18 
状态 离线
 | 
『第 6 楼』:
 
 
使用 LLM 解释/回答一下
  
 
───────────────── 版务记录 ───────────────── 
执行:Will Sort 
操作:修改标题 - 帮我解释一下~ 
───────────────── 版务记录 ───────────────── 
 
 
    
 
  
  |  
                  
  
                    ※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得! |   
 | 
  2006-6-14 17:09 | 
  
 | 
 | 
 
flysp 
中级用户
 
   
 
  
 
积分 207 
发帖 41 
注册 2004-10-24 
状态 离线
 | 
 | 
  2006-6-15 17:20 | 
  
 | 
 | 
 
electronixtar 
铂金会员
 
       
 
  
  
积分 7493 
发帖 2672 
注册 2005-9-2 
状态 离线
 | 
『第 8 楼』:
 
 
使用 LLM 解释/回答一下
  
不用输出 .reg 文件啦,用 reg 命令直接改就是了 
 
    
 
  
  |  
                  
  
                     
C:\>BLOG http://initiative.yo2.cn/ 
C:\>hh.exe ntcmds.chm::/ntcmds.htm 
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>" |   
 | 
  2006-6-15 22:47 | 
  
 | 
 | 
 
zhoung0 
初级用户
 
  
 
  
  
积分 54 
发帖 18 
注册 2005-11-5 
状态 离线
 | 
 | 
  2006-9-18 05:31 | 
  
 | 
 | 
 
kennyfan 
中级用户
 
   
 
  
 
积分 259 
发帖 112 
注册 2006-9-18 
状态 离线
 | 
 | 
  2006-9-18 11:32 | 
  
 | 
 | 
 
ZJHJ 
高级用户
 
    
 
  
  
积分 609 
发帖 374 
注册 2006-8-2 
状态 离线
 | 
『第 11 楼』:
 
 
使用 LLM 解释/回答一下
  
4楼的你们也别全信,多数都是花架子.闷不懂的,也不知是从哪抄来的。其实就是 
一句话,修改注册表项才是真的。 
------------------------------ 
@echo off 
echo  Windows Registry Editor Version 5.00> c:\lswj.reg  
echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]>> c:\lswj.reg  
echo "AutoShareWks"=dword:00000000>> c:\lswj.reg  
echo "AutoShareServer"=dword:00000000>> c:\lswj.reg  
regedit /s c:\lswj.reg  
del c:\lswj.reg  
------------------------------ 
如果要恢复,你就改成 1 即: 
 
@echo off 
echo  Windows Registry Editor Version 5.00> c:\lswj.reg  
echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]>> c:\lswj.reg  
echo "AutoShareWks"=dword:00000001>> c:\lswj.reg  
echo "AutoShareServer"=dword:00000001>> c:\lswj.reg  
regedit /s c:\lswj.reg  
del c:\lswj.reg  
 
----------=--------- 
 
    
 
  
 |   
 | 
  2006-9-28 09:17 | 
  
 | 
 | 
 
pengfei 
银牌会员
 
     
 
  
 
积分 1218 
发帖 485 
注册 2006-7-21 来自 湖南.娄底 
状态 离线
 | 
『第 12 楼』:
 
 
使用 LLM 解释/回答一下
  
楼上兄弟的修改注册表的确是最可取的, 但4楼的代码也很全面.  
 
我也发段批处理删除共享的代码: 
@echo off 
for /f "skip=4 tokens=1" %%i in ('net share') do ( 
    if not "%%i"=="命令成功完成。" if /i not "%%i"=="ipc$" net share %%i /delete 
) 
pause 
 
 Last edited by pengfei on 2006-9-28 at 11:29 ] 
 
    
 
  
 |   
 | 
  2006-9-28 09:40 | 
  
 | 
 | 
 
namejm 
荣誉版主
 
        batch fan
  
 
积分 5226 
发帖 1737 
注册 2006-3-10 来自 成都 
状态 离线
 | 
『第 13 楼』:
 
 
使用 LLM 解释/回答一下
  
  嘿嘿,我那段代码确实是网上抄袭过来的,对注册表不是很懂,只添加了判断盘符的功能,并添加了点注释而已。 
  再贴一段网上copy的东西出来,这个要全面一点,大家可以各取所需:
  
      
 
五板斧封杀Windows默认共享 
 
Windows 2000/XP/2003版本的操作系统提供了默认共享功能,这些默认的共享都有“$”标志,意为隐含的,包括所有的逻辑盘(C$,D$,E$……)和系统目录Winnt或Windows(admin$)。 
 
  带来的问题: 
 
  微软的初衷是便于网管进行远程管理,这虽然方便了局域网用户,但对我们个人用户来说这样的设置是不安全的。如果电脑联网,网络上的任何人都可以通过共享硬盘,随意进入你的电脑。所以我们有必要关闭这些共享。更为可怕的是,黑客可以通过连接你的电脑实现对这些默认共享的访问。 
 
  关闭这些默认共享的方法很多,笔者整理了五种,相信总有一种适合您。 
 
  小知识: 
 
  访问WindowsXP默认共享非常简单:一是通过“开始”→“运行”,输入“\\计算机名或IP地址\D$或admin$”(不包括两侧的引号,下同);二是使用IE等浏览器,在地址栏中输入上述格式或“file://10.80.34.33/d$”。 
 
      一、右键“停止共享”法 
 
  到“计算机管理”窗口中某个共享项(比如H$)上右键单击,选择“停止共享” 并确认后就会关闭这个共享,它下面的共享图标就会消失,重复几次所有的项目都可以停止共享。 
 
  注意:但这种方法治标不治本,如果机器重启的话,这些共享又会恢复。此法比较适合于永不关闭的服务器,简单而且有效。 
 
  二、批处理自启动法 
 
  打开记事本,输入以下内容(记得每行最后要回车): 
 
  net share ipc$ /delete 
  net share admin$ /delete 
  net share c$ /delete 
  net share d$ /delete 
  net share e$ /delete 
 
  ……(你有几个硬盘分区就写几行这样的命令) 
 
  保存为NotShare.bat(注意后缀!),然后把这个批处理文件拖到“程序”→“启动”项,这样每次开机就会运行它,也就是通过net命令关闭共享。 
 
  如果哪一天你需要开启某个或某些共享,只要重新编辑这个批处理文件即可(把相应的那个命令行删掉)。 
 
  三、注册表改键值法 
 
  “开始”→“运行”输入“regedit”确定后,打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters”项,双击右侧窗口中的“AutoShareServer”项将键值由1改为0,这样就能关闭硬盘各分区的共享。如果没有AutoShareServer项,可自己新建一个再改键值。然后还是在这一窗口下再找到“AutoShareWks”项,也把键值由1改为0,关闭admin$共享。最后到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa”项处找到“restrictanonymous”,将键值设为1,关闭IPC$共享。 
 
  注意:本法必须重启机器,但一经改动就会永远停止共享。 
 
  四、停止服务法 
 
  还是到“计算机管理”窗口中,单击展开左侧的“服务和应用程序”并选中其中的“服务”,此时右侧就列出了所有服务项目。共享服务对应的名称是“Server”(在进程中的名称为services),找到后双击它,在弹出的“常规”标签中把“启动类型”由原来的“自动”更改为“已禁用”。然后单击下面“服务状态”的“停止”按钮,再确认一下就OK了。 
 
  五、卸载“文件和打印机共享”法 
 
  右击“网上邻居”选“属性”,在弹出的“网络和拨号连接”窗口中右击“本地连接”选“属性”,从“此连接使用下列选定的组件”中选中“Microsoft网络的文件和打印机共享”后,单击下面的“卸载”按钮并确认一下。 
 
  注意:本方法最大的缺陷是当你在某个文件夹上右击时,弹出的快捷菜单中的“共享”一项消失了,因为对应的功能服务已经被卸载掉了! 
  
 
    
 
  
  |  
                  
  
                    尺有所短,寸有所长,学好CMD没商量。 
考虑问题复杂化,解决问题简洁化。 |   
 | 
  2006-9-28 10:18 | 
  
 | 
 | 
 
ZJHJ 
高级用户
 
    
 
  
  
积分 609 
发帖 374 
注册 2006-8-2 
状态 离线
 | 
『第 14 楼』:
 
 
使用 LLM 解释/回答一下
  
我也发段批处理删除共享的代码: 
@echo off 
for /f "skip=4 tokens=1" %%i in ('net share') do ( 
    if not "%%i"=="命令成功完成。" net share %%i /delete 
) 
pause 
你这段批处理删除共享不灵的哦!会拒绝访问和发生错误5 
 
    
 
  
 |   
 | 
  2006-9-28 11:05 | 
  
 | 
 | 
 
pengfei 
银牌会员
 
     
 
  
 
积分 1218 
发帖 485 
注册 2006-7-21 来自 湖南.娄底 
状态 离线
 | 
『第 15 楼』:
 
 
使用 LLM 解释/回答一下
  
IPC$共享是无法删除的, 出现错误也不足为怪... 
 
加了个判断, 跳过ipc$. 它的执行原理是列出所有共享, 然后一个个删除. 
 
@echo off 
for /f "skip=4 tokens=1" %%i in ('net share') do ( 
    if not "%%i"=="命令成功完成。" if /i not "%%i"=="ipc$" net share %%i /delete 
) 
pause 
 
 Last edited by pengfei on 2006-9-29 at 06:06 ] 
 
    
 
  
 |   
 | 
  2006-9-28 11:26 | 
  
 |