[英]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.