Подключение к подсистеме WMI. Получение списка классов

Работа в Windows PowerShell с объектными моделями WMI, COM и .NET

Одна из основных задач, для решения которых создавалась оболочка PowerShell, было получение из командной строки доступа к различным объектным инфраструктурам, поддерживаемым операционной системой Windows. Раньше к подобным объектам можно было обращаться либо из полноценных приложений с помощью интерфейса прикладного программирования (API), либо из сценариев WSH. В любом случае для использования внешних объектов приходилось писать программный код и изучать их структуру, что значительно затрудняло работу с ними и препятствовало широкому распространению технологий автоматизации среди системных администраторов и пользователей Windows.

Для решения этой проблемы в PowerShell были разработаны специальные командлеты, позволяющие в интерактивном режиме из оболочки обращаться к объектам WMI, COM и .NET.

Доступ к WMI

В предыдущих лекциях мы уже обращались к объектам WMI из сценариев на языках VBScript и JScript, а также из оболочки WMIC. В PowerShell экземпляры объектов WMI можно получать с помощью командлета Get-WmiObject.

Подключение к подсистеме WMI. Получение списка классов

Для обращения к определенному объекту WMI нужно знать наименование класса, к которому он относится (например, Win32_Process или Win32_Service ). PowerShell позволяет в интерактивном режиме получить список всех классов WMI на локальном или удаленном компьютере. Для этого нужно выполнить командлет Get-WmiObject с параметром List:

PS C:\> Get-WmiObject -List

 

__SecurityRelatedClass __NTLMUser9X

__PARAMETERS __SystemSecurity

__NotifyStatus __ExtendedStatus

Win32_PrivilegesStatus Win32_TSNetworkAdapterSettingError

Win32_TSRemoteControlSettingError Win32_TSEnvironmentSettingError

Win32_TSSessionDirectoryError Win32_TSLogonSettingError

Win32_TerminalError Win32_JobObjectStatus

Win32_TerminalServiceSettingError Win32_TSPermissionsSettingError

Win32_TSClientSettingError Win32_TSGeneralSettingError

Win32_TSSessionSettingError __SystemClass

. . .

18.1.

В данном примере выводится список классов WMI на локальном компьютере. Если вам нужно подключиться к подсистеме WMI другой машине, то ее имя или IP-адрес нужно указать в качестве значения параметром ComputerName, например:

PS C:\> Get-WmiObject –ComputerName 10.169.1.15 -List

 

__SecurityRelatedClass __NTLMUser9X

__PARAMETERS __SystemSecurity

__NotifyStatus __ExtendedStatus

Win32_PrivilegesStatus Win32_TSNetworkAdapterSettingError

Win32_TSRemoteControlSettingError Win32_TSEnvironmentSettingError

. . .

PS C:\> Get-WmiObject –ComputerName Comp1 -List

 

__SecurityRelatedClass __NTLMUser9X

__PARAMETERS __SystemSecurity

__NotifyStatus __ExtendedStatus

Win32_PrivilegesStatus Win32_TSNetworkAdapterSettingError

Win32_TSRemoteControlSettingError Win32_TSEnvironmentSettingError

. . .

18.2.

По умолчанию командлет Get-WmiObject подключается к пространству имен Root\CIMV2. Сменить это пространство имен позволяет параметр Namespace, в качестве значения которого указывается нужное наименование. Например:

PS C:\> Get-WmiObject -Namespace Root -List

 

__SecurityRelatedClass __NTLMUser9X

__PARAMETERS __SystemSecurity

__NotifyStatus __ExtendedStatus

__SystemClass __Provider

__Win32Provider __thisNAMESPACE

__IndicationRelated __EventGenerator

. . .

18.3.








Дата добавления: 2018-03-01; просмотров: 795;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.