Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用powershell从get ADuser获取更多数据_Powershell_Active Directory - Fatal编程技术网

如何使用powershell从get ADuser获取更多数据

如何使用powershell从get ADuser获取更多数据,powershell,active-directory,Powershell,Active Directory,我正在尝试获取一个CSV,其中包含密码即将过期的员工,并获取他们的经理姓名、员工职务、员工姓名和密码过期日期 但是,当我运行此操作时,我会获取员工姓名和密码过期日期。没有其他字段。我不明白哪里出了问题好的,有一些错误导致了问题: 你有一个分号;在“选择对象”部分中的“密码过期日期”属性之后。这导致代码在该点终止。应该是逗号。 对于Manager属性,您的表达式不正确。在SamAccountName后面有结束括号。它应该在这段时间之前。此外,您正在尝试将DN与SamAccountName数据匹配,

我正在尝试获取一个CSV,其中包含密码即将过期的员工,并获取他们的经理姓名、员工职务、员工姓名和密码过期日期


但是,当我运行此操作时,我会获取员工姓名和密码过期日期。没有其他字段。我不明白哪里出了问题

好的,有一些错误导致了问题:

你有一个分号;在“选择对象”部分中的“密码过期日期”属性之后。这导致代码在该点终止。应该是逗号。 对于Manager属性,您的表达式不正确。在SamAccountName后面有结束括号。它应该在这段时间之前。此外,您正在尝试将DN与SamAccountName数据匹配,以便它不会返回任何内容。只需执行Get ADUser并将标识设置为$\管理器输出。从这里,您可以使用括号从管理器的完整ADUser对象中输出所需的任何元数据。您可以将SamAccountName替换为DisplayName或其他内容

Import-Module ActiveDirectory
Get-ADUser -SearchBase "OU=CompanySite,DC=example,DC=domain,DC=com" -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties "SamAccountName","msDS-UserPasswordExpiryTimeComputed", "Department", "Title", "Manager" | 
  Select-Object -Property "SamAccountName", @{Name="Password Expiry Date"; Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}; @{Label="Manager";Expression={(Get-aduser -filter {sAMAccountName -eq $_.Manager}.sAMAaccountName)}};# |
     Export-Csv "C:\Update\PasswordExpired.csv" -NoTypeInformation
不包括标题和名称,因为您没有在选择对象代码中调用它们。Get ADUser的-Properties部分仅将属性添加到检索到的属性列表中。在“选择”中设置的是输出到屏幕或文件的内容

您在导出CSV部分之前有一个注释标记,因此该部分也没有运行。 这是密码。我的广告中没有manager属性,因此无法验证该部分,但其余部分运行正常。我还使它更便于携带。SearchBase现在在变量中指定,文件的导出位置也是如此。此外,您不需要在-Properties部分指定SamAccountName,因为这是Get ADUser的默认属性

Your code:    (Get-ADUser -filter {SamAccountName-eq $_.Manager}.SamAccountName)
Correct code: (Get-ADUser $_.Manager).SamAccountName

我们在AD中为用户设置了管理器,但是该字段没有填充到Exporto。好的,我已经更新了代码。没有经理的数据,我不知道出了什么问题。这是你和修正案的对比。您的代码:Get ADUser-filter{SamaAccountName eq$\.Manager}.SamaAccountName注意您的SamaAccountName拼写错误正确的代码:Get ADUser$\.Manager.SamaAccountName管理器代码提供管理器的DN。您可以使用$\ Manager值执行get aduser,然后获取完整的AD用户对象,然后可以选择获取SamAccountName或DisplayName或任何您想要的内容。
    Import-Module ActiveDirectory
    $SearchPath = "OU=CompanySite,DC=example,DC=domain,DC=com"
    $ExportPath = 'C:\Update\PasswordExpired.csv'

    $Users = Get-ADUser -SearchBase $SearchPath -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties "msDS-UserPasswordExpiryTimeComputed", "Department", "Title", "Manager" 
    $Users | Select-Object -Property Name,"SamAccountName",Title,@{Name="Password Expiry Date"; Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}},@{Label="Manager";Expression={(Get-ADUser $_.Manager).sAMaccountName}} | Export-Csv $ExportPath -NoTypeInformation