繁体   English   中英

当返回的值是$ null或类似值时,将自定义值输出到PS表中

[英]Output custom value into PS table when value returned is $null or similar

我正在根据列出的合同到期日期的用户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,因此电子表格中未显示任何内容。 但是,如果我想在字段中输入“无合同到期”或“全职到期”怎么办?

使用上述命令找不到适合的内容。 通过不使用Select和export-csv之类的方法,我可能可以编写一个完整的powershell脚本以将其输出到CSV文件,但是我宁愿不这样做,除非我真的必须这样做。

您大约到达那里的方式的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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM