PowerShell Active Directory是否调用System.DirectoryServices.AccountManagement

时间:2019-02-28 08:21:11

标签: .net powershell active-directory

有人知道Microsoft PowerShell Active Directory模块是否调用System.DirectoryServices.AccountManagement .Net命名空间吗?或者,如果Microsoft已开源该模块,以便我自己看一下。

我试图绘制一个堆栈拓扑,突然意识到我真的不知道cmdlet(例如Get-ADUser和New-ADUser)在内部做什么,以及它们调用什么(即它们有多抽象)怎么办。

1 个答案:

答案 0 :(得分:1)

不完全相同,但非常相似。

例如,

Get-ADUser返回一个Microsoft.ActiveDirectory.Management.ADUser对象。将其与UserPrincipal进行比较,您会发现它们不仅在名称空间中而且在属性等方面都是不同的。但是,仍然有很多抽象在进行,因此开销很大。

如果您担心性能,则始终可以只使用PowerShell中的.NET DirectoryEntry。实际上,type accelerators仅用于DirectoryEntryDirectorySearcher

([adsisearcher]'samaccountname=jaap').FindOne()            #DirectorySearcher
[adsi]'LDAP://CN=Jaap,OU=AdminUsers,DC=JaapBrasser,DC=Com' #DirectoryEntry