我对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($_)}
但你可以猜到这不起作用。有人能指出我正确的方向吗?也许我说错了,我应该看一下获得最后注销/注销细节的不同方式
答案 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
)限制处理的事件。