【问题标题】:Add/Delete Devices From SCCM Collection using .Net Core使用 .Net Core 从 SCCM 集合中添加/删除设备
【发布时间】:2020-08-01 03:05:45
【问题描述】:

我正在使用 .Net Core 和 Microsoft.Management.Infrastructure nuget 包来查询 SCCM 集合并成功获取设备。

using Microsoft.Management.Infrastructure;
...
string Namespace = @"root\cimv2";
string Query = "SELECT * FROM SCCM_collection where name ='$param'";
CimSession mySession = CimSession.Create("Computer_B");
IEnumerable<CimInstance> queryInstance = mySession.QueryInstances(Namespace, "WQL", Query);

但是,我需要以编程方式将成员资格规则添加/删除到 SCCM 集合,以便我可以操作 SCCM 集合中的设备,如 blog 中所述。

我知道我们可以使用 .net 框架包 microsoft.configurationmanagement.managementprovider 操作 SCCM 集合,但由于我使用的是 .NET Core,因此无法使用此包。

有没有一种方法可以使用 .Net Core 在 SCCM 集合中添加/删除设备?

【问题讨论】:

  • managementprovider 包只是一个包装器,因此您可以轻松地在 .net 中使用旧的 vbscript wmi 代码,但 afaik 命令都是纯 wmi。所以你应该可以用标准的 wmi 代码来做到这一点。我从未在 .net 核心中做过任何与 sccm 相关的事情,但如果我理解正确,所有基本内容都是相同的,所以如果我向您展示一个不使用管理提供程序的 .net 4.7 代码示例,它也应该在核心中工作对吗?

标签: c# .net-core wmi sccm configurationmanager


【解决方案1】:

我从未找到任何官方消息,但据我了解,microsoft.configurationmanagement.managementprovider 只是某种包装器,可让您轻松地将遵循 MS 指南的旧 vbscript 示例移植到 sccm。所有这些示例都只是调用 WMI 方法,它们没有任何特定的 SCCM 方法,因此您始终可以使用基本的 WMI 来编写它而无需额外的东西。

所以你可以只使用 System.Management 然后这样写:

ManagementClass collQuery = new ManagementClass(@"\\<siteserver>\root\sms\site_<sitecode>", "SMS_CollectionRuleQuery", null);
ManagementObject collQueryInstance = collQuery.CreateInstance();

collQueryInstance["QueryExpression"] = "Select * from SMS_R_System";
collQueryInstance["RuleName"] = "Members of collection";

ManagementObject collInstance = new ManagementObject(@"\\<siteserver>\root\SMS\site_<sitecode>:SMS_Collection.CollectionID='<CollID>'");
ManagementBaseObject inParams = collInstance.GetMethodParameters("AddMembershipRule");

inParams.SetPropertyValue("collectionRule", collQueryInstance);

ManagementBaseObject outParams = collInstance.InvokeMethod("AddMembershipRule", inParams, null);

它应该可以工作。当然,您必须将所有调用转换为“正常”的 WMI 语法,但我认为这个示例应该为您提供基础知识

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多