中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 01:36
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:当前磁盘账户权限 查看 920 回复 4
楼 主 求助:当前磁盘账户权限 发表于 2010-07-20 15:30 ·  中国 江苏 苏州 电信
初级用户
★★
积分 71
发帖 70
注册 2010-07-19 11:51
16年会员
UID 170757
性别 男
状态 离线
大家好,
我有这样一个需求,查找当前某盘符下存在的账户及权限,如果有Users账户则删除,如果没有System账户权限,则添加,并赋予FULL control权限。
我只知道cacls 对指定盘/文件的添加或删除账户权限,但不知道如何获取当前盘符下的账户。麻烦给个样例或者提示。

谢谢!
2 发表于 2010-07-21 09:12 ·  中国 江苏 苏州 电信
初级用户
★★
积分 71
发帖 70
注册 2010-07-19 11:51
16年会员
UID 170757
性别 男
状态 离线
谁给个提示,Google没搜到
3 发表于 2010-07-22 14:17 ·  中国 江苏 苏州 电信
初级用户
★★
积分 71
发帖 70
注册 2010-07-19 11:51
16年会员
UID 170757
性别 男
状态 离线
@echo off
echo 添加D的访问权限
cd/
cacls d: >>d:\1.txt
for /f "tokens=1 delims=\,:" %%i in (d:\1.txt) do (
set str=%%i
if "str"=="user" (cacls "d:" /P user:c /e)
else (cacls "d:" /g user:c /e)

)
我自己找了写了个,存在问题。
if else好像只有一条生效,如果当前存在user账户的权限,那么修改权限的话就不成功。

[ Last edited by coldface on 2010-7-22 at 15:38 ]
4 发表于 2010-07-22 16:34 ·  中国 江苏 苏州 电信
初级用户
★★
积分 71
发帖 70
注册 2010-07-19 11:51
16年会员
UID 170757
性别 男
状态 离线
谁给解释下 谢谢!
5 发表于 2010-07-30 13:03 ·  中国 江苏 苏州 电信
初级用户
★★
积分 71
发帖 70
注册 2010-07-19 11:51
16年会员
UID 170757
性别 男
状态 离线
下面是一个关于对F盘Users账户权限的判断及设定,如果Users账户不存在,则添加Users并设定为Control权限,如果Users权限存在,则判断其权限,如果不是COntrol权限则修正为Control。下面可以实现上述功能,但是会提示“系统文件找不到for”,求简化!
谢谢!

@echo off
echo F盘Users权限判断
set file=cacls f:
set file2=for %%c in ("Users") do findstr /r /c:"\<%%~c\>" %file%
set file3=for /f "tokens=2 delims=\" %%i in (%file2%)
for /f "tokens=1 delims=:" %%a in (%file3%) do (
set str=%%a
)
for /f "tokens=3 delims=)" %%b in (%file3%) do (
set str2=%%b
)
if not "%str%"=="Users" (
goto Add
if not "%str2%"=="C" (
goto Modify
)
)
:Add
cacls "f:" /g Users:c /e
:Modify
cacls "f:" /P Users:c /e
论坛跳转: