root\ccm\cliensdk 命名空间内的早期过滤
Early filtering within the root\ccm\cliensdk namespace
我最近编写了一个脚本,用于在检查之后更新远程桌面上的注册表值,例如,某个应用程序 MyApp 是否已正确安装。
上述申请是installed/deployed SCCM(2012年,暂时不是R2)。
在优化脚本的过程中,我想改变MyApp安装状态的测试(从后期过滤到早期过滤)。
到目前为止,没有运气,到目前为止,也没有任何解释。
我无法正确理解为什么似乎无法使用以下命令进行一些早期过滤:
gwmi -ComputerName myserver -Namespace root\ccm\clientsdk -query "select * from ccm_application where Fullname='MyApp'"
当然也不能用:
gwmi -ComputerName myserver -Namespace root\ccm\clientsdk -class ccm_application -filter "Fullname='MyApp'"
后期过滤当然有效,但我希望(并期望)早期过滤有效,尤其是因为我正在检查大量远程桌面的应用程序安装状态。
当然,我知道我可以(可以)为此目的使用 SCCM(仅当...时才执行脚本)但这仍然不能解释为什么我不能进行早期过滤。
每当我尝试在我的安装中查询 class 并指定属性或过滤器时,我都会收到错误 "Provider is not capable of the attempted operation"。我用 Get-WmiObject
还是 Get-CimInstance
.
都没关系
我在 运行 时遇到同样的错误:
PS C:\> WMIC.EXE /NAMESPACE:\root\ccm\clientsdk PATH ccm_application GET FullName
Node - <SERVERNAME>
ERROR:
Description = Provider is not capable of the attempted operation
PS C:\> wmic /NAMESPACE:\root\ccm\clientsdk PATH ccm_application WHERE "FullName='Java 32-bit'"
Node - <SERVERNAME>
ERROR:
Description = Provider is not capable of the attempted operation
虽然这很好用:
WMIC.EXE /NAMESPACE:\root\ccm\clientsdk PATH ccm_application
这似乎是提供商的限制,而不是您的代码的问题。 -Filter
和 -Property
设计不工作。
请注意,我使用的是 2012 R2 SP1 (5.00.8239.1000),因此这可能并不完全适用。但是,他们似乎不太可能 删除 从 2012 到 2012 R2 的提供商的功能。
我最近编写了一个脚本,用于在检查之后更新远程桌面上的注册表值,例如,某个应用程序 MyApp 是否已正确安装。
上述申请是installed/deployed SCCM(2012年,暂时不是R2)。
在优化脚本的过程中,我想改变MyApp安装状态的测试(从后期过滤到早期过滤)。 到目前为止,没有运气,到目前为止,也没有任何解释。
我无法正确理解为什么似乎无法使用以下命令进行一些早期过滤:
gwmi -ComputerName myserver -Namespace root\ccm\clientsdk -query "select * from ccm_application where Fullname='MyApp'"
当然也不能用:
gwmi -ComputerName myserver -Namespace root\ccm\clientsdk -class ccm_application -filter "Fullname='MyApp'"
后期过滤当然有效,但我希望(并期望)早期过滤有效,尤其是因为我正在检查大量远程桌面的应用程序安装状态。
当然,我知道我可以(可以)为此目的使用 SCCM(仅当...时才执行脚本)但这仍然不能解释为什么我不能进行早期过滤。
每当我尝试在我的安装中查询 class 并指定属性或过滤器时,我都会收到错误 "Provider is not capable of the attempted operation"。我用 Get-WmiObject
还是 Get-CimInstance
.
我在 运行 时遇到同样的错误:
PS C:\> WMIC.EXE /NAMESPACE:\root\ccm\clientsdk PATH ccm_application GET FullName
Node - <SERVERNAME>
ERROR:
Description = Provider is not capable of the attempted operation
PS C:\> wmic /NAMESPACE:\root\ccm\clientsdk PATH ccm_application WHERE "FullName='Java 32-bit'"
Node - <SERVERNAME>
ERROR:
Description = Provider is not capable of the attempted operation
虽然这很好用:
WMIC.EXE /NAMESPACE:\root\ccm\clientsdk PATH ccm_application
这似乎是提供商的限制,而不是您的代码的问题。 -Filter
和 -Property
设计不工作。
请注意,我使用的是 2012 R2 SP1 (5.00.8239.1000),因此这可能并不完全适用。但是,他们似乎不太可能 删除 从 2012 到 2012 R2 的提供商的功能。