批处理批量建立用户并分配权限
这是我多年前写的一个批处理文件,主要实现:批量建立一个班级的学生用户,并分配权限,通过网上邻居一个学生用户只能访问一个相对应的目录。
例:要建立计算机0210班级用户,人数为50,根目录为d盘的用户群的话,执行“creauser 计算机0210 jsj0210 50 d:”后,则将建立“jsj0210”这个组,“jsj021001 — jsj021050”这50个用户(密码和用户名称相同),并将在D盘建立如下目录:
d:
|__ jsj0210 (jsj0210这个组都能访问,但不能写操作)
|__ 01 (只有jsj021001这个用户能访问,并能写操作)
|__ 02
|__ …
creauser.bat文件代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | @echo off rem 建立用户并分配权限 rem 格式: creauser 班级名称 班级代称 人数 建立目录的根目录 rem 例: 要建立计算机0210班级用户,人数为50,根目录为d盘的话. rem 则命令是:creauser 计算机0210 jsj0210 50 d: if "%1"=="" goto error if "%1"=="/?" goto error if "%4"=="" goto error echo ====建立班级组 net group %2 /add /comment:"%1" echo ====建立班级组上的用户,并把各用户加到班级组中去 for /L %%i in (1,1,9) do net user %20%%i %20%%i /comment:"%1" /add & net group %2 %20%%i /add for /L %%i in (10,1,%3) do net user %2%%i %2%%i /comment:"%1" /add & net group %2 %2%%i /add echo ====建立班级目录并分配权限 md %4\%2 & echo y|cacls %4\%2 /t /c /p administrators:f %2:r rem 建立学生目录01,02,03, ..., 并分配权限 for /L %%i in (1,1,9) do md %4\%2\0%%i & echo y|cacls %4\%2\0%%i /t /c /p %20%%i:c administrators:f rem 建立学生目录10,12,13, ... for /L %%i in (10,1,%3) do md %4\%2\%%i & echo y|cacls %4\%2\%%i /t /c /p %2%%i:c administrators:f echo ====共享目录 net share %2=%4\%2 goto end :error echo 格式: creuser 班级名称 班级代称 人数 建立目录的根目录 echo 如: 要建立计算机0210班级用户,人数为50,想把班级目录建在D盘的话 echo 则: creauser 计算机0210 jsj0210 50 d: goto end :end echo ====成功完成. END |
deleuser.bat比较简单就不介绍了,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | @echo off rem 删除班级用户及目录 rem 格式: deleuser 班级名称 班级代称 人数 建立目录的根目录 rem 例: 要删除计算机0210班级用户,人数为50,根目录为d盘的话. rem 则命令是:deleuser 计算机0210 jsj0210 50 d: if "%1"=="" goto error if "%1"=="/?" goto error if "%4"=="" goto error echo ====删除班级组上的用户 for /L %%i in (1,1,9) do net user %20%%i /delete for /L %%i in (10,1,%3) do net user %2%%i /delete echo ====删除班级组 net group %2 /delete echo ====删除班级目录 rd %4\%2 /s /q rem 下面命令只删除文件不删除目录 rem del %4\%2 /s a /q /f goto end :error echo 格式: deleuser 班级名称 班级代称 人数 建立目录的根目录 echo 如: 要删除计算机0210班级用户,人数为50,想把班级目录建在D盘的话 echo 则: deleuser 计算机0210 jsj0210 50 d: goto end :end echo ====成功完成. END |
最后有2点说明:
(1)由于net user命令并不能指定用户的密码到期时间,而如果你需要用户密码比较长的存留期的话,简单的方法就是到[域安全策略]里把[密码最长存留期]设的长一点。(net user 用户名,可以查看密码到期时间。)
(2)如果你要对每个目录的空间大小限额的话,请把目录建在NTFS文件格式的逻辑分区上,再启用这个逻辑分区的磁盘配额,设置每个用户磁盘空间限额,这样就相当于对每个目录的空间进行限额了。
文件打包下载,ManaUser.zip(2KB)。
如何能让这些USER很方便的自主修改密码?
按ctrl+alt+del,选[更改密码]。(XP,要先到“控制面板-用户帐户-更改登录方式”。)
98的话,要登录到域才能改密码,方法是:控制面板-密码-更改其它密码。
如果觉得还不方便,可以在服务器开WEB服务在线修改密码,详情请看suodihai写的《使用WEB方式更改域用户帐户密码 》。地址是:http://suodihai.blog.51cto.com/347951/88554,http://suodihai.blog.51cto.com/347951/89419