如何使用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便有
随着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
我收到错误。 Get-ADUser:找不到接受参数'@ {Jason.Bourne = Thomas.Smith}'的位置参数。 –
我用用户名和相同的东西添加了一个标题行。 Get-ADUser:找不到接受参数''{{samaccountname = Jason.Bourne}'的位置参数' –
我用两种方法更新了我的答案以纠正此问题 –
你的csv文件格式是什么?你能否提供一个例子来证明这一点......如果需要保护隐私,则需要组成姓名等。 –
@JamesC。我更新了我的代码并添加了CSV文件格式。这是一个非常简单的CSV文件,因为它只包含samaccountname –