8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

使用 PowerShell 获取 Azure VM(Windows 10)用户登录和注销信息

Grant Baugh 1月前

15 0

我是 PowerShell 新手,您能帮助我获取 azure VM 的登录和注销用户信息吗?问题是当我在事件日志中检查时,帐户名称显示为空,我可以看到帐户名称。试过...

我是 PowerShell 新手,您能帮我获取 Azure VM 的登录和注销用户信息吗?问题是,当我在事件日志中检查时,帐户名称显示为空,我可以看到帐户名称。尝试使用 UserId 检查,但没有成功。使用以下内容作为 参考 。需要获取帐户名称(登录到 VM 的人)以及登录和注销时间

目前在虚拟机上运行此脚本,但最终要求是使用笔记本电脑上的 PowerShell 收集虚拟机的信息

# Define the time range for the query
$startTime = (Get-Date).AddDays(-1)  # Last 7 days
$endTime = Get-Date

# Get logon events (Event ID 4624)
$logonEvents = Get-WinEvent -FilterHashtable @{
    LogName = 'Security'
    Id = 4624
    StartTime = $startTime
    EndTime = $endTime
}

# Get logoff events (Event ID 4634)
$logoffEvents = Get-WinEvent -FilterHashtable @{
    LogName = 'Security'
    Id = 4634
    StartTime = $startTime
    EndTime = $endTime
}

# Create a custom object to store the results
$results = @()

# Process logon events
foreach ($logonEvent in $logonEvents) {
    $accountName = ($logonEvent.Properties | Where-Object {$_.Id -eq 5}).Value
    $logonTime = $logonEvent.TimeCreated

    # Find the corresponding logoff event
    $logoffEvent = $logoffEvents | Where-Object {
        ($_.Properties | Where-Object {$_.Id -eq 5}).Value -eq $accountName -and
        $_.TimeCreated -gt $logonTime
    } | Select-Object -First 1

    $logoffTime = $logoffEvent.TimeCreated

    # Add the result to the array
    $results += [PSCustomObject]@{
        AccountName = $accountName
        UserLogonTime = $logonTime
        UserLogoffTime = $logoffTime
    }
}

# Display the results as a table
$results | Format-Table -AutoSize
帖子版权声明 1、本帖标题:使用 PowerShell 获取 Azure VM(Windows 10)用户登录和注销信息
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Grant Baugh在本站《powershell》版块原创发布, 转载请注明出处!
最新回复 (0)
  • Properties 集合 中的 属性对象 Properties collection 仅有一个成员属性 - 属性 Value - 它们没有属性 Id ,因此:

    $accountName = ($logonEvent.Properties | Where-Object {$_.Id -eq 5}).Value
    

    ... 将不起作用。

    索引 选择值, 请使用索引访问操作,或者 Select-Object -Index

    $accountName = $logonEvent.Properties[5].Value
    # or 
    $accountName = ($logonEvent.Properties | Select-Object -Index 5).Value
    
返回
作者最近主题: