共用方式為


New-CMDetectionClauseFile

建立檔案的偵測方法子句。

Syntax

New-CMDetectionClauseFile
   -FileName <String>
   -PropertyType <FileFolderProperty>
   -ExpectedValue <String[]>
   -ExpressionOperator <FileFolderRuleExpressionOperator>
   [-Is64Bit]
   -Path <String>
   [-Value]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [<CommonParameters>]
New-CMDetectionClauseFile
   -FileName <String>
   [-Is64Bit]
   -Path <String>
   [-Existence]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [<CommonParameters>]

Description

使用此 Cmdlet 在應用程式的偵測方法中建立 子句。 這個子句是指出應用程式存在的檔案規則。

若要偵測資料夾而非檔案,請使用 New-CMDetectionClauseDirectory Cmdlet

使用此 Cmdlet 之後,請針對部署類型使用其中一個 Add-Set- Cmdlet。 將此偵測子句物件傳遞至 AddDetectionClauseRemoveDetectionClause 參數。

若要將偵測子句分組,請在部署類型 Cmdlet 上使用 GroupDetectionClauses 參數。

注意事項

從Configuration Manager月臺磁片磁碟機執行 Configuration Manager Cmdlet,例如 PS XYZ:\> 。 如需詳細資訊,請 參閱開始使用

範例

範例 1:依版本偵測應用程式

此範例會偵測版本大於或等於 1.0.0 之特定檔夾中的應用程式app.exe。

$clause = New-CMDetectionClauseFile -Path "C:\Program Files\Application" -FileName App.exe -Value -PropertyType Version -ExpressionOperator GreaterEquals -ExpectedValue "1.0.0"

Set-CMScriptDeploymentType -ApplicationName "CentralApp" -DeploymentTypeName "Scripted install" -AddDetectionClause $clause

範例 2:建立 MSI 應用程式部署類型的多個子句

此範例會建立兩個檔案子句和一個登錄子句,然後使用它們將 MSI 部署類型新增至應用程式。

$cla1=New-CMDetectionClauseFile -FileName "filetest" -PropertyType Size -ExpectedValue 123 -ExpressionOperator IsEquals -Path "C:\" -Value -Is64Bit
$cla2=New-CMDetectionClauseFile -FileName "foldertest" -PropertyType DateCreated -ExpectedValue (Get-Date) -ExpressionOperator LessThan -Path "C:\" -Value
$cla3=New-CMDetectionClauseRegistryKey -Hive ClassesRoot -KeyName "aaa"
$logic1=$cla1.Setting.LogicalName
$logic2=$cla2.Setting.LogicalName
$logic3=$cla3.Setting.LogicalName

Add-CMMsiDeploymentType -AddDetectionClause $cla1,$cla2,$cla3 -ApplicationName "app" -DeploymentTypeName "dt" -InstallCommand "mycommand" -ContentLocation "\\server\sources\Orca.msi" -GroupDetectionClauses $logic1,$logic2 -DetectionClauseConnector {LogicalName=$logic2;Connector="or"},{LogicalName=$logic3;Connector="or"}

參數

-DisableWildcardHandling

此參數會將萬用字元視為常值字元值。 您無法將其與 ForceWildcardHandling結合。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Existence

當您新增此參數時,檔案必須存在於目標系統上,以指出此應用程式是否存在。

若要評估此檔案屬性的規則,請使用 Value 參數,而不只是存在。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ExpectedValue

當您新增 Value 參數時,請使用 ExpectedValue 搭配 PropertyTypeExpressionOperator。 當您使用這些參數時,檔案必須滿足規則,以指出此應用程式是否存在。 這個 ExpectedValue 參數會指定要與檔案系統比較的值。

要比較的值取決於指定的 PropertyType

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ExpressionOperator

當您新增Value參數時,請搭配PropertyTypeExpectedValue使用ExpressionOperator。 當您使用這些參數時,檔案必須滿足規則,以指出此應用程式是否存在。 這個 ExpressionOperator 參數會指定比較檔案系統值與預期值的運算子。

從 2010 版開始,參數類型從 RuleExpressionOperator 變更為 FileFolderRuleExpressionOperator

Type:FileFolderRuleExpressionOperator
Accepted values:IsEquals, NotEquals, GreaterThan, LessThan, Between, GreaterEquals, LessEquals, OneOf, NoneOf
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FileName

指定指出應用程式存在的檔案名。 使用 Path 參數來指定此檔案的路徑。

例如,Configuration Manager主控台預設會安裝為 C:\Program Files (x86)\Microsoft Endpoint Manager\AdminConsole\bin\Microsoft.ConfigurationManagement.exe 。 若要建立此檔案的規則,請將此參數 Microsoft.ConfigurationManagement.exe 設定為 ,並將 Path 參數設定為 %ProgramFiles(x86)%\Microsoft Endpoint Manager\AdminConsole\bin

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ForceWildcardHandling

此參數會處理萬用字元,並可能導致非預期的行為 (不建議) 。 您無法將其與 DisableWildcardHandling結合。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Is64Bit

新增此參數,表示此檔案與 64 位系統上的 32 位應用程式相關聯。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

指定檔案系統中指出應用程式存在的檔案路徑。 使用 FileName 參數來指定檔案名。

例如,Configuration Manager主控台預設會安裝為 C:\Program Files (x86)\Microsoft Endpoint Manager\AdminConsole\bin\Microsoft.ConfigurationManagement.exe 。 若要建立此檔案的規則,請將此參數 %ProgramFiles(x86)%\Microsoft Endpoint Manager\AdminConsole\bin 設定為 ,並將 FileName 參數設定為 Microsoft.ConfigurationManagement.exe

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-PropertyType

當您新增Value參數時,請搭配ExpressionOperatorExpectedValue使用PropertyType。 當您使用這些參數時,檔案必須滿足規則,以指出此應用程式是否存在。 這個 PropertyType 參數會指定要評估的檔案屬性。

例如,您將此參數設定為 Version ,將 ExpressionOperator 設定為 IsEquals ,並將 ExpectedValue 設定1.48.1.0 。 規則接著會檢查指定的檔案是否具有相同的檔案版本。

Type:FileFolderProperty
Accepted values:DateCreated, DateModified, Version, Size
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Value

當您新增 Value 參數時,檔案必須滿足規則,以指出此應用程式是否存在。 使用此參數搭配下列參數: ExpectedValueExpressionOperatorPropertyType

若要只檢查檔案是否存在,請使用 Existence 參數,而不是評估規則。

Type:SwitchParameter
Aliases:ValueRule
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

輸入

None

輸出

System.Object