簡體   English   中英

從 CSV 禁用/啟用 AD 用戶帳戶

[英]Disable/Enable AD user account from CSV

如何根據條目從 csv 啟用或禁用 AD 用戶帳戶。 如果兩者的狀態都顯示為 Active,則僅啟用一個帳戶而不是兩個帳戶。 禁用狀態 CSV 文件相同:

Samaccountname,Status
john.doe,Active
jane.doe,Disabled

到目前為止我所擁有的:

Import-CSV -Path c:\folder\adaccounts.csv

ForEach ($User in $Users)
{
    IF ($User.Status -contains "Disabled")
    {
        Get-ADUser -Identity $user.samaccountname | Disable-ADAccount
    }
    elseif ($User.Status -contains "Active")
    {
        Get-ADUser -Identity $user.samaccountname | Enable-ADAccount
    }
    

在腳本的頂部,您正在導入 CSV 但如果您將其分配給如下所示的$Users變量,則看起來您並未將其分配給 foreach 循環的變量,那么腳本的 rest 應該是 Z34D1F91FB2E5A89A 到 Z34D1F91FB2E5A89B1A您的 CSV 符合預期。

$Users = Import-Csv -Path c:\folder\adaccounts.csv

-Contains是一個運算符,用於測試是否可以在數組中找到某些內容,而不是用於測試字符串是否等於另一個字符串。

我會像這樣修改你的代碼:

Import-CSV -Path 'c:\folder\adaccounts.csv' | ForEach-Object {
    # test if a user with that SamAccountName can be found
    $user = Get-ADUser -Filter "SamAccountName -eq '$($_.Samaccountname)'" -ErrorAction SilentlyContinue
    if ($user) {
        # set Enabled if Status is not 'Disabled'
        $user | Set-ADUser -Enabled ($_.Status -ne 'Disabled')
    }
    else {
        Write-Warning "User $($_.Samaccountname) does not exist" 
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM