如何使用PowerShell在CSV文件中获取用户的到期日期?

问题描述:

Import-CSV -Path .\csv_file.csv | ForEach-Object { 
    Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} –Properties “DisplayName”, “msDS-UserPasswordExpiryTimeComputed” | 
    Select-Object -Property “Displayname”,@{Name=“ExpiryDate”;Expression={[datetime]::FromFileTime($_.“msDS-UserPasswordExpiryTimeComputed”)}} 
} | Export-Csv .\results.csv -NoTypeInformation 

这很好用,但在AD中获得所有用户。我们有成千上万的用户。如何使用PowerShell在CSV文件中获取用户的到期日期?

我想获取CSV文件(第1列)中的用户。如果可能的话,我很乐意在同一个文件中创建第二个列,并附带过期日期。

的CSV文件

Jason.Bourne 
Thomas.Smith 
Judy.Doe 
Topsy.kret 

我修改了PowerShell脚本但不知道如何来获取值从CSV文件导入的Get-ADUser便有

+0

你的csv文件格式是什么?你能否提供一个例子来证明这一点......如果需要保护隐私,则需要组成姓名等。 –

+0

@JamesC。我更新了我的代码并添加了CSV文件格式。这是一个非常简单的CSV文件,因为它只包含samaccountname –

随着CSV文件中samaccountname头:

Import-CSV -Path C:\folder\input.csv | ForEach-Object { 
    Get-ADUser -Identity $_.samaccountname –Properties DisplayName,msDS-UserPasswordExpiryTimeComputed,Enabled,PasswordNeverExpires | Select-Object -Property Displayname,Enabled,PasswordNeverExpires,@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}} 
} | Export-CSV C:\folder\results.csv -NoTypeInformation 
+0

我收到错误。 Get-ADUser:找不到接受参数'@ {Jason.Bourne = Thomas.Smith}'的位置参数。 –

+0

我用用户名和相同的东西添加了一个标题行。 Get-ADUser:找不到接受参数''{{samaccountname = Jason.Bourne}'的位置参数' –

+0

我用两种方法更新了我的答案以纠正此问题 –