2012-03-01 101 views
0

如何返回本機中的對象?一直在看它,沒有清晰,簡單的例子!Powershell返回對象非cmdlet

[編輯]固定!剛剛解決它在我自己的,正確的代碼是在下面!

function search-member() 
{ 
$objOU_1 = New-Object System.DirectoryServices.DirectoryEntry("LDAP://dc=somedomain") 

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher 

$objSearcher.SearchRoot = $objOU_1 
$objSearcher.PageSize = 1000 
$strFilter = "(&(objectCategory=User)(sAMAccountName=username))" 
$objSearcher.Filter = $strFilter 
$objSearcher.SearchScope = "Subtree" 

$results = $objSearcher.FindAll() 

# return $results # instead of this 

$results # you first "write" what you want returned 
return # then return 
} 

$obj1 = search-member-2003 # if you take away the "$obj = " it will spit out the write which u have in the function directly. 

$obj1 # here is the boject 
+0

剛回答我自己的問題。 你必須在函數中回顯(寫入)你想要返回的內容,因爲它將被保存在變量$ obj1中,那麼你可以做它你想要的。 – 2012-03-01 10:43:47

回答

0
,如果你在你的腳本改變

這樣的:

foreach ($result in $results) 
{  
    $result   
} 

或只是

return $results 

然後

$obj1 = search-member 
$obj1.gettype() 

會給'SearchResult'這一個object[]如果'用戶名'包含像史密斯*這樣的通配符並且存在少於兩個條目(如'smith'和'smithson')。然後

$obj1[0].gettype()'SearchResult'

如果 '用戶名' 是唯一$obj1類型爲 'SearchResult' 的。