Использование PS для запроса SQL для списка пользователей, а затем отключить учетные записи Active Directory? - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь использовать Powershell для запроса в базе данных SQL списка приостановленных пользователей, передачи в переменную, а затем использовать его для l oop сквозного и отключения этих учетных записей AD. Вот код, который я использую ... обратите внимание, я сейчас пытаюсь записать вывод вместо внесения изменений, поэтому я не делаю ничего, о чем сожалею.

Import-Module ActiveDirectory
$Users = Invoke-Sqlcmd -ServerInstance 'SERVER' -Database 'NAME' -Query "SELECT EmployeeID, 
EmployeeStatus FROM [NAME].[dbo].[employee] WHERE EmployeeStatus = 'S'"

foreach ($user in $users)
{
    Get-ADUser -Filter "EmployeeID -eq '$($user.EmployeeID)'" `
    -SearchBase "OU=Logins,DC=domain,DC=com" |
    #Set-ADUser -Identity $Name -Enabled $False
    Write-Verbose $User
}

Запрос SQL работает нормально, но когда я запускаю l oop, он выдает эту ошибку:

Write-Verbose: входной объект не может быть привязан ни к каким параметрам для команды, потому что команда не принимает вход конвейера или вход и его свойства не соответствуют ни одному из параметров, принимающих конвейер.

Я просто неправильно форматирую это? Или есть другой способ, которым я должен думать об этом?

Заранее спасибо!

1 Ответ

0 голосов
/ 25 февраля 2020

Если вы хотите найти неактивные учетные записи пользователей в Active Directory, вы можете использовать Search-ADAccount cmdlet. Вы должны сделать это, используя параметр “-AccountInActive” с Search-ADAccount.

Командой PowerShell, приведенной ниже:

Search-ADAccount –AccountInActive –TimeSpan 120:00:00:00 –ResultPageSize 2000 –ResultSetSize $null | ?{$_.Enabled –eq $True} | Select-Object Name, SamAccountName, DistinguishedName | Export-CSV “C:\Temp\InActiveADUsers.CSV” –NoTypeInformation

Я дал временной интервал на 120 дней и экспортирую список в файл csv.

...