0

此脚本的目的是从 AD 中提取所有员工 ID,然后将它们与 SQL 中的所有员工 ID 进行检查。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

4

1 回答 1

1

$adpeeps是 AD 用户对象的列表,但是$sqlpeeps是 EmployeeID,因此将其更改为:

$adpeeps | Where-Object { $_.EmployeeID -and ($_.EmployeeID -notin $sqlpeeps) }
于 2020-07-09T12:30:10.453 回答