仅过滤特定OU中的用户对象

时间:2016-03-07 10:02:28

标签: powershell active-directory

我正在编写一个powershell脚本来重命名特定目标OU中的用户。

脚本运行正常,但是我注意到该脚本也尝试重命名子OU中包含的任何内容。这不是我追求的行为,但我不确定如何将过滤器更改为特定于此要求。

这是剧本的最高部分。

Import-Module ActiveDirectory

# Change the following Target OU to match your target
$ou = "ou=Testing,ou=My Users,dc=my,dc=domain"

# Set up Log files
$users = $null
New-Item -ItemType Directory -Force -Path C:\Logs

$Logfile = "C:\Logs\$($ou).log"
Out-File -FilePath $Logfile -Force -encoding ASCII

Function LogWrite
{
  Param ([string]$logstring)
  Add-content $Logfile -value $logstring
  Write-Host $logstring
}

# Start processing

$users = Get-ADUser -SearchBase $ou -Filter * -Properties *
ForEach($user in $users) 
......

我相信-Filter参数需要更多内容,但我不确定是什么,我认为我只需要将对象指定为用户。有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

您仅使用Get-ADUser(仅限用户)而非Get-ADObject(所有对象)指定了用户。您需要为-SearchScope OneLevel指定Get-ADUser。默认值为Subtree(所有子OU)

  

PS> Get-Help Get-ADUser -Parameter searchscope

     

-SearchScope       指定Active Directory搜索的范围。此参数的可能值为:         基数或0         OneLevel或1         子树或2

     

Base查询仅搜索当前路径或对象。 OneLevel   查询搜索该路径或对象的直接子项。 A.   子树查询搜索当前路径或对象以及所有子项   那个路径或对象。

     

以下示例显示如何将此参数设置为子树   搜索。 -SearchScope子树

     

以下列出了此参数的可接受值:

     

     

ONELEVEL

     

子树

     

必需?假

     

位置?命名

     

默认值子树

     

接受管道输入?假

     

接受通配符?假