在多个字段中用字符串替换空值

时间:2013-02-21 22:59:44

标签: powershell active-directory

如何使用字符串“never log”替换Lastlogon字段中的$ null值,并将此值放在“Last Logon days”列中

Search-ADAccount -UsersOnly  -AccountDisabled:$false | Get-ADUser -Properties Name, LastLogon | select Name, @{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}}, @{N='Last Logon Days'; E={$($(Get-Date) - $([DateTime]::FromFileTime($_.LastLogon))).Days}}

我的帐户从未在网络上登录,并且他们返回的最后登录日期为12/31/1600 7:00:00 PM,这是一个很远的地方。

1 个答案:

答案 0 :(得分:1)

尝试将此作为您的选择语句:

select Name, @{N='LastLogon'; E={`
    if ( [DateTime]::FromFileTime($_.LastLogon) -eq $null ) {
        return "Never log" }
    else { return [DateTime]::FromFileTime($_.LastLogon) }}},`
    @{N='Last Logon Days'; E={`
    if ( [DateTime]::FromFileTime($_.LastLogon) -eq $null ) {
        return "Never log" }
    else {  return $($(Get-Date) - $([DateTime]::FromFileTime($_.LastLogon))).Days}}}

我现在无法测试,但过去我做过类似的事情并取得了成功。