中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 15:21
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎样用批处理设置共享权限
可打印版本  1,525 / 13
第1楼 wxs81514 发表于 2008-05-14 14:56
初级用户 发帖 52 积分 118
怎样用批处理设置共享权限
我们每增加一台工作站(比如RC205),要在服务器上作一些动作:
1.新建一个用户为RC205
2.在E:\bak下新建一个文件夹为RC205
3.设置RC205的安全权限为administrator和RC205用户可读写.
4.共享该文件夹,共享为所有人可读写(我们通过安全属性控制访问权限)
请各位帮忙看能不能把上述内容用批处理写出来.先谢了!
如果电脑名称能从一个文件中读取更好,比如建一个电脑名称一览表,当我们新增电脑时,我们把这台电脑的电脑名登记在这个文件中,然后批处理会检测到新增加内容,对应做上面一系列的操作.
第2楼 HAT 发表于 2008-05-14 16:54
版主 发帖 5,017 积分 9,023
1.
net user RC205 password /add

2.
md "E:\bak\RC205"

3.
在本版搜索setacl

4.
net share myshare=E:\bak\RC205
第3楼 wxs81514 发表于 2008-05-14 20:29
初级用户 发帖 52 积分 118
非常感谢谢二楼的朋友,了解到setacl是一个很有用的工具,它不但可以设置注册表\文件夹的权限,还可以设共享的权限,不知道它能不能备份共享权限.
我找不到它的程序下载,可否再帮忙发一个上来.
第4楼 wxs81514 发表于 2008-05-14 20:52
初级用户 发帖 52 积分 118
下到了,研究了好久还是不知道怎么用,高手举个例子好不好?
比如:把e:\bak\rc205设置为只有rc205和administrator这两个用户可读写
第5楼 HAT 发表于 2008-05-14 23:32
版主 发帖 5,017 积分 9,023
Originally posted by wxs81514 at 2008-5-14 08:52 PM:
下到了,研究了好久还是不知道怎么用,高手举个例子好不好?
比如:把e:\bak\rc205设置为只有rc205和administrator这两个用户可读写

这样可以吗?

第6楼 wxs81514 发表于 2008-05-15 10:03
初级用户 发帖 52 积分 118
太激动了,又学会了一个新命令,cacls,很好用,谢谢了.比setacl要简单多了.而且可以内部调用,不用专门下载.
不过如果能实现从文件中读取电脑名称就更好了.
第7楼 HAT 发表于 2008-05-15 10:40
版主 发帖 5,017 积分 9,023
Originally posted by wxs81514 at 2008-5-15 10:03 AM:
太激动了,又学会了一个新命令,cacls,很好用,谢谢了.比setacl要简单多了.而且可以内部调用,不用专门下载.
不过如果能实现从文件中读取电脑名称就更好了.

试试这个吧:

第8楼 wxs81514 发表于 2008-05-15 14:45
初级用户 发帖 52 积分 118
不行,显示"无可用范例"
第9楼 HAT 发表于 2008-05-15 14:50
版主 发帖 5,017 积分 9,023
Originally posted by wxs81514 at 2008-5-15 02:45 PM:
不行,显示"无可用范例"

我的测试文件是C:\test\a.txt
请根据实际需要修改代码
第10楼 wxs81514 发表于 2008-05-15 18:15
初级用户 发帖 52 积分 118
前面是我弄错,但改了一下还是不行,显示:
节点-RC303
错误:
代码:0x80041017
说明=无效查询
设备=WMI
第11楼 HAT 发表于 2008-05-16 11:57
版主 发帖 5,017 积分 9,023
能否把你的测试代码贴出来看看?
第12楼 wxs81514 发表于 2008-05-16 14:51
初级用户 发帖 52 积分 118
代码是:因为我的文件是C盘上的a.txt
for /f "tokens=2 delims==" %%a in ('wmic datafile where "Name='c:\a.txt'" get CSName /value ^| findstr /i "CSName"') do echo 计算机名:%%a
现在有一个新的代码了,我测试了可以:
for /f "tokens=1" %%i in (A.TXT) do echo 电脑名称:%%i
第13楼 HAT 发表于 2008-05-16 15:00
版主 发帖 5,017 积分 9,023
原来你的“从文件中读取电脑名称”是这个意思,呵呵。
第14楼 wxs81514 发表于 2008-05-16 15:28
初级用户 发帖 52 积分 118
兄弟你原来没理解我的意思啊,不好意思,是我没有说清楚.还是谢谢你.
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023