繁体   English   中英

使用PS查询用户列表的SQL,然后禁用Active Directory帐户?

[英]Using PS to query SQL for list of users, then disable Active Directory accounts?

我正在尝试使用 Powershell 查询 SQL 数据库中的暂停用户列表,通过管道输入变量,然后使用它来循环并禁用这些 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 查询工作正常,但是当我运行循环时,它给出了这个错误:

Write-Verbose :输入对象不能绑定到命令的任何参数,因为该命令不接受管道输入,或者输入及其属性与接受管道输入的任何参数都不匹配。

我只是格式不正确吗? 或者我应该有另一种思考方式吗?

提前致谢!

如果要在 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 文件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM