Как установить код продукта в качестве метода обнаружения с помощью New-CMDetectionClauseWindowsInstaller - PullRequest
0 голосов
/ 09 января 2020

У меня есть сценарий PowerShell, который создает приложения с типом развертывания ... Я могу создать DetectionMethod для ключа реестра, используя New-CMDetectionClauseRegistryKeyValue

Но я хочу иметь два метода DetectionMethods. Один - это ключ реестра, а другой - код продукта.

Поэтому я делаю следующее:

$clause1 = New-CMDetectionClauseRegistryKeyValue -Hive LocalMachine -KeyName "pathstuff" -Is64Bit -ValueName "aValue" -PropertyType String -ExpressionOperator IsEquals -ExpectedValue $aVar -Value
$clause2 = New-CMDetectionClauseWindowsInstaller -ProductCode $ProductCode

Но я получаю сообщение об ошибке для второго предложения:

Набор параметров не может быть разрешен с указанными именованными параметрами

После этого я считаю, что моя строка должна выглядеть следующим образом:

Add-CMScriptDeploymentType -ApplicationName $AppName -DeploymentTypeName $DepTypeName -ContentLocation $DepContentLocation -InstallCommand $DepInstallCommand `
            -UninstallCommand $DepUninstallCommand -AddDetectionClause $clause1,$clause2 -EstimatedRuntimeMins $DepMinRuntime -MaximumRuntimeMins $DepMaxRuntime `
            -LogonRequirementType WhetherOrNotUserLoggedOn -UserInteractionMode Hidden -InstallationBehaviorType InstallForSystem -AddRequirement $oDTRule

Но я получаю ошибку

Аргумент не может быть привязан к параметру AddDetectionClause, поскольку он равен NULL.

Поскольку пункт 2 не работает ...

Я обнаружил, что он Кажется, работает, если вы делаете это так:

$clause1 = New-CMDetectionClauseWindowsInstaller -ProductCode $guid [Value -ExpressionOperator IsEquals -ExpectedValue "1.1.1.1" # Do a version check

Но это будет вторая Радиобаттон в SCCM, и я хочу первую.

Я просто не знаю, что мне не хватает , На этот счет нет документации ... и Google не дает мне немного ...

Любая помощь будет оценена.

С уважением

1 Ответ

0 голосов
/ 10 января 2020

Это беспокоило меня уже несколько недель, и, в конце концов, это всего лишь случай RTFM. Так что на Microsoft Docs Page этой команды есть ответ, который я просто не смог прочитать.

$clause2 = New-CMDetectionClauseWindowsInstaller -ProductCode $ProductCode -Existence

Вам просто нужно поставить -Existing в конце, и он работает.

Я был настолько сосредоточен на том факте, что не было примеров, чтобы я не читал полное описание синтаксиса. .

...