Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SCCM获取文件夹中的项目_C#_Sccm - Fatal编程技术网

C# SCCM获取文件夹中的项目

C# SCCM获取文件夹中的项目,c#,sccm,C#,Sccm,我是SCCM的新手,我被对象模型弄糊涂了。我有这样一个文件夹: 我想得到一个里面物体的列表: APP00001V01(等) APP00001V02(等) 等 到目前为止,我掌握的代码是: public void GetCollectionTest2() { var con = this.scomService.Connect(Server, UserName, Password); string query = "select * f

我是SCCM的新手,我被对象模型弄糊涂了。我有这样一个文件夹:

我想得到一个里面物体的列表:

  • APP00001V01(等)
  • APP00001V02(等)
到目前为止,我掌握的代码是:

       public void GetCollectionTest2()
    {
        var con = this.scomService.Connect(Server, UserName, Password);

        string query = "select * from SMS_ObjectContainerItem where ContainerNodeID = '16777219'";
        IResultObject packages = con.QueryProcessor.ExecuteQuery(query);

        foreach (IResultObject ws in packages)
        {

            foreach (IResultObject item in ws.Properties)
            {
                Debug.Print(item.ToString());
            }
            string query2 = "SELECT * FROM SMS_FullCollectionMembership WHERE InstanceKey = '" + ws["InstanceKey"] + "'";
            IResultObject packages2 = con.QueryProcessor.ExecuteQuery(query2);
            foreach (IResultObject ws2 in packages2)
            {
                Debug.Print(ws2["Name"].StringValue);
            }
        }
    }
我认为

"select * from SMS_ObjectContainerItem where ContainerNodeID = '16777219'";
正在返回我想要的文件夹,但当我试图获取内容时,我只是保持空白

我该怎么办

更新 感谢新华社的回复,我现在有:

        public void GetCollectionTest2()
    {
        var con = this.scomService.Connect(Server, UserName, Password);

        string query = "select * from SMS_ObjectContainerItem  where ContainerNodeID = '16777219'";
        IResultObject packages = con.QueryProcessor.ExecuteQuery(query);

        foreach (IResultObject ws in packages)
        {

            foreach (IResultObject item in ws.Properties)
            {
                Debug.Print(item.ToString());
            }
        }
    }
这似乎给了我所有的项目,但我如何得到他们的名字

目前我只能退回这些:

instance of SMS_ObjectContainerItem
{
    ContainerNodeID = 16777219;
    InstanceKey = "0010047C";
    MemberGuid = "C8A66344-B7E8-451B-A4EF-9BFB3B3E228C";
    MemberID = 16778256;
    ObjectType = 5000;
    ObjectTypeName = "SMS_Collection_Device";
    SourceSite = "";
};

我假设我需要链接以使用ID在其他地方查找名称,但我找不到任何关于此的文档?

我建议您运行从SMS\u ObjectContainerItem选择*以查看结果。


是一个非常有用的工具。

由于通过WMI资源管理器进行了良好的搜索,Ahh终于找到了它。在上图中,左边的文件夹是容器,右边的文件夹是集合

所以我想要的代码是:

    public void GetCollectionTest2()
    {
        var con = this.scomService.Connect(Server, UserName, Password);

        string query = "select * from SMS_ObjectContainerItem  where ContainerNodeID = '16777219'";
        IResultObject packages = con.QueryProcessor.ExecuteQuery(query);

        foreach (IResultObject ws in packages)
        {
            Debug.Print(ws["InstanceKey"].StringValue);

            string query2 = "SELECT * FROM SMS_Collection WHERE CollectionID='"+ ws["InstanceKey"].StringValue +"'";

            //// Run query.
            IResultObject colResultObject = con.QueryProcessor.ExecuteQuery(query2);

            foreach (IResultObject ws2 in colResultObject)
            {
                Debug.Print(ws2["Name"].StringValue);
            }
        }
    }

感谢您帮助我访问此Xin

谢谢@Xin Guo-这很有帮助,但我仍然无法从SMS_ObjectDContainerItem(请参见编辑avbove)中获取名称。知道我们怎么做吗?