使用下面的脚本我试图过滤掉没有像Windows 10那样的$要求的应用程序。当我运行这个时,我仍然得到包含Windows 10的应用程序要求的返回结果。
| Where { $_ -notlike 'All_x64_Windows_10_and_higher_Clients' };
知道我在这里做错了吗?上面一行可能出现问题?
$warningpreference = "SilentlyContinue"
Get-Content C:\temp\Applications.txt | foreach-object {
$app = Get-CMApplication -Name "$_";
[XML]$appXML =$app.SDMPackageXML;
$Requirement = $appXML.AppMgmtDigest.DeploymentType.Requirements.Rule.OperatingSystemExpression.Operands.RuleExpression.RuleID | Where { $_ -notlike 'All_x64_Windows_10_and_higher_Clients' };
If ($Requirement -ne $null -or $Requirement.length -gt 0) {
Write-output "Application Name: $_ | Requirement: $Requirement "
}
}
答案 0 :(得分:1)
-Like运算符用于PowerShell中的WildCard搜索。因此,您需要在过滤器中的某处*
。
试试这个:
| Where { $_ -notlike "*All_x64_Windows_10_and_higher_Clients*" };