2016-03-07 80 views
0

我正在編寫一個PowerShell腳本來重命名特定目標OU中的用戶。僅篩選特定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參數需要更多的東西,但我不知道是什麼,我想我需要指定的對象,因爲只有用戶。任何幫助?

回答

2

您已經通過使用Get-ADUser(僅限用戶)而不是Get-ADObject(所有對象)指定了用戶。您需要爲Get-ADUser指定-SearchScope OneLevel。默認值是Subtree(所有子OU)

PS>獲取幫助獲取-ADUser便有 - 參數SearchScope的

-SearchScope 指定的Active Directory搜索的範圍。該參數可能值是: Base或0 ONELEVEL或1個 子樹或2

A基礎查詢只搜索當前路徑或對象。 OneLevel 查詢搜索該路徑或對象的直接子項。 A 子樹查詢搜索當前路徑或對象以及 的所有子路徑或對象。

以下示例顯示如何將此參數設置爲子樹 搜索。 -SearchScope子樹

下面列出該參數的可接受的值:

基地

ONELEVEL

子樹

必需?假

位置?命名

默認值子樹

接受管道輸入?假

接受通配符?假

+0

謝謝你一個很好的答案Frode我已經更新了我的腳本,它完美的作品。 –