2017-03-01 88 views
1

我試圖通過函數傳遞數組中的每個值。這是我有:將參數傳遞到函數

#Pulls a list of computers from SCCM 
$sccmComputers = Get-ComputersCollection -CollectionName "All Desktops" 

#Function to check each item in $sccmComputers against a database. 
Function CheckDisposal ($pc){ 
$check = invoke-sqlcmd2 -ServerInstance shopserv-lr -Database inventory -query "SELECT * FROM Computers WHERE ServiceTag = '$pc' and Status = 'Disposed' " 
return $check} 

foreach ($pc in $sccmComputers) 
{ 

} 

我似乎無法弄清楚如何讓每一個項目從$ sccmComputers通過函數,如果返回true輸出的值傳遞到控制檯。

下面是爲我工作的代碼:

Function CheckDisposal ($a){ 
$check = invoke-sqlcmd2 -ServerInstance shopserv-lr -Database inventory -query "SELECT * FROM Computers WHERE Name = '$a' and Status = 'Disposed'" 
return $check 
} 


$sccmComputers = Get-ComputersCollection -CollectionName "All Desktops" 


foreach($item in $sccmComputers) 
{ 

    $dispose = CheckDisposal $item.Name 
    if($dispose) 
    { 
    Write-Output $dispose.Name 
    } 
} 
+0

好,調用foreach循環裏面的功能? – 4c74356b41

回答

0
foreach ($pc in $sccmComputers) 
{ 
    CheckDisposal $pc 
} 
+0

如果查詢在數據庫中找到$ pc,我怎麼能得到它輸出到控制檯? – Matthew

+0

我的假設是,它返回時返回$ check –

+0

如果您使用上述修改運行代碼,當前會發生什麼? –