【问题标题】:Add-CMDeviceCollectionQueryMembershipRule using a variableAdd-CMDeviceCollectionQueryMembershipRule 使用变量
【发布时间】:2019-02-14 00:18:00
【问题描述】:

我有一个 power shell 命令行,我试图将一个包含序列号(例如“123”、“456”等)的 txt 文件导入 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"`)""

预期结果

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 ("9876","6543",12345")

实际结果

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

【问题讨论】:

    标签: powershell powershell-2.0 powershell-3.0 sccm


    【解决方案1】:

    $Process 被指定为 .\Process.txt,看起来它扩展为 '(C:\Users\Owner\Desktop\Process.txt)'。这就是您传递给您的成员资格查询规则的内容。

    试试改成

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

    这将读取文件中的项目并将其传递给查询

    【讨论】:

    • 谢谢,我觉得我越来越近了,但现在我收到了这个错误
    • Add-CMDeviceCollectionQueryMembershipRule :找不到接受参数“5CG4444”、“5CG1111”的位置参数。在 C:\Users\Owner\Desktop\Add2Sccm_Works SerialNumber - Copy.ps1:43 char:1 + Add-CMDeviceCollectionQueryMembershipRule -Collection $collection -Ru ... + CategoryInfo : InvalidArgument: (:) [Add-CMDeviceCol...yMembershipRule ], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ConfigurationManagement.Cmdlets.Collections.Command ds.AddDeviceCollectionQueryMembershipRuleCommand
    • 您的 process.txt 是什么样的?你能显示前几行吗?
    • 是的,txt 文件看起来像这样 "5CG4444","5CG1111","5CG3333" 等等
    • 如果您指定“($Process)”`而不使用双引号而不是“("$Process")”,错误是否会改变
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 2014-09-04
    • 2019-05-22
    • 2021-03-07
    • 1970-01-01
    相关资源
    最近更新 更多