用于从文本文件获取用户名和lastlogon / off的Powershell脚本

时间:2018-09-11 15:20:05

标签: powershell

$Inventory = Get-Content -Path "C:\Temp\computer list.txt" 
foreach ($Computer in $Inventory) {
    (Get-WmiObject -Class win32_process -ComputerName $Computer | Where-Object name -Match explorer).getowner().user
}

我正在尝试运行一个脚本,该脚本将通过与AD关联的文本文件中的计算机名称列表来获取lastlogon的用户名和时间戳。

我可以设法获取名称,但是在遍历列表时花了比预期更长的时间,因此遇到了空值错误。

我该如何解决该问题并为上次登录/注销的用户添加时间戳?

1 个答案:

答案 0 :(得分:0)

更好的方法是解析事件日志以找到其注销时间

此脚本看起来很合适

https://gallery.technet.microsoft.com/scriptcenter/Find-user-logon-duration-667b8c48

然后您可以像这样使用它

$Inventory = Get-Content -Path 'C:\Temp\computerlist.txt'
ForEach ($Computer in $Inventory) {
    Get-OSCUserLogonDuration -ComputerName $Computer -IncludeRemoteInteractive - 
    Verbose | FT -AutoSize
}