我有一个非常简单的问题。用什么比较好?当尝试连接到 AD 并从域中提取所有计算机、用户和组时,AD 模块(即 Get-ADComputer)或 DirectoryServices .NET 类。还是根本不重要?
我判断使用哪种方法的关键因素是:
- 哪种方法的脚本运行速度更快?
- 这会减少网络/AD 的负载
- 每种方法可能有哪些限制?
我知道 AD 模块仅默认安装在 Win Server 2008 R2 及更高版本上,因此这显然是旧服务器上的一个缺点,默认情况下不安装该模块。但在当今世界,这确实不是什么大问题,因为没有很多环境中的所有服务器都早于 2008 R2。
我想做的就是将所有用户对象(以及一些重要的字段/属性)、所有计算机对象和所有组对象提取到 .csv。因此,基本上是“搜索”AD 对象并循环遍历每个结果行,然后保存到表中以导出为 .csv。
最佳答案
ActiveDirectory cmdlet 比使用 System.DirectoryServices 直观得多,但是您可能会失去 System.DirectoryServices 提供的一些控制。对于大多数情况,尤其是对于 PowerShell 新手来说,我建议使用 ActiveDirectory cmdlet。
就速度而言,就像 @sodawillow 建议的那样,您可以测量每个的执行时间,然后使用最快的。我可以给你讲一些轶事,但它们不能代表每个人的经历。
关于powershell - 我应该使用 Active Directory 模块 cmdlet 还是 DirectoryServices .NET 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33862471/