iT邦幫忙

0

請教AD使用者安全性問題

ad
  • 分享至 

  • xImage

各位大大好:
小弟使用AD的委派控制,讓其他同事可以解鎖帳號與變更密碼等工作,但發現該同事使用時,有些帳號可以解鎖,有些帳號解鎖功能反白無法使用,檢查可以解鎖與無法解鎖的使用者發現,無法解鎖的使用者安全性中沒設繼承

請問各位大大有什麼方法Script或Powershell可以讓所有使用者安全性啟用繼承呢?謝謝~

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
zero
iT邦好手 1 級 ‧ 2023-07-19 21:26:46
最佳解答

用Powershell帶網域管理者權限去執行下面的程式碼

小心使用, $users 變數是存放你要改變的帳戶

下面的程式碼有三種方式可以找AD帳戶資訊

並把它們保存在 $users 這個變數內,然後再透過迴圈來做修改

第一個是透過DN位置來找OU內的所有帳戶

第二個是指定群祖名稱內的成員帳戶,這個方法群組內不能有帳戶以外的成員

第三個是指定帳戶名稱(只有單一帳戶)(方便測試用)

請自己先小範圍測試沒問題再去套用大的

$users = Get-ADUser -LDAPFilter "(objectclass=user)" -searchbase "CN=Users,DC=test,DC=com"

$users = Get-ADGroupMember -Identity "Domain users"

$users = Get-ADuser -Identity test

foreach($user in $users)
{
    # 開啟ADSI走LDAP查詢
    $ou = [ADSI]("LDAP://" + $user)

    $sec = $ou.psbase.objectSecurity
 
    if( $sec.get_AreAccessRulesProtected() )
    {
        # 建立繼承規則
        $isProtected = $false

        # 建立保留繼承規則
        $preserveInheritance = $true

        # 寫入ACL規則
        $sec.SetAccessRuleProtection($isProtected, $preserveInheritance)

        # 儲存變動
        $ou.psbase.commitchanges()

        # 顯示資訊
        $message = $user.Name + " 繼承未啟用,執行啟用繼承設定"

        Write-Output $message
    }
    else
    {
        # 顯示資訊
        $message = $user.Name + " 繼承已啟用"

        Write-Output $message
    }
}

感謝大大,小弟再來測試看看

我要發表回答

立即登入回答