sccm 查询 - 尝试为具有特定文件夹的所有设备创建查询

问题描述 投票:0回答:2

我正在尝试使用 SCCM 将所有具有 Zoom 的设备更新到最新版本。它在用户本地运行,因此典型的

{ SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Zoom%" }
不起作用。我们想出的最佳解决方法是在
C:\Users\ %UserProfile%\AppData\Roaming\Zoom
下搜索 Zoom 文件夹。到目前为止,我们已经尝试了各种方法来做到这一点,但没有成功。有人有什么建议吗?

SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_SoftwareFile on SMS_G_System_SoftwareFile.ResourceID = SMS_R_System.ResourceId where SMS_G_System_SoftwareFile.FileName = "Zoom.exe" and SMS_G_System_SoftwareFile.FilePath = "C:\Users\ %UserProfile%\AppData\Roaming\Zoom"

我期待一份报告,其中会出现具有所述文件夹和文件的所有工作站。

它给出了错误:

ConfigMgr Error Object:
instance of __ExtendedStatus
{
    Operation = "ExecQuery";
    ParameterInfo = "SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_SoftwareFile on SMS_G_System_SoftwareFile.ResourceID = SMS_R_System.ResourceId where SMS_G_System_SoftwareFile.FileName = \"Zoom.exe\" and SMS_G_System_SoftwareFile.FilePath = \"C:\\Users\\%UserProfile%\\AppData\\Roaming\\Zoom\"";
    ProviderName = "WinMgmt";
};

Error Code:
InvalidQuery

-------------------------------
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlQueryException
The SMS Provider reported an error.


Stack Trace:
   at Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlQueryResultsObject.<GetEnumerator>d__75.MoveNext()
   at Microsoft.ConfigurationManagement.ManagementProvider.QueryProcessorBase.ProcessQuery(Object sender, DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

-------------------------------

System.Management.ManagementException
Invalid query 


Stack Trace:
   at Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlQueryResultsObject.<GetEnumerator>d__75.MoveNext()
   at Microsoft.ConfigurationManagement.ManagementProvider.QueryProcessorBase.ProcessQuery(Object sender, DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

-------------------------------

sccm zoom-sdk
2个回答
0
投票

您正在寻找的是“配置项”和“配置基线”,它们作为一对(CI/CB)创建并生成结果成员资格,可以将其编组到集合中。我要警告你,CM 的组织方式有点复杂。需要进行一些测试和调整才能正确理解概念,然后进行设置以使您满意。

谷歌搜索给了我这个页面,其中有足够公平的描述来帮助你开始:

https://www.anoopcnair.com/how-create-sccm-configuration-items-baselines/

我最好的即兴头脑转储:

  1. 创建 CI,它定义标准(例如文件夹或文件的存在以及许多其他可能性,包括编写自己的脚本用作测试)

  2. 创建 CB,它使用 CI 针对 Collection 进行评估,然后将结果在幕后转储到某个内部表中

  3. 创建集合(可以通过右键单击 CB 并选择右侧上下文菜单项来完成),该集合根据状态数据将此数据收集到您想要的内容(设备集合)中。集合查询很难轻松地看到它在做什么,因为它使用 CI/CB 的引用指南以及人类不可读的状态代码(合规或不合规)。

此时你就会得到你想要的了。但正如之前警告的那样:建立 CI/CB 和收集的变幻莫测是很挑剔的。在获得正确的结果之前,需要进行大量的谷歌搜索和摆弄参数。


0
投票

试试这个:

从 SMS_R_System 内部联接 SMS_G_System_SoftwareFile 中选择 SMS_R_System.Name SMS_G_System_SoftwareFile.ResourceId = SMS_R_System.ResourceId 其中 SMS_G_System_SoftwareFile.FilePath = "C:\Users\ %UserProfile%\AppData\Roaming\Zoom" 按 SMS_R_System.Name 顺序

© www.soinside.com 2019 - 2024. All rights reserved.