我正在尝试使用Powershell从AD获取以下字段

时间:2019-05-21 19:30:15

标签: powershell active-directory

Import-Module activedirectory


$Name = "Larry Page"
$Searcher = [ADSISearcher]"(&(objectCategory=person)(objectClass=user)(cn=$Name))"
[void]$Searcher.PropertiesToLoad.Add("sAMAccountName")
$Results = $Searcher.FindAll()
ForEach ($User In $Results)
{
    $NTName = $User.Properties.Item("sAMAccountName")
    $CompanyName = $User.Properties.Item("company")
    $NTName + " " + $CompanyName
    [string]$userName = $NTName.properties.name
    Get-ADUser "L2371732" -Properties company,PasswordExpired, PasswordLastSet, PasswordNeverExpires

}

到目前为止,这是我的代码。我试图在下面的行中用$ userName代替L2371732,但是我遇到了另一个错误,因此我在Get-ADUser中硬编码了用户名。

我只希望我指定的字段,但是我得到了所有信息(公司,专有名称,已启用等)

1 个答案:

答案 0 :(得分:1)

只是试图专注于问题的标题部分。

根据documentation -Properties执行以下操作:

  

指定要从服务器检索的输出对象的属性。使用此参数可检索默认设置中未包含的属性。

因此,除了默认设置外,您还会看到您要的内容。如果您不想要这些属性,可以通过管道将其拖放到Select-Object并仅询问您需要什么。

$props = 'company', 'PasswordExpired', 'PasswordLastSet', 'PasswordNeverExpires'
Get-ADUser "L2371732" -Properties $props | Select-Object $props

如果您还希望返回默认属性,例如samaccountname可以毫无问题地添加到列表中。