Powershell - 获取上次注销日期和计算机的时间

时间:2013-05-16 13:38:27

标签: powershell powershell-v2.0

我对powershell不是很好,所以这里就是。

我在显示计算机的上次注销日期和时间时遇到问题。到目前为止,我有:

$Logoff = GWMI -Comp $strComputer -Cl Win32_NetworkLoginProfile | 
    foreach-object {Write-Host "Last Logoff: "$_.Lastlogoff}

这给了我一个列表,我猜注销日期和时间。这似乎没问题,所以我尝试使用ConvertToDateTime转换输出以获得可读的日期/时间,但我现在不知道如何在发送回选择的日期时间时使其工作。我试过了:

$Logoff = GWMI -Comp $strComputer -Cl Win32_NetworkLoginProfile | 
    foreach-object {Write-Host "Last Logoff: "ConvertToDateTime($_)}

但你可以猜到这不起作用。有人能指出我正确的方向吗?也许我说错了,我应该看一下获得最后注销/注销细节的不同方式

2 个答案:

答案 0 :(得分:2)

获得与Ansgar建议命令相同结果的另一种方法:

Get-EventLog -ComputerName $Computer -LogName 'Security' -InstanceId 4634 -newest 1 | Select-object TimeGenerated

在我的计算机上,检索结果所花费的时间差别很大。

答案 1 :(得分:1)

您可以从计算机的事件日志中读取最新的注销事件:

Get-EventLog -Computer $strComputer "Security" `
  | ? { $_.EventId -eq 4634 } `
  | sort -Desc TimeGenerated `
  | select -First 1 TimeGenerated

请注意,阅读安全事件日志需要管理员权限。此外,阅读整个事件日志可能需要大量时间,因此您可能希望按日期(-After (Get-Date).AddDays(-1))或数字(-Newest 500)限制处理的事件。