С# WMI и SCCM2012

Короче говоря, я придумываю «тупую» консоль конфигурации SCCM. Я нахожусь в том месте, где пытаюсь понять, как переместить компьютер в коллекцию. Я пишу эту консоль на С#. Я могу запускать сценарии в своей программе, но я не хочу полагаться на сценарии для выполнения тяжелой работы за кулисами. Проблема в том, что по какой-то причине очень мало информации о SCCM и C#. Это все VBScript и/или Powershell.

Поэтому мне интересно, есть ли у кого-нибудь здесь какие-нибудь указатели, примеры, материалы для чтения... что-нибудь, что может пролить свет на то, что я пытаюсь сделать. Мне удалось собрать кусочки кода, чтобы подключиться к WMI из MSDN, и, насколько я могу судить, это работает. Моя программа также извлекает оперативные данные через SQL, поэтому некоторая информация у меня, вероятно, уже есть (например, ResourceID или имя NetBIOS каждого компьютера).

Итак, я теоретически могу подключиться к WMI, какой код я бы добавил, если бы я хотел переместить RID: 163841, например, в коллекцию «Windows 7 Imaging»?

Любые указатели будут очень признательны.

-Правка- Возможно, мне следует сформулировать это так: Как бы я...

а) Подключиться к WMI на сервере SCCM с помощью C#

б) а затем переместите компьютер в коллекцию, используя собственный код

Ссылки на веб-сайты, ключевой метод, фрагменты кода, я даже возьму экстрасенсорные показания на этом этапе.


person Jim    schedule 07.04.2015    source источник
comment
выполните поиск в Google на C # WMI, на самом деле в Интернете есть множество примеров использования WMI с C #   -  person MethodMan    schedule 07.04.2015
comment
Есть примеры? Если я ищу это, я получаю удар случайных бесполезных битов кода, половина времени не имеет ничего общего с C #. Ничего, что касалось бы конкретно движущихся коллекций. По крайней мере, пока исследования продолжаются.   -  person Jim    schedule 07.04.2015
comment
Можете ли вы опубликовать код, который вы пробовали до сих пор ... в отношении того, что вы пытаетесь сделать ...?   -  person MethodMan    schedule 07.04.2015
comment
Единственный код, который у меня есть, поскольку он относится к WMI, заключен в эту ссылку MSDN выше. Я могу подключиться (или, по крайней мере, код выполняется без ошибок) оттуда, я понятия не имею, что делать. Большая часть кода, который у меня есть, больше связана с получением информации через SQL и элементы пользовательского интерфейса.   -  person Jim    schedule 07.04.2015
comment
Для тех, кто интересуется тем же, что и я, или для тех, кто все еще задается вопросом, что мне нужно, я нашел актуальную статью. Выполнение методов WMI на C#: codeproject.com/Questions/ 614206/ Все еще не уверен, какой метод мне нужен для вызова, но это что-то. В моей ситуации по какой-то причине на сервере нет пространства имен /root/ccm/site_xxx, как все говорят, что оно должно быть.   -  person Jim    schedule 08.04.2015
comment
Извините, имелось в виду /root/sms/site_xxx (/sms не существует)   -  person Jim    schedule 08.04.2015
comment
Что ж, думаю, я упакую это. Не вижу особого способа зажечь лампочки над головами людей. Продолжая копать, я нашел пространство имен /root/sms. Я использовал CIM Studio для просмотра /root/sms и нашел свое пространство имен ./site_xxx. Здорово. Я также нашел фрагмент кода powershell, в котором содержится список методов, доступных в этом пространстве имен. (myitforum.com/myitforumwp/2012/08/17/) Затем, ища названия методов, которые выглядели полезными, я, наконец, получил хотя бы направление   -  person Jim    schedule 08.04.2015
comment
(продолжение) Похоже, это то, что я ищу: social.technet.microsoft.com/forums/systemcenter/en-US/ Еще не пробовал, но выглядит многообещающе.   -  person Jim    schedule 08.04.2015


Ответы (1)


Для тех, кто пытается сделать то же самое и так же потерян, как и я: CIMStudio — ваш друг. Я нашел свое пространство имен /root/sms/site_xxx (оно было на другом сервере). Оттуда я запустил фрагмент кода powershell (из: http://myitforum.com/myitforumwp/2012/08/17/how-to-display-all-methods-for-all-classes-in-a-wmi-namespace-using-powershell/), который дает мне список доступных методов в этом пространстве имен. (В моем случае я добавил «-computername NetBIOSofServer», так как я не локальный на сервере)

Я просмотрел полученный список и нашел несколько вещей, которые выглядели полезными. Наконец, приземлился на AddMembershipRule (от: https://social.technet.microsoft.com/forums/systemcenter/en-US/be8eaca0-8420-4791-961d-4e17fa61bb3a/sccm-addmembershiprule-with-c) Теперь я иметь некоторый синтаксис и представление о том, как это осуществить.

Я еще не выполнил, но я думаю, что это настолько хорошо, насколько это возможно. Надеюсь, это поможет какому-нибудь бедняге в будущем.

person Jim    schedule 08.04.2015
comment
Вы, вероятно, поняли это, но для этих примеров нужны Microsoft.ConfigurationManagement.ManagementProvider.dll и AdminUI.WqlQueryEngine.dll, которые вы можете получить из любой установки консоли SCCM. - person Syberdoor; 29.04.2015