Powershell Перечислить все, чего нет в другом - PullRequest
0 голосов
/ 09 июля 2020

Цель этого скрипта - извлечь все идентификаторы сотрудников из AD, а затем сравнить их со всеми идентификаторами сотрудников в SQL. Каждый идентификатор сотрудника, которого нет в SQL, является предполагаемым выводом.

import-module activedirectory
$sqlpeeps = Invoke-Sqlcmd -ServerInstance '192.168.1.1' -Database 'COMPANY' -Query "SELECT EmployeeID FROM [COMPANY].[dbo].[employee] WHERE [COMPANY].[dbo].[employee].[EmployeeStatus] in ('A', 'S', 'L')"
$adpeeps = get-aduser -filter * -searchbase "OU=OU,OU=OU,OU=OU,DC=DC,DC=COM" -properties 'EmployeeID'

$adpeeps | where-object { $_ -notin $sqlpeeps} | out-host

То, что у меня сейчас, похоже, выводит все идентификаторы сотрудников

1 Ответ

1 голос
/ 09 июля 2020

$adpeeps - это список пользовательских объектов AD, а $sqlpeeps - это EmployeeID, поэтому измените его на:

$adpeeps | Where-Object { $_.EmployeeID -and ($_.EmployeeID -notin $sqlpeeps) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...