此脚本的目的是从AD中提取所有员工in,然后根据SQL中的所有员工in对它们进行检查。SQL中不存在的每个员工ID都是预期的输出。
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
我现在所拥有的似乎可以输出所有员工ID
发布于 2020-07-09 20:30:10
$adpeeps
是AD用户对象的列表,但$sqlpeeps
是EmployeeID,因此请将其更改为:
$adpeeps | Where-Object { $_.EmployeeID -and ($_.EmployeeID -notin $sqlpeeps) }
https://stackoverflow.com/questions/62814660
复制相似问题