我正在使用列出合同到期日的用户的AD生成报告。 到目前为止,我已经能够提出这个问题,输出到带有自定义标题的CSV文件并缩短日期。
Get-QADUser -SizeLimit 0 -IncludedProperties AccountExpires,Domain,Name -DontUseDefaultIncludedProperties | Where { $_.Title -ne "Resource" } | Select @{Label="Domain";Expression={(($_.Domain).Name)}},@{Label="Employee Name";Expression={($_.Name)}},@{Label="Contract Expiry Date";Expression={(($_.AccountExpires).ToShortDateString())}},title,department,Office | Export-Csv C:\ExportForHR.csv -NoTypeInformation
我想要做的是在“合同到期日”栏中放置一个自定义值,如果它们没有价值。
即。如果我没有合同,则默认值为null,因此电子表格中不显示任何内容。但是,如果我想在该字段中设置“无合同到期”或“全职到期”,该怎么办?
无法使用上述命令找到任何合适的内容。我可以编写一个完整的PowerShell脚本,通过不使用Select和export-csv之类的东西输出到CSV文件,但我不愿意,除非我真的不得不这样做。
答案 0 :(得分:0)
你约有95%的路在那里。 Select-Object的Expression部分中的脚本块是一个完整的脚本块,因此您可以在那里执行测试:
Get-QADUser -SizeLimit 0 -IncludedProperties AccountExpires,Domain,Name -DontUseDefaultIncludedProperties |
Where { $_.Title -ne "Resource" } |
Select-Object
@{Label="Domain";Expression={(($_.Domain).Name)}},
@{Label="Employee Name";Expression={($_.Name)}},
@{Label="Contract Expiry Date";Expression={
if ($_.AccountExpires -ne $null) {
$_.AccountExpires).ToShortDateString()
} else {
$CustomValue
}
},
title,
department,
Office
| Export-Csv C:\ExportForHR.csv -NoTypeInformation