gpt4 book ai didi

powershell - 根据列表禁用的AD用户

转载 作者:行者123 更新时间:2023-12-03 01:30:11 28 4
gpt4 key购买 nike

我正在尝试编写一个简单的脚本,该脚本将告诉我列表中禁用了哪些AD用户。

<#
512 = Enabled
514 = Disabled
66048 = Enabled, password never expires
66050 = Disabled, password never expires
#>


Write-Host "Enter Full File Path for User List"
$UserListPath = Read-Host "Path"

$Users = Get-Content $UserListPath

foreach ($user in $users) {
$UAC = Get-Aduser -Identity $user -Properties "useraccountcontrol" | Select-Object -ExpandProperty "useraccountcontrol" | Out-String

If($UAC -eq "514"){
Write-Host "$user Is Disabled" -ForegroundColor Red
}


elseif ($UAC -eq "66050") {
Write-Host "$user Is Disabled" -ForegroundColor Red
}
}

最佳答案

userAccountControl 属性是位标志。这意味着二进制数的每个数字都是一个具有不同含义的标志。
因此,虽然51466050的值确实表示已禁用,但还有许多其他十进制值也表示已禁用。导致帐户停用的真正原因是第二位是1。您可以在这些数字的二进制表示形式中看到这一点:

514 = ‭001000000010‬

66050 = ‭00010000001000000010‬


确定帐户被禁用的唯一确定方法是使用 bitwise operator检查正确的位。
但是将 userAccountControl转换为像您一样的字符串也没有意义。
因此,循环的内部应如下所示:
$UAC = (Get-Aduser -Identity $user -Properties "useraccountcontrol").useraccountcontrol

If ($UAC -band 2) {
Write-Host "$user Is Disabled" -ForegroundColor Red
}

关于powershell - 根据列表禁用的AD用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59001631/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com