标题: 求助:当前磁盘账户权限
[打印本页]
作者: coldface
时间: 2010-7-20 15:30
标题: 求助:当前磁盘账户权限
大家好,
我有这样一个需求,查找当前某盘符下存在的账户及权限,如果有Users账户则删除,如果没有System账户权限,则添加,并赋予FULL control权限。
我只知道cacls 对指定盘/文件的添加或删除账户权限,但不知道如何获取当前盘符下的账户。麻烦给个样例或者提示。
谢谢!
作者: coldface
时间: 2010-7-21 09:12
谁给个提示,Google没搜到
作者: coldface
时间: 2010-7-22 14:17
@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 ]
作者: coldface
时间: 2010-7-22 16:34
谁给解释下 谢谢!
作者: coldface
时间: 2010-7-30 13:03
下面是一个关于对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