我对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
答案 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。底线是LastLogonDate
是LastLogonTimeStamp
,它已被转换为Date对象。