承接上一个Section,我们接下来给大家讲利用FOR 语句实现另外一个功能,批量给所有用户添加某个用户组的修改用户的权限。这部分其实也是来源于一个实例,我们在对EXCHANGE SERVER的用户进行迁移的时候,发现一个问题。就是部分用户没有继承上一个OU的权限,导致Exchange 2010 无法从2003 迁移用户,提示用户权限不足。后来发现Exchange servers这个组不在这个用户的安全性列表中。我们要做的就是将所有用户权限添加"Exchange servers”组FULL CONTROL 的权限,怎么办呢 ?如果一个一个通过GUI的方式去修改,几千个用户得要改到什么时候?
还好,Windows 提供一个命令行模式修改用户的权限,如果有命令行再结合其他的命令,我们就能批量修改用户的权限了,这是一个好消息。
DSACLS 命令是修改AD中某个对象的相应的权限的命令,我们需要的是给所有的用户添加相应的”exchange servers” 组Full control, 这个我们怎么来做呢?
下面的命令即可实现相应的功能:
For /f %i in (‘dsquery user’) do dsacls %i /G “exchang servers”:ga
其实这个命令是引用结果为 dsquery user 的结果,然后将相应的USER的权限将”exchange servers” 的genericall 权限加上!
这个实例完成后给大家一个题目:
如果我要批量修改某一批目录的权限,这部分用户的权限均不同,我该怎么写FOR 语句才能实现我想要的功能?