2015-09-16 93 views
0

我正在嘗試運行一個PowerShell腳本,該腳本將顯示x天內一直處於非活動狀態(或未登錄狀態)的所有用戶的列表。該部分很容易找到並修改腳本,但我無法設置它,因此我只能在域中指定某些OU和子OU。這是我到目前爲止,但我想我可能必須使用另一種方法來實現:在特定的OU中查找X天的innactive帳戶

#Import Ad Module 
Import-Module ActiveDirectory 

#SearchBase 
$searchB = (Get-Content -Path C:\scripts\ous.txt) 

#Time accounts have been inactive 
$tSpan = "145" 

Search-ADAccount -SearchBase $searchB -AccountInactive -UserOnly -Timepsan $tSpan | 
    Where {($_.DistinguishedName -notlike "specific sub-ou I don't want to check")} | 
    FT name,ObjectClass -A 

文本文件的格式爲:

OU=first ou,OU=Parent OU,DC= thisDC,DC=dc,DC=DC 
OU=third ou,OU=Parent OU,DC= this DC,DC=dc,DC=DC 
OU=fourthou,OU=Parent OU,DC= thisDC,DC=dc,DC=DC 

當我運行此我得到錯誤

搜索-ADAccount:Directory對象未找到

回答

1

外貌就像您在-SearchBase參數中出現類型不匹配一樣。

Get-Help Search-ADAccount

注意,值類型-SearchBasestring。您的文本文件中有三個OU,因此該文件上的Get-Content將生成一個字符串數組(string[])。

由於-SearchBase參數將只接受一個值,你需要foreach通過OU名單,同時給予一個OU:

foreach ($OU in $SearchB) 
{ 
    search-adaccount -searchbase $OU -accountinactive -useronly -timepsan $tSpan..... 
} 
+0

真棒,這是相當多了,我想弄清楚該怎麼做!謝謝! – elderberries