Powershell:无法删除lastlogontimestamp

时间:2016-04-07 20:43:36

标签: powershell

我对Powershell很新,我试图从这个PS脚本中提取一个可读日期。但是我从变量中获取的是从原始查询返回的完整文本块。我知道它必须非常简单。我在这里教自己,我拼凑了这个剧本。但这是我能得到的。 :/

由于

$ADUserName = Read-Host -Prompt 'Enter the AD username'
Function LastLogon { 
    get-aduser $ADUserName -properties lastlogontimestamp
    $mydatetime = $ADUserName.lastlogontimestamp
    [datetime]::FromFileTime($mydatetime)
    $time = [datetime]::FromFileTime($mydatetime)
    Echo $time
    Echo $mydatetime
}
LastLogon

2 个答案:

答案 0 :(得分:2)

问题是$ADUserName变量正在传递到Get-ADUser cmdlet,但cmdlet没有修改它;它返回结果。您没有分配结果,因此会将其传递给输出流。

所有其他变量都依赖于$ADUserName包含它不具备的属性的假设。

所以你可以像这样修改它:

$ADUserName = Read-Host -Prompt 'Enter the AD username'
Function LastLogon { 
    $ADobject = get-aduser $ADUserName -properties lastlogontimestamp
    $mydatetime = $ADobject.lastlogontimestamp
    [datetime]::FromFileTime($mydatetime)
    $time = [datetime]::FromFileTime($mydatetime)
    Echo $time
    Echo $mydatetime
}
LastLogon

但是,您不需要执行您尝试执行的步骤。 Get-ADUser非常适合返回一个包含LastLogonDate属性的对象,其中LastLogonTimeStamp被翻译为[DateTime]

$ADobject = get-aduser $ADUserName -Properties LastLogonDate
$ADObject.LastLogonDate

答案 1 :(得分:0)

您应该使用LastLogonDate代替LastLogonTimeStamp。解释了属性之间的关系here。底线是LastLogonDateLastLogonTimeStamp,它已被转换为Date对象。