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

.net PowerShell Active Directory是否调用System.DirectoryServices.AccountManagement,.net,powershell,active-directory,.net,Powershell,Active Directory,有人知道Microsoft PowerShell Active Directory模块是否调用System.DirectoryServices.AccountManagement.Net命名空间吗?或者如果微软已经开放了这个模块,这样我就可以自己看了 我试图画出一个堆栈拓扑,突然意识到我真的不知道Get-ADUser和New-ADUser这样的cmdlet在内部做什么,也不知道它们称之为什么,即它们有多抽象。这不完全相同,但非常相似 例如,返回一个对象。与之相比,您会发现它们不仅在名称空间上,而

有人知道Microsoft PowerShell Active Directory模块是否调用System.DirectoryServices.AccountManagement.Net命名空间吗?或者如果微软已经开放了这个模块,这样我就可以自己看了


我试图画出一个堆栈拓扑,突然意识到我真的不知道Get-ADUser和New-ADUser这样的cmdlet在内部做什么,也不知道它们称之为什么,即它们有多抽象。

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

例如,返回一个对象。与之相比,您会发现它们不仅在名称空间上,而且在属性等方面都有所不同。但是仍然有很多抽象在进行,因此会产生开销

如果您担心性能,您可以始终使用PowerShell中的.NET目录条目。实际上,只有DirectoryEntry和DirectorySearcher才有


我不关心性能,但很好的观点和很好的博客文章!我关心的是,如果为不同的受众编写两套工具,一套是在web api表单中,另一套是在.ps1脚本表单中,那么最好至少知道他们是否执行相同的调用。我想我可以从web api调用ps1脚本,但这看起来很奇怪,我不想去那里。你可以从.NET运行PowerShell,但我已经做到了,这很痛苦。您最好换一种方式:使用PowerShell中的.NET类,这并不难。.NET中的所有内容都可以在PowerShell中使用。这是如何做到这一点的快速概述:
([adsisearcher]'samaccountname=jaap').FindOne()            #DirectorySearcher
[adsi]'LDAP://CN=Jaap,OU=AdminUsers,DC=JaapBrasser,DC=Com' #DirectoryEntry