我正在重写Powershell中的脚本,以便通过REST Web服务将所有用户从Active Directory导出到数据仓库。 我的旧脚本基于LDAP协议和System.DirectoryServices .dll。 在此脚本中,对于每个用户,我必须检查不同组的成员身份。 为此,我选择了“memberof”属性并使用组名和属性成员进行了包含测试。
对于6.500用户,完成脚本大约需要1小时。 花费大部分时间是由于在Web服务和包含测试中执行的业务代码。
现在,我想使用Active Directory模块和Get-ADUser命令。 如果我可以优化脚本执行的持续时间,那将会很酷。
我有3个选项: - 我继续测试“memberof”属性和“包含”运算符。 - 为每个用户使用Get-ADMembership(必须非常长!)。 - 在选择用户并检查此矩阵中每个用户的成员资格之前,在矩阵中存储所有成员资格(仅用户登录)。
我是Powershell的菜鸟,所以如果你有最佳实践,那就太棒了!
谢谢!