【问题标题】:Email Account Lock Out Notification - Powershell电子邮件帐户锁定通知 - Powershell
【发布时间】:2020-02-07 23:02:02
【问题描述】:

我想通过电子邮件发送 SysAdmin 事件 ID 4625(帐户锁定)发生。

我有以下代码,它只是找到。见附件的输出:

当前代码:

$AccountLockOutEvent = Get-EventLog -LogName "Security" -InstanceID 4625 -Newest 1
$LockedAccount = $($AccountLockOutEvent.ReplacementStrings[0])
$AccountLockOutEventTime = $AccountLockOutEvent.TimeGenerated
$AccountLockOutEventMessage = $AccountLockOutEvent.Message
$messageParameters = @{ 
Subject = "Account Locked Out: $LockedAccount" 
Body = "Account $LockedAccount was locked out on $AccountLockOutEventTime..`n`nEvent 
Details:`n`n$AccountLockOutEventMessage"
From = "" 
To = "" 
SmtpServer = ""
} 
Send-MailMessage @messageParameters

Powershell 大师的问题

1 - 如何获取锁定的确切原因而不是 %%2313 和其他信息,例如 samaccountname。而不是在主题行中使用帐户锁定 s-1-0-0,我想在那里查看帐户名称。
2 - 有没有办法获取 ADuser 信息,以便我们可以同时通过电子邮件通知用户他们的帐户被锁定以联系系统管理员解锁帐户?

【问题讨论】:

  • 问题:2. 如果他们的帐户被锁定,他们将如何登录查看他们的电子邮件,并阅读他们的帐户被锁定的消息?
  • 这是个好问题。创建帐户时使用的电子邮件地址始终与 AD 帐户域不同。简而言之,它们属于两个独立的域。示例:他们的 AD 帐户是 demo@abc.com,他们的电子邮件是 demo@xyz.com。所以,我想把邮件发到 xyz.com

标签: windows powershell active-directory event-log audit-logging


【解决方案1】:

您可以使用此 sn-p 获取包含所需字段的输出。 SubjectUserName 和 SubjectDomainName。

$events = Get-WinEvent -FilterHashtable @{logname='Security'; ID=4625; } -MaxEvents 1 
$event = $events
[xml]$eventXML = [xml]$Event.ToXml()
$eventXML.Event.EventData.Data

输出将如下所示。

Name              #text       ----              -----   
SubjectUserSid    S-0-0-00-0000000000-0000000000-0000000000-0000       
SubjectUserName   MyUsername      
SubjectDomainName MyHostname           
SubjectLogonId    0x00000000           
PrivilegeList     SeSecurityPrivilege

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-12
    • 2022-11-10
    • 2020-09-07
    • 2018-04-24
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2011-05-21
    相关资源
    最近更新 更多