PowerShell的Active Directory属性
我试图找到活动目录的属性:PowerShell的Active Directory属性
$strFilter = "(&(objectCategory=User))"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = "Subtree"
$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults){
$objItem = $objResult.Properties
我可以调用$ objitem.name,但我不知道我有哪些访问其他属性。
我怎样才能找到我可以从$ objitem访问哪些属性?
编辑:
使用下面的答案,使用此解决方案:
foreach ($objResult in $colResults){
($colResults)[0].Properties.PropertyNames
}
foreach ($objResult in $colResults){ $objResult.Properties | % {$_.propertynames} }
应显示每个结果属性的钥匙。
使用get-member
(别名为gm
)cmdlet来获取所有的属性和方法。像这样,
$objItem | gm
另一种方法是将管的对象format-list
(别名为fl
)小命令,这将不列出的方法。像这样,
$objItem | fl *
谢谢你的回答是匿名的。这样做,我没有得到“名称”,“电话号码”等,这些都是我想知道的。 – 2011-04-08 12:05:26
好的,之前的答案是“Powershell”功能。如果你真的想知道你可以达到什么样的属性(类别用户这里),你必须看看架构。这是在Windows服务器上注册的对象,其注册为schmmgmt.dll COM对象。
C:\>regsvr32 c:\WINDOWS\system32\schmmgmt.dll
JP
PowerShell功能可让您获得答案。另外,我的系统当然没有schmmgmt.dll,所以PowerShell解决方案具有更少的依赖关系。 – JasonMArcher 2011-04-08 16:01:12
好的,但是对于没有为给定对象赋值的属性会发生什么?您可以使用ADSIEDIT.MSC查看架构。如果您的计算机上没有安装管理工具。 – JPBlanc 2011-04-08 16:47:36
这将更快:'($ colResults)[0] .Properties.PropertyNames' – JasonMArcher 2011-04-08 15:59:15
工程就像一个魅力。贾森说,这似乎更快。谢谢你们俩! – 2011-04-12 06:59:42