Не забравяйте да прочетете предишните статии в серията:
- Научете как да автоматизирате Windows с PowerShell
- Научете как да използвате Cmdlets в PowerShell
- Учене как да използвате обекти в PowerShell
- Форматиране на обучение, филтриране и сравнение в PowerShell
- Научете как да използвате Remoting в PowerShell
И останете настроени за останалата част от серията през цялата седмица.
Въведение
WMI означава Windows Management Instrumentation. Думата "Инструментация" се отнася до факта, че WMI ви позволява да получите информация за вътрешното състояние на вашия компютър, подобно на инструментите на таблото в автомобила ви може да извлича и показва информация за състоянието на вътрешните компоненти на вашите автомобили.
WMI се състои от хранилище, което съдържа класове, които представляват компоненти, които могат да се управляват във вашата машина. С това имаме предвид само защото WMI има клас Win32_Battery, не означава, че вашата машина съдържа батерия. След това тези класове могат да бъдат изпробвани за информация на местно ниво или дори в мрежа, използвайки език на заявката, много подобен на SQL, наречен WQL. Въпреки това, WMI е известно, че е много ненадеждна, най-вече поради факта, че се основава на RPC (Remote Procedure Calls), които правят някои луди неща с пристанищата, които избират да комуникират.
Започвайки с Windows 8 и Server 2012, WMI се прекратява в полза на Общия информационен модел или CIM за кратко. Единствената разлика между WMI и CIM е транспортните протоколи, които използват. Докато WMI изпълнява заявки, като използва дистанционни процедури, CIM използва HTTP, което изглежда има огромна разлика. На гръбнака те все още говорят за едно и също хранилище на информация.
Използване на WMI
Най-бързият и лесен начин за проучване на информацията, която ви е достъпна чрез WMI, е да вземете копие на всеки безплатен WMI Object Browser. Харесва ни това. След като го изтеглите, го задействайте и ще имате графичен интерфейс, за да разгледате класовете WMI.
В долната половина на приложението можете да видите, че имаме два случая на класа.
Get-WmiObject -Query “SELECT * FROM Win32_LogicalDisk”
Get-WmiObject –Class Win32_LogicalDisk
Get-WmiObject -Class Win32_LogicalDisk -ComputerName Viper –Credential viperadministrator
Използване на CIM
Имайки предвид, че CIM е достъпен само за Windows 8 и Server 2012, напредвайки напред, това определено е начинът да вървим.
Get-CimInstance –ClassName Win32_LogicalDisk
Всъщност WMI е разработен от напълно отделен екип в Microsoft, но впоследствие е поет от хората, които отговарят за PowerShell. Те бяха тези, които забелязаха, че ще бъде много трудно да се изчисти катастрофата, която WMI изостана. В опит да се поправи ситуацията, те се опитват да направят WMI и CIM по-достъпни, като напишат обвивки, които използват WMI и CIM под качулката. Единственият начин да проверите дали една cmdlet е обвивка е чрез разглеждане на документацията. Например, cmdlet Get-Hotfix е обвивка за класа Win32_QuickFixEngineering, както се вижда в документацията.
Get-HotFix –ComputerName localhost