Add-CMDeviceCollectionQueryMembershipRule с использованием переменной - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть командная строка Power Shell, где я пытаюсь импортировать текстовый файл, заполненный серийными номерами (например, «123», «456» и т. Д.) В SCCM, чтобы создать коллекцию устройств.Я пытаюсь импортировать в параметрах, чтобы он только создавал 1 запрос с использованием списка значений, но я получаю сообщение об ошибке «Не удается найти позиционный параметр, который принимает аргумент. \ Process.txt»

$Process = ".\process.txt

Add-CMDeviceCollectionQueryMembershipRule -Collection $collection -RuleName "Membership $collectionName" -QueryExpression "select * from SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM_PRODUCT on SMS_G_System_COMPUTER_SYSTEM_PRODUCT.ResourceId = SMS_R_System.ResourceId where SMS_G_System_COMPUTER_SYSTEM_PRODUCT.IdentifyingNumber in "`("$Process"`)""

ОжидаетсяРезультаты

выберите * из внутреннего присоединения SMS_R_System SMS_G_System_COMPUTER_SYSTEM_PRODUCT в SMS_G_System_COMPUTER_SYSTEM_PRODUCT.ResourceId = SMS_R_System.ResourceId, где SMS_G_System_RO_1006 * * * * * * * * * * * * * * * * * 100 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 064 * * * * * * * * * * * * * * * * * * * * * * * * * 060 * * * * * * * * * * * * * * * * * * * * * * * * * ТИГ_БИБРОС *

Add-CMDeviceCollectionQueryMembershipRule : A positional parameter cannot be found that accepts argument
'(C:\Users\Owner\Desktop\Process.txt)'.
At C:\Users\Owner\Desktop\Add2Sccm_Works SerialNumber - Copy.ps1:42 char:1
+ Add-CMDeviceCollectionQueryMembershipRule -Collection $collection -Ru ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [Add-CMDeviceCol...yMembershipRule], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ConfigurationManagement.Cmdlets.Collections.Comman
   ds.AddDeviceCollectionQueryMembershipRuleCommand

1 Ответ

0 голосов
/ 13 февраля 2019

$ Process указывается как. \ Process.txt, который выглядит так, как будто он расширяется до '(C: \ Users \ Owner \ Desktop \ Process.txt)'.Это то, что вы передаете правилу запроса на членство.

Попробуйте изменить на

$process = Get-Content ".\Process.txt"

Это прочитает элементы в файле и передаст их в запрос

...