Найти AD SamAccountName с учетом .csv, содержащего только адрес электронной почты - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть исходный файл .csv со столбцом A emailaddress и столбцом B Is this mailbox still in use?.

Мне нужно прочитать файл, найти SamAccountName ADUser на основе заданного атрибута emailaddress, а затем где columnB = NO удалить все учетные записи AD. Если столбец B = YES обновить атрибуты.

Вторая часть, если Yes работает отлично, но я не могу заставить работать первую часть, так как не знаю, как получить, а затем передать SamAccountName команде Remove-ADUser. Любые предложения будут великолепны.

$Users = Import-Csv $SurveyResults
foreach ($user in $users) { 
    if ($($user."Is this mailbox still in use?") -eq "NO") {
        Get-ADUser -Filter "emailaddress -eq '$($user.emailaddress)'" -Property SamAccountName |
            Select-Object -Property emailaddres, samaccountname, wwWHomePage |
            Remove-ADUser -Identity $_.SamAccountName -Confirm:$False
    }
    else {
        Get-ADUser -Filter "emailaddress -eq '$($user.emailaddress)'" -Properties * |
            Set-AdUser -replace @{wWWHomePage = "$($_.wWWHomePage) ACTIVE $(get-date -f yyyy-MM)"}
    }
}

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

На первый взгляд, я бы использовал следующее:

Добавлено редактирование *

$Users = Import-Csv $SurveyResults
foreach ($user in $users) 
{
    $getADUser = Get-ADUser -Filter "emailaddress -eq '$($user.emailaddress)'" -Properties *

    if ($($user."Is this mailbox still in use?") -eq "NO")
    {
        $getADUser | Remove-ADUser -Confirm:$false
    }
    else
    {        
        $getADUser | Set-AdUser -replace @{wWWHomePage="$($_.wWWHomePage) ACTIVE $(get-date -f yyyy-MM)"}
    }
}
0 голосов
/ 02 ноября 2018

Remove-ADUser может принять объект ADUser через конвейер. Если вы уверены, что получите из фильтра только один объект ADUser, или если вы уверены, что хотите удалить всех пользователей, имеющих соответствующий адрес электронной почты, вы можете просто передать результат от Get-ADUser до Remove-ADUser:

$Users = Import-Csv $SurveyResults
foreach ($user in $users) { 
   if ($($user."Is this mailbox still in use?") -eq "NO") {
      Get-ADUser -Filter "emailaddress -eq '$($user.emailaddress)'" | Remove-ADUser -Confirm:$False
   } else {
      Get-ADUser -Filter "emailaddress -eq '$($user.emailaddress)'" -Properties * |
         Set-AdUser -replace @{wWWHomePage="$($_.wWWHomePage) ACTIVE $(get-date -f yyyy-MM)"}
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...