【问题标题】:AD users getting locked out every 20 secondsAD 用户每 20 秒被锁定一次
【发布时间】:2018-01-04 22:02:20
【问题描述】:

我一直在寻找答案,但我似乎无法弄清楚为什么我们的一些用户每 30 秒就会被锁定。我解锁了帐户,然后可以在几秒钟内看到登录尝试将它们锁定。我已经尝试过帐户锁定状态和 Netwrix 等工具,但我无法找出导致它的计算机/服务/任务。我确实打开了 netlogon 日志记录,但它没有告诉我它来自哪台计算机,它也没有在事件查看器日志中说明。任何帮助将不胜感激!!! 我在下面放了一个示例事件和 netlogon 行:

Netlogon:

01/04 11:51:07 [LOGON] [20280] DOMAIN: SamLogon: Transitive Network login of (null)\John Jones from (via WEB-SERVER) 返回 0xC000006A (from 之后没有任何内容)

事件:

失败信息: 失败原因:未知用户名或密码错误。 状态:0xC000006D 子状态:0xC0000064

工艺信息: 调用方进程 ID:0x0 调用者进程名称:-

网络信息: 工作站名称:
源网络地址:- 源端口:-

【问题讨论】:

  • 认为我应该在此处添加此评论。我还检查了我们的防火墙,没有发生网络攻击。这一切都是从他登录时开始的,他的电脑告诉他需要新的凭据,所以他锁定了他的电脑并解锁了它,从那以后它就一直被锁定。我也进行了多次病毒扫描。

标签: active-directory


【解决方案1】:

您是否使用 LDAP 集成应用程序?

建议这些最终用户清除浏览器缓存(如果尚未) - 如果是 Windows 用户,请清除以下位置的凭据:

凭据管理器->Windows凭据->删除“通用凭据”下的所有条目

您的组织是否对使用 AD 连接到公司 WiFi 的用户进行身份验证?如果是这样,请检查最终用户的手机/平板电脑设备是否已配置新密码,最好的方法是忘记连接并使用新凭据重新连接。

我们过去遇到过非常相似的问题,并通过上述方式解决了。

【讨论】:

  • 不,我们这样做了...我们删除了所有凭据,并且我清除了他的浏览历史记录,但它仍然锁定了该帐户。我不明白为什么我没有从 netlogon 中的工作站或事件 ID 中获得任何信息。
  • 最终用户是否使用可能具有缓存密码的 VPN、RDP 终端会话?
  • 不,也没有。
  • 您的用户的电子邮件帐户是否使用 AD 密码?如果是这样,您是否已退出 Office 应用程序/例如 Word/Outook/ODFB,如果密码与 AD 相同并且用户使用电子邮件在用户电话...
  • 我们使用office 365,电子邮件根本不涉及域。它们是完全独立的登录。
【解决方案2】:

我最近为自己做了这个。

该脚本可以向您显示发生锁定事件的时间戳、用户名、机器名称。

代码如下:

# Set default parameters and variables
param (
    [string]$DomainName = $env:USERDOMAIN,
    [string]$UserName = "*",
    [datetime]$StartTime = (Get-Date).AddDays(-3)
)

# check if current powershell version is 4 or higher

if ($Host.Version.Major -lt "4") {
    Write-Host "`n`nError: You need at least version 4 PowerShell for logging to work, `nCurrent version:"$Host.Version.Major -BackgroundColor Red -ForegroundColor white
    Write-Host "`nBefore you start using this script, please upgrade your PowerShell from Microsoft website!" -BackgroundColor Yellow -ForegroundColor Black
    Read-Host "`n`nScript execution finished, press enter to exit!"
    Exit
}

# Grab the information about your AD forest
$Forest = [system.directoryservices.activedirectory.Forest]::GetCurrentForest()

# Get list of all domain controllers in the forest
$DC = $Forest.domains | ForEach-Object {$_.DomainControllers} | ForEach-Object {$_.Name}


# Prompt user to enter a pacific username or accept default (which means look for all locked out events)
Write-Host "`n`nEnter a UserName to search user specific locked out events `n`nOR `n`nPress enter to search all locked out usernames!" -BackgroundColor Yellow -ForegroundColor Black
sleep 3

$TestName = Read-Host "`nPlease enter a UserName or Press enter"
if ($TestName -ne $null -and $TestName) {[string]$UserName = $TestName}



Write-Host "`nScript will search for locked out events on the following domain controllers..." -BackgroundColor Gray -ForegroundColor Black
$dc

# Search for locked out event of each DC and store them in variable
$dc | foreach {

    Write-Host "`nChecking for locked out events on $_, please wait..." -BackgroundColor Gray -ForegroundColor Black
    $OutPut = Invoke-Command ($_) {

    $ErrorActionPreference = "SilentlyContinue"
    Get-WinEvent -FilterHashtable @{LogName='Security';Id=4740;StartTime=$Using:StartTime} |
        Where-Object {$_.Properties[0].Value -like "$Using:UserName"} |
        Select-Object -Property TimeCreated, 
            @{Label='UserName';Expression={$_.Properties[0].Value}},
            @{Label='ClientName';Expression={$_.Properties[1].Value}}


    $ErrorActionPreference = "Continue"
    } | Select-Object -Property TimeCreated, 'UserName', 'ClientName' |Out-Host

    if ($OutPut -eq $null -and !$OutPut) {Write-Host "`nWarning: No lockout events were found!`nContinuing the search..." -BackgroundColor Yellow -ForegroundColor Black}
    else {$OutPut}
}

【讨论】:

    猜你喜欢
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    相关资源
    最近更新 更多