я использую некоторые PowerShell скрипт для создания SQL заявления для добавления устройств в коллекции в SCCM 2012.PowerShell скрипт перестает работать, когда я включаю его в функцию
Это код, я использую:
$Sites = @("ULH","LVH","MPH","MAH")
$Query = ""
$First = $True
Foreach ($Site in $Sites) {
if ($First -eq $True) {
$Query += "SMS_R_System.Name like '%$Site%'"
$First = $false
}
else {
$Query += " or SMS_R_System.Name like '%$Site%'"
}
}
echo $Query
Add-CMDeviceCollectionQueryMembershipRule -CollectionName "test" -QueryExpression "select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System where ($Query) and SMS_R_System.Name like '%IMS%' and SMS_R_System.Name not like '%MAM%'" -RuleName "IMS Servers"
Это работает, как ожидалось, но я хочу, чтобы превратить его в функцию, так что я сделал это:
$Sites = @("ULH","LVH","MPH","MAH")
$Query = ""
function Querybuilder($Sites) {
$First = $True
Foreach ($Site in $Sites) {
if ($First -eq $True) {
$Query += "SMS_R_System.Name like '%$Site%'"
$First = $false
}
else {
$Query += " or SMS_R_System.Name like '%$Site%'"
}
}
return $Query
}
Querybuilder $Sites
echo $Query
Add-CMDeviceCollectionQueryMembershipRule -CollectionName "test" -QueryExpression "select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System where ($Query) and SMS_R_System.Name like '%IMS%' and SMS_R_System.Name not like '%MAM%'" -RuleName "IMS Servers"
в обоих случаях код эхо $Query
идентична, но когда я использую метод функции окончательное правило запроса не работает ...
Я уверен, что это что-то простое, я просто не могу понять это! Есть предположения?
Awww dang it rookie error! Приветствую вас за помощь! – Brick