Geek училище Използване на PowerShell да получите информация за компютъра
WMI и по-новият му брат CIM могат да се използват за управление на машините на Windows във вашата среда. Но знаете ли разликата между тях? Присъединете се към нас, когато погледнем.
Прочетете предишните статии от поредицата:
- Научете как да автоматизирате Windows с PowerShell
- Научете се да използвате Cmdlets в PowerShell
- Научете как да използвате обекти в PowerShell
- Обучение за форматиране, филтриране и сравняване в PowerShell
- Научете се да използвате Remoting в PowerShell
Очаквайте останалата част от поредицата цяла седмица.
Въведение
WMI означава Windows Management Instrumentation. Думата "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.
Ако искате да разберете нещо за конфигурацията на диска на компютъра, натиснете комбинацията от клавиши Ctrl + F, за да изведете поле за търсене, след това въведете „logicaldisk“ и натиснете enter.
Веднага това ще ви отведе до класа Win32_LogicalDisk.
В долната половина на приложението можете да видите, че имаме два случая на класа.
След като получим класа, който търсим, запитването от PowerShell е право напред.
Get-WmiObject -Query “SELECT * FROM Win32_LogicalDisk”
Не съм виждал този синтаксис за известно време с хора, които предпочитат да използват новия параметриран синтаксис.
Get-WmiObject -Class Win32_LogicalDisk
Ако искате да получите информацията от друг компютър във вашата мрежа, можете просто да използвате параметъра ComputerName.
Get-WmiObject -Class Win32_LogicalDisk -Компютърен имейл Viper-администратор на уравнения
Използване на CIM
Като се има предвид, че CIM е достъпен само за Windows 8 и Server 2012, това е начинът, по който се движи напред.
Get-CimInstance -ClassName Win32_LogicalDisk
Има и завършване на табулатора за параметъра -ClassName при използване на Get-CimInstance, което показва, че напредъкът в това ще бъде насочен към усилията на Microsoft..
Всъщност WMI е разработен от напълно отделен екип в Microsoft, но впоследствие е поет от хората, които отговарят за PowerShell. Те бяха тези, които забелязаха, че ще бъде много трудно да се почисти бъркотията, оставена от WMI. В опит да се коригира ситуацията, те се опитват да направят WMI и CIM по-достъпни чрез писане на кратки команди, които използват WMI и CIM под капака. Единственият начин да проверите дали cmdlet е обвивка е като погледнете документацията. Например, командлета Get-Hotfix е обвивка за класа Win32_QuickFixEngineering, както се вижда в документацията.
Това означава, че можете да получите актуалните корекции на отдалечени машини, като използвате командлета Get-HotFix вместо WMI заявка.
Get-HotFix -компютърно име localhost
Така че имаш го. Само не забравяйте, че ако има специален cmdlet, винаги ще искате да го използвате, последвано от CIM, ако не съществува cmdlet. И накрая, ако всичко друго се провали, или имате по-стари машини във вашата среда, ще искате да използвате WMI. Това е всичко, което имам за това време. Ще се видим утре за по-забавно PowerShell.