Хобрук: Ваш путь к мастерству в программировании

Отключить/включить учетную запись пользователя AD из CSV

Как я могу включить или отключить учетную запись пользователя AD из csv на основе записи. Если в статусе обоих указано «Активно», активируется только одна учетная запись вместо обеих. То же самое для файла 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
    }
    

Ответы:


1

В верхней части вашего скрипта вы импортируете CSV, но не похоже, что вы назначили его переменной для своего цикла foreach, если вы назначите его переменной $Users, как показано ниже, остальная часть скрипта должна затем пройти через ваш CSV, как и ожидалось.

$Users = Import-Csv -Path c:\folder\adaccounts.csv
18.01.2021
  • Упс. Я действительно забыл включить его в этот пост. Хотя это есть в сценарии. 18.01.2021
  • Является ли переменная, которую вы назначили, называется $User или $Users Я сделал опечатку в своем ответе, и согласно остальной части скрипта она должна быть $Users 18.01.2021

  • 2

    -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" 
        }
    }
    
    18.01.2021
    Новые материалы

    Неделя 1 — Кентерберийские рельсы.
    Неделя 1 — Кентерберийские рельсы. So. Мы все еще живы, все еще усердно работаем и еще не пассивно-агрессивно рассылаем друг другу сообщения «за мое последнее сообщение в Slack…», поэтому, на..

    Цена завтрашнего дня  — Джефф Бут
    Технологический прогресс в наши дни происходит с молниеносной скоростью, и мы не в состоянии это понять. Джефф в основном говорит о влиянии технологий на экономику по всему миру. Он твердо верит..

    Данные: суперсила современного бизнеса
    В цифровой среде данные превратились из простого побочного продукта бизнес-операций в центральный актив, стимулирующий рост и инновации. Крейг Манди, бывший главный директор по стратегии..

    Как симулировать серию пенальти на Python с помощью симуляции Монте-Карло, часть 1: генерация функций
    Серия пенальти была огромным испытанием во время чемпионата мира по футболу. Они вызвали много споров в социальных сетях и новостных агентствах. Даже финальный матч турнира решался по..

    AST для разработчиков JavaScript
    TL; DR Эта статья - мое выступление на недавно состоявшейся конференции Stockholm ReactJS Meetup. Вы можете посмотреть слайды здесь..

    5 проектов на Python, которые нужно создать прямо сейчас!
    Добро пожаловать! Python — один из моих любимых языков программирования. Если вы новичок в этом языке, перейдите по ссылке ниже, чтобы узнать о нем больше:

    Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
    DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..