批处理批量建立用户并分配权限

  这是我多年前写的一个批处理文件,主要实现:批量建立一个班级的学生用户,并分配权限,通过网上邻居一个学生用户只能访问一个相对应的目录。

  例:要建立计算机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)。

本文章有2 条评论:

  1. 匿名 说道:

    如何能让这些USER很方便的自主修改密码?

  2. 胡杨 说道:

    按ctrl+alt+del,选[更改密码]。(XP,要先到“控制面板-用户帐户-更改登录方式”。)
    98的话,要登录到域才能改密码,方法是:控制面板-密码-更改其它密码。
    如果觉得还不方便,可以在服务器开WEB服务在线修改密码,详情请看suodihai写的《使用WEB方式更改域用户帐户密码 》。地址是:http://suodihai.blog.51cto.com/347951/88554,http://suodihai.blog.51cto.com/347951/89419

添加新评论