我正在编写一个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
参数需要更多内容,但我不确定是什么,我认为我只需要将对象指定为用户。有什么帮助吗?
答案 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
子树
必需?假
位置?命名
默认值子树
接受管道输入?假
接受通配符?假