ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π²Ρ‹Π΄Π°ΡŽΡ‰Π°Ρ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ², частотС процСссора, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, систСмного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Windows

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ManagementObjectCollection — класс прСдставляСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ WMI. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΡΡ‚ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ относятся ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ ManagementBaseObject, Π² Ρ‚ΠΎΠΌ числС ManagementObject ΠΈ ManagementClass. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ WMI-запроса, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ManagementObjectSearcher, ΠΈΠ»ΠΈ ΠΆΠ΅ пСрСчислСниС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π²Ρ‹Π΄Π°ΡŽΡ‰Π°Ρ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ², частотС процСссора, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, систСмного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Windows (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠšΠ£Π Π‘ΠžΠ’ΠžΠ™ ΠŸΠ ΠžΠ•ΠšΠ’

" ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π΄Π°ΡŽΡ‰Π°Ρ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ², частотС процСссора, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, систСмного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Windows"

2010 Π³.

БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для управлСния Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, распрСдСлСния Π΅Π³ΠΎ рСсурсов, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³Π° с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Слями, оказания ΠΈΠΌ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ для частичной Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ:

ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, нСпосрСдствСнно ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ€Π°Π±ΠΎΡ‚: Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкстов, рисованиС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… массивов.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ систСмы (систСмы программирования, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ созданиС Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅).

БистСмныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, созданиС ΠΊΠΎΠΏΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π²Ρ‹Π΄Π°Ρ‡Ρƒ справочной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности устройств ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС — это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ» со Π²ΡΠ΅ΠΉ относящСйся ΠΊ Π½ΠΈΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС — это комплСкс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ. [1]

По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ курса «Π‘истСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС» стоит Π·Π°Π΄Π°Ρ‡Π° Π² Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠΈ Π½Π°Π²Ρ‹ΠΊΠΎΠ² программирования ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². Она состоит Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для просмотра скрытых ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ с ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ интСрфСйсом. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ язык C# с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ классов.NET ΠΈ Windows Forms, срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Visual Studio 2010.

1. Windows Management Instrumentation — инструмСнтарий управлСния Windows

Windows Management Instrumentation (WMI) Π² Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ — это инструмСнтарий управлСния Windows. Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎ, Ρ‚ΠΎ WMI — это ΠΎΠ΄Π½Π° ΠΈΠ· Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ для Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ управлСния ΠΈ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΡ Π·Π° Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ инфраструктуры ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Windows. ВСхнология WMI — это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ ΠΈ Π°Π΄Π°ΠΏΡ‚ированная ΠΏΠΎΠ΄ Windows рСализация стандарта WBEM, принятого ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ компаниями, Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π»Π΅ΠΆΠΈΡ‚ идСя создания ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ систСмами ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ распрСдСлСнной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ срСды прСдприятия с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² HTML ΠΈ XML.

Π’ ΠΎΡΠ½ΠΎΠ²Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² WBEM Π»Π΅ΠΆΠΈΡ‚ Common Information Model (CIM), Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π°Ρ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² систСмы. CIM являСтся Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΠΉ модСлью, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, систСмам ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π½Π΅Π΅ свои классы, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°.

WMI, основанный Π½Π° CIM, Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмой интСрфСйсов доступа ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, устройствам ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ Π² Π½Π΅ΠΉ.

Π’Π°ΠΆΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ WMI являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ хранящиСся Π² Π½Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ динамичСским рСсурсам, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ этих рСсурсов постоянно ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, поэтому ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π΅ Ρ…ранятся постоянно, Π° ΡΠΎΠ·Π΄Π°ΡŽΡ‚ся ΠΏΠΎ Π·Π°ΠΏΡ€ΠΎΡΡƒ потрСбитСля Π΄Π°Π½Π½Ρ‹Ρ…. Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² WMI называСтся Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΈ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Windows: %SystemRoot%System32WBEMRepositoryFS.

1.1 ΠšΠ»Π°ΡΡΡ‹, события ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ WMI

Π’Π°ΠΊ ΠΊΠ°ΠΊ WMI построСн ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, Ρ‚ΠΎ Π²ΡΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы прСдставлСны Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΈΡ… ΡΠ²ΠΎΠΉΡΡ‚Π² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

ВсС классы Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΡΡ‚ранства ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ иСрархичСски упорядочСны ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈ связаны Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΠ»ΠΈ области управлСния. Π’ WMI имССтся ΠΎΠ΄Π½ΠΎ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½ Root, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ 4 подпространства: CIMv2, Default, Secutiry ΠΈ WMI.

ΠšΠ»Π°ΡΡΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π½Π°Ρ…одятся Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ичСской зависимости Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ классы-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ свойства классов-Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ свои свойства.

Бвойства классов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ экзСмпляра класса ΠΈ Π΄Π»Ρ описания состояния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ рСсурса. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ всС свойства классов доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, хотя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ классов ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дСйствия Π½Π°Π΄ управляСмым рСсурсом.

ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ экзСмпляру класса ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

[\ComputerNameNameSpace] [:ClassName] [.KeyProperty1=Value1] [, KeyProperty2=Value2]…]

Π³Π΄Π΅

ComputerName — имя ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°

NameSpace — Π½Π°Π·Π²Π°Π½ΠΈΠ΅ пространства ΠΈΠΌΠ΅Π½

ClassName — имя класса

KeyProperty1=Value1, KeyProperty2=Value2 — свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ ΠΈΠ΄Π΅Π½Ρ‚ифицируСтся.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ обращСния ΠΊ ΠΏΡ€ΠΎΡ†Π΅ΡΡΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ «Calc.exe», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ машинС: \.CIMv2: Win32_Process. Name= «Calc.exe».

ЭкзСмпляры классов ΠΌΠΎΠ³ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ события, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ. ΠŸΡ€ΠΈ наступлСнии события WMI автоматичСски создаСт экзСмпляр Ρ‚ΠΎΠ³ΠΎ класса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ соотвСтствуСт это событиС. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΈ наступлСнии ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ события, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΡΠΎΡΡ‚ояниСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

ΠžΠ±Ρ‰Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π² WMI рСализуСтся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° бСзопасности основана Π½Π° ΡƒΡ€ΠΎΠ²Π½ΡΡ… пространств ΠΈΠΌΠ΅Π½ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° DCOM. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²Π° Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ дСйствиС Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму, ΠΎΠ½ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ‚ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Ρ‡Π΅Ρ€Π΅Π· WMI. Если ΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π΄Π°Π½ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, Ρ‚ΠΎ ΡΡ‚ΠΎ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это ΠΏΡ€Π°Π²ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈ Π² WMI, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² WMI Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ бСзопасности Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ пространств ΠΈΠΌΠ΅Π½.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈΠΌΠ΅Π΅Ρ‚ своС описаниС бСзопасности (SD) со ΡΠ²ΠΎΠΈΠΌ списком доступа (ACL), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ пСрСчислСны ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (SID) ΠΈ ΠΈΡ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ. КаТдоС пространство ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ собствСнноС SD со ΡΠ²ΠΎΠΈΠΌ ACL, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², запись классов ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π”Π°Π½Π½Ρ‹Π΅ ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… хранятся Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ WMI. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ классы ΠΈΠ· ΠΏΡ€ΠΎΡΡ‚ранств ΠΈΠΌΠ΅Π½ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ собствСнных описаний бСзопасности, ΠΎΠ½ΠΈ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΈΡ… ΠΎΡ‚ ΡΠ²ΠΎΠ΅Π³ΠΎ пространства ΠΈΠΌΠ΅Π½.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ администратор ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΏΡ€Π°Π²Π° Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ WMI, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ лишь Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ экзСмпляры классов ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² WMI.

Для доступа ΠΊ ΠΈΠ½Ρ„раструктурС WMI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» DCOM, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ WMI. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€Π°Π²Π° Π±ΡƒΠ΄ΡƒΡ‚ Ρƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ олицСтворСния ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° DCOM.

Π£Ρ€ΠΎΠ²Π½ΠΈ олицСтворСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния: Anonymous Анонимный WMI-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ — доступ ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСтся

Identify Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ WMI-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ — доступ прСдоставляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ локально

Impersonate ΠžΠ»ΠΈΡ†Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΠ΅ WMI-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ ΠΏΡ€Π°Π²Π°, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ — Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅

Delegate Π”Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ WMI-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ WMI-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ — Π½Π΅Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Π£Ρ€ΠΎΠ²Π½ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (подлинности) ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния: None ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подлинности отсутствуСт

Default По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ настройки бСзопасности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ-Ρ†Π΅Π»ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Connect ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ-Ρ†Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ отсутствуСт

Call Π’Ρ‹Π·ΠΎΠ² ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подлинности ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ-Ρ†Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ, Π½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Π½Π΅ ΡˆΠΈΡ„руСтся

Pkt ΠŸΠ°ΠΊΠ΅Ρ‚ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подлинности всСх ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ-Ρ†Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ, Π½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Π½Π΅ ΡˆΠΈΡ„руСтся

PktIntegrity Π¦Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подлинности ΠΈ Ρ†Π΅Π»ΠΎΡΡ‚ности всСх ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ-Ρ†Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ, Π½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Π½Π΅ ΡˆΠΈΡ„руСтся

PktPrivacy Π‘Π΅ΠΊΡ€Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подлинности ΠΈ Ρ†Π΅Π»ΠΎΡΡ‚ности всСх ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ-Ρ†Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ ΡˆΠΈΡ„Ρ€ΡƒΡŽΡ‚ΡΡ

1.2 БрСдства Ρ€Π°Π±ΠΎΡ‚Ρ‹ с WMI

— wmimgmt. msc — оснастка консоли управлСния MMC для настройки WMI Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

— winmgmt. exe — консольная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° управлСния WMI локального ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

— wbemtest. exe — графичСская ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для взаимодСйствия со ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΎΠΉ WMI Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

— wmic. exe — консольная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для взаимодСйствия со ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΎΠΉ WMI Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

— mofcomp. exe — компилятор MOF-Ρ„Π°ΠΉΠ»ΠΎΠ² для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ структуры WMI, управлСния Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ классов WMI ΠΈ Π²ΠΎΡΡΡ‚ановлСния рСпозитория.

1.3 Π―Π·Ρ‹ΠΊ запросов WMI

Для обращСния ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ WMI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ спСцифичСский язык запросов WMI Query Language (WQL), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚Π΅ΠΉ SQL. ОсновноС Π΅Π³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ANSI SQL — это Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ измСнСния Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ WQL Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° лишь Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SELECT. Помимо ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, WQL Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠ°ΠΊ DISTINCT, JOIN, ORDER, GROUP, матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ IS ΠΈ NOT IS ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠΈ с ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΎΠΉ NULL.

Запросы WQL ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² ΡΠΊΡ€ΠΈΠΏΡ‚Π°Ρ…, Π½ΠΎ ΠΈΡ… Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Wbemtest ΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ Wmic (ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° wmic Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ написания ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова SELECT ΠΈ ΠΏΠΎΠ»Π΅ΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ).

1.4 ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ WMI

Π’ ΡΠΊΡ€ΠΈΠΏΡ‚Π°Ρ… для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ WMI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Π° (SWbemLocator) ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ½ΠΈΠΊΠ΅Ρ€Π° (WinMgmts). ΠœΠ΅Ρ‚ΠΎΠ΄ Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Π° позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ соСдиниС с ΠΏΡ€ΠΎΡΡ‚ранством ΠΈΠΌΠ΅Π½ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠ½ΠΈΠΊΠ΅Ρ€Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ WMI Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Π° ИспользованиС этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΊΠΎΠ³Π΄Π° Π² ΡΡ†Π΅Π½Π°Ρ€ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ явно Π·Π°Π΄Π°Ρ‚ΡŒ имя ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ WMI. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ SWbemLocator создаСтся Ρ‚Π°ΠΊ:

Set mSWbemLocator = CreateObject («WbemScripting.SWbemLocator»)

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ WMI производится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ConnectServer:

mSWbemServices = mSWbemLocator. ConnectServer ([ServerName], [NameSpace], [User], _

[Password], [Locate], [Authority], [SecurityFlags], [WbemNamedValueSet])

Π³Π΄Π΅

ServerName — имя ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° (Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€),

NameSpace — пространство ΠΈΠΌΠ΅Π½ (Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎ ΠΏΡ€ΠΎΡΡ‚ранство ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ),

User — имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π”ΠΎΠΌΠ΅Π½Π£Ρ‡Π΅Ρ‚Π½Π°ΡΠ—Π°ΠΏΠΈΡΡŒ (Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ),

Password — ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ,

Locate — ΠΊΠΎΠ΄ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ язык),

Authority — имя Π΄ΠΎΠΌΠ΅Π½Π°, Ссли ΠΎΠ½ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ User (Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π΄ΠΎΠΌΠ΅Π½),

SecurityFlags — врСмя оТидания ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ,

WbemNamedValueSet — контСкстная информация для ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для запроса.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠ½ΠΈΠΊΠ΅Ρ€Π° ΠœΠΎΠ½ΠΈΠΊΠ΅Ρ€ — это строка, Π·Π°Π΄Π°ΡŽΡ‰Π°Ρ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ»Π°ΡΡΡƒ WMI, экзСмпляр ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ создан. ΠœΠΎΠ½ΠΈΠΊΠ΅Ρ€ состоит ΠΈΠ· ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ прСфикса «winmgmts:», Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… настроСк бСзопасности, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΌΡƒ классу:

Set mSWbemServices = GetObject («winmgmts: [{SecurityOptions}!]\[Server][NameSpace]»)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΌΠΎΠ½ΠΈΠΊΠ΅Ρ€Π°:

' ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΡΡ‚ранству ΠΈΠΌΠ΅Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ локального ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°

Set mSWbemServices0 = GetObject («winmgmts:»)

' ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ пространству ΠΈΠΌΠ΅Π½ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°

' с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° олицСтворСния

Set mSWbemServices1 = GetObject («winmgmts: {impersonationLevel=Impersonate}!» & _

«\MyComputerRootCIMv2»)

' ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ локального ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°

' с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° олицСтворСния ΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ

Set mSWbemServices2 = GetObject («winmgmts:» & _

«{impersonationLevel=Impersonate, (Shutdown, RemoteShutdown)}!» & _

«\.RootCIMv2: Win32Process. Handle=4»).

Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΠΌ ΠΈ ΠΏΠΎΠ»ΡƒΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»ΠΈ сцСнарий Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ»ΠΈ запрос Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

АсинхронноС использованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² рСпозитория Аналогично синхронным ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ WMI позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ асинхронно, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² выполнСния ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ запроса ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ сцСнария ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Названия Ρ‚Π°ΠΊΠΈΡ… асинхронных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ «Async», Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ ΠΎΡ‚личаСтся ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π΄Π²Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: ссылка Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «ΡΠ»ΠΈΠ² событий» ΠΈ ΠΊΠΎΠ½Ρ‚Скстная информация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

класс Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ windows ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

1.5 Π Π°Π±ΠΎΡ‚Π° с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ запросов

РассмотрСнныС Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ своими ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°ΠΌΠΈ. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ нСсколькими свойствами ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠ· Π½ΠΈΡ… — это Count ΠΈ Item.

Count — это свойство ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТит количСство элСмСнтов ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Item (mObjectPath) — это ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ.

Π‘Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ свои ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ классу Π΄Π°Π½Π½ΠΎΠ³ΠΎ экзСмпляра. Но ΠΏΠΎΠΌΠΈΠΌΠΎ классовых свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² всСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ присущи ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» подчСркивания, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠΎΠ²Ρ‹Ρ…. НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ — это ExecMethod_ ΠΈ Put_.

ExecMethod_(mMethod, mWbemInParamsm, mFlags, mWbemNamedValueSet) — это ΠΌΠ΅Ρ‚ΠΎΠ΄ для исполнСния классового ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Put_(mFlags, mWbemNamedValueSet) — это ΠΌΠ΅Ρ‚ΠΎΠ΄ для записи ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ WMI ΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Put_:

' ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΡΡ‚ранству ΠΈΠΌΠ΅Π½

Set mSWbemServices = GetObject («winmgmts:\.RootCIMv2»)

' ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° логичСского диска

Set mDisks = mSWbemServices. ExecQuery («SELECT * FROM Win32_LogicalDisk WHERE DeviceID = 'C:'»)

' ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

For Each mDisk in mDisks

' Π‘ΠΌΠ΅Π½Π° ΠΌΠ΅Ρ‚ΠΊΠΈ диска

oDisk. VolumeName = «System»

' Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

oDisk. Put_Next.

2. ОписаниС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ WMI

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C# использовались классы ManagementObjectSearcher, ManagementObject, PropertyData ΠΈΠ· ΠΏΡ€ΠΎΡΡ‚ранства ΠΈΠΌΠ΅Π½ System. Management.

ManagementObjectSearcher — класс ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΡΠΎΠΎΡ‚вСтствии с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ запросом. Π­Ρ‚ΠΎΡ‚ класс являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… исходных Ρ‚ΠΎΡ‡Π΅ΠΊ Π²Ρ…ΠΎΠ΄Π° для извлСчСния свСдСний ΠΎΠ± ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. НапримСр, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для пСрСчислСния всСх дисководов, сСтСвых Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ², процСссов ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅, Π»ΠΈΠ±ΠΎ для запроса всСх Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… сСтСвых ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, приостановлСнных слуТб ΠΈ Ρ‚. Π΄. ПослС создания экзСмпляр этого класса ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ исходных Π΄Π°Π½Π½Ρ‹Ρ… запрос WMI, прСдставлСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ObjectQuery ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ, ΠΈ ΠΏΡ€ΠΈ нСобходимости ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ManagementScope, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ пространство ΠΈΠΌΠ΅Π½ WMI, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ запрос. ЭкзСмпляр ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТатся Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ EnumerationOptions. ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Get () для этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ManagementObjectSearcher выполняСт Π΄Π°Π½Π½Ρ‹ΠΉ запрос Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ области ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ запросу, Π² ManagementObjectCollection.

ManagementObjectCollection — класс прСдставляСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ WMI. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΡΡ‚ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ относятся ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ ManagementBaseObject, Π² Ρ‚ΠΎΠΌ числС ManagementObject ΠΈ ManagementClass. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ WMI-запроса, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ManagementObjectSearcher, ΠΈΠ»ΠΈ ΠΆΠ΅ пСрСчислСниС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ManagementClass, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ этот Ρ‚ΠΈΠΏ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ коллСкция ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², привязанных Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ способом ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. Π’ ΡΡ‚ΠΎΠΌ случаС коллСкция извлСкаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠ°ΠΊ GetRelated ().Для прохоТдСния ΠΏΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ManagementObjectCollection. ManagementObjectEnumerator, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТатся Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ управлСния.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ классов Windows Forms. Основной класс frmMain

УнаслСдован ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠ° Form ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚авляСт собой ΠΎΠΊΠ½ΠΎ.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Π·Π°Π½ΠΎΡΠΈΡ‚ Π² ΡΠΏΠΈΡΠΎΠΊ элСмСнты, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠ² WMI.

public frmMain ()

{

InitializeComponent ();

this.cmbxOption. Items. AddRange (new object[] {

«Win32_OperatingSystem»,

«Win32_PhysicalMemory»,

«Win32_PortConnector»,

«Win32_Processor"});

cmbxOption. SelectedItem = «Win32_Processor»;

}

Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ InsertInfo, которая заносит Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡΠΏΠΈΡΠΎΠΊ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

// функция которая заносит Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡΠΏΠΈΡΠΎΠΊ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅

private void InsertInfo (string Key, ref ListView lst, bool DontInsertNull)

{

// ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ список

lst. Items. Clear ();

// создаСм экзСмпляр для обращСния ΠΊ wmif

ManagementObjectSearcher searcher = new ManagementObjectSearcher («select * from» + Key);

try

{

// searcher. Get () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ΠΎΠ² ManagementObject

// ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ ΠΈΡ… Π² Ρ†ΠΈΠΊΠ»Π΅

foreach (ManagementObject share in searcher. Get ())

{

ListViewGroup grp;

try

{

// имя Π³Ρ€ΡƒΠΏΠΏΡ‹ элСмСнтов

grp = lst. Groups. Add (share["Name"]. ToString (), share ["Name"]. ToString ());

}

catch

{

grp = lst. Groups. Add (share. ToString (), share. ToString ());

}

// Ссли Π½Π΅Ρ‚ элСмСнтов Π²Ρ‹Π΄Π°Π΅ΠΌ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅

if (share. Properties. Count <= 0)

{

MessageBox. Show («No Information Available», «No Info», MessageBoxButtons. OK, MessageBoxIcon. Information);

return;

}

// ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ нСпосрСдствСнно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ свойств

foreach (PropertyData PC in share. Properties)

{

ListViewItem item = new ListViewItem (grp);

if (lst. Items. Count% 2≠ 0)

// Π­Ρ‚ΠΎ просто для красоты — Ρ†Π²Π΅Ρ‚Π° элСмСнтов списка ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Ρ†Π²Π΅Ρ‚Ρƒ

item. BackColor = Color. White;

else

item. BackColor = Color. WhiteSmoke;

// заносим тСкст Π² ΡΠΏΠΈΡΠΎΠΊ

item. Text = PC. Name;

// Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ свойства (Ρ‚ΠΎΠ΅ΡΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°)

// ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ Π΅Π³ΠΎ ΠΈ Π·Π°Π½ΠΎΡΠΈΠΌ Π² ΡΡ‡Π΅ΠΉΠΊΡƒ списка

if (PC. Value≠ null && PC. Value. ToString ()≠ ««)

{

switch (PC. Value. GetType ().ToString ())

{

case «System. String[]»:

string[] str = (string[]) PC. Value;

string str2 = ««;

foreach (string st in str)

str2 += st + ««;

item. SubItems. Add (str2);

break;

case «System.UInt16 []»:

ushort[] shortData = (ushort[]) PC. Value;

string tstr2 = ««;

foreach (ushort st in shortData)

tstr2 += st. ToString () + ««;

item. SubItems. Add (tstr2);

break;

default:

item. SubItems. Add (PC. Value. ToString ());

break;

}

}

else

{

// Ссли Π½Π΅Ρ‡Π΅Π³ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ — Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС

if (! DontInsertNull)

item. SubItems. Add («No Information available»);

else

continue;

}

// Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π°Ρ опСрация — добавляСм сформированный элСмСнт Π² ΡΠΏΠΈΡΠΎΠΊ

lst. Items. Add (item);

}

}

}

catch (Exception exp)

{

MessageBox. Show («can't get data because of the followeing error n» + exp. Message, «Error», MessageBoxButtons. OK, MessageBoxIcon. Information).

}

}

3. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

ЦСль тСстирования ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ — ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, локализация ΠΈ ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π½Π° Π½Π΅Π³ΠΎ ΠžΠ‘ Windows 7. Π‘Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ нСсколько запусков ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Ошибок ΠΈ Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΎΠΊ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Рисунок 3.1 — ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π΅ Рисунок 3.2 — ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΡ€Ρ‚Π°Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°

Для выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» kurs. exe ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ списка, ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π”Π°Π½Π½Ρ‹ΠΉ курсовой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для изучСния соврСмСнных срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Windows.

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π½Π°Π²Ρ‹ΠΊΠΈ постановки Π·Π°Π΄Π°Ρ‡ΠΈ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ способом, Π²Ρ‹Π±ΠΎΡ€Π° ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², составлСния, ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ Ρ‚Сстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования, использования справочной Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², закрСплСния практичСских Π½Π°Π²Ρ‹ΠΊΠΎΠ² Π² ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π’ Ρ‡Π°ΡΡ‚ности, Π±Ρ‹Π»ΠΈ Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ вывСдСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° ΡΠΊΡ€Π°Π½.

МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ поставлСнноС ΠΏΡ€ΠΈ курсовом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ.

НСдостатками Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ срСдства ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

— Π½Π΅Π΄ΠΎΡΡ‚аточная Π³Π°Ρ€ΠΌΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ графичСской ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°;

— Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΠ΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ прилоТСния Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… с ΠΌΠ°Π»Ρ‹ΠΌ объСмом ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти;

Π”Π°Π½Π½Ρ‹Π΅ нСдостатки ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ исправлСны ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΡ… Π·Π½Π°Π½ΠΈΠΉ ΠΈ Π½Π°Π²Ρ‹ΠΊΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°.

Бписок источников

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ Π‘ΠΎΡ‡ΠΊΠ°Ρ€Ρ‘Π². АдминистрированиС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ WMI, http://www.sysengineering.ru, 26.04.2010.

Π§Π°Ρ€Π»ΡŒΠ· ΠŸΠ΅Ρ‚Ρ†ΠΎΠ»ΡŒΠ΄, ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Microsoft Windows Forms. — ΠŸΠΈΡ‚Π΅Ρ€: Русская РСдакция, 2006. — 432 с.

НСйгСл, ИвьСн, Π“Π»ΠΈΠ½Π½, Уотсон, Π‘ΠΊΠΈΠ½Π½Π΅Ρ€ C# 2008 ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° .NET 3.5 для профСссионалов. — Πœ.: WMPEC 2008. — 1392 c.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ