2

我对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($_)}

但你可以猜到这不起作用。有人可以指出我正确的方向吗?也许我正在处理这个错误,我应该寻找一种不同的方式来获取最后一次注销/注销详细信息

4

2 回答 2

2

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

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

在我的计算机上,检索结果所需的时间有很大差异。

于 2013-05-16T15:50:21.430 回答
1

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

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

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

于 2013-05-16T15:36:20.090 回答