Записвайте брой процесори, ядра и логически процесори с PowerShell WindowsPro

Ако нямате инвентарно решение за определяне на CPU оборудването на сървъра, можете алтернативно да направите това чрез PowerShell и WMI. Данните, записани дистанционно, могат да бъдат записани в CSV файл за по-нататъшен анализ.

записвайте

По-специално във виртуализираните среди е важно да имате преглед на изчислителните възможности на сървъра. По този начин може да се избегне преразпределянето на vCPU към виртуални машини.

Планиране на капацитет и управление на лицензи

Познаването на броя на инсталираните процесори и изчислителни ядра също играе важна роля в управлението на лицензи. Повечето производители сега таксуват сървърния си софтуер за сокет или за ядро. Microsoft превключи лицензирането на Windows Server 2016 на про-ядрен модел.

Когато планирате капацитета за виртуализирани сървъри, от една страна се нуждаете от броя на процесорите и изчислителните ядра. От друга страна, трябва да разберете и колко логически процесора са налични. С Hyper-V и VMware те служат като основа за изчисляване на допустимото натоварване.

Изисква данни от два класа

Тези данни могат да бъдат извикани чрез WMI. Проектът се затруднява от факта, че два различни класа са отговорни за него. Броят на процесорите може да бъде получен само от Win32_Computersystem, докато Win32_Processor предоставя информация за състоянието на процесора.

Броят и свойствата на процесорите за отделни сървъри могат да бъдат определени с помощта на инструмента за команден ред wmic:

wmic COMPUTERSYSTEM получи NumberOfProcessors

wmic CPU получи NumberOfCores, NumberOfLogicProcessors

За да извършите тази операция на отдалечен сървър, посочете името му с помощта на параметъра/node.

Заявка за множество сървъри отдалечено с PowerShell

За опис на съществуващите процесори обаче може да е желателно да се изработи списък с имена на сървъри и да се добавят резултатите към CSV файл, така че данните да могат да бъдат оценени след това в Excel.

Препоръчваме да използвате PowerShell за това, където първата стъпка е да напишете заглавията на колоните на новия CSV файл:

"Име; CPU; Ядра; Логически CPU" | Изходен файл. \ Cpu.csv

След това извиквате Get-WMIObject два пъти за всеки запис от списъка със сървъри, отделно за всеки клас. Променливите $ c и $ p съхраняват резултатите от заявките. И накрая, операторът -join комбинира необходимите стойности в низ и Out-File го добавя към предварително създадения CSV файл.

Get-Content. \ Servers.txt | за всеки

$ c = Get-WmiObject -Class Win32_Computersystem -ComputerName $ _;
$ p = Get-WmiObject -Class Win32_Processor -ComputerName $ _;
-присъединяване ($ c.Name, ";", $ c.NumberOfProcessors, ";", $ p.NumberOfCores, ";",
$ p.NumberOfLogicProcessors) | Out-File -Append. \ Cpu.csv;

Този пример предполага, че списъкът с имена на сървъри е във файла servers.txt и че съдържа по един запис на ред. Той използва и по-стария Get-WmiObject, който може лесно да бъде заменен с по-новия CIM cmdlet Get-CimInstance. Основното му предимство е, че комуникира чрез WinRM, а не вече чрез DCOM.

В допълнение към споменатите свойства, класът Win32_Processor предлага редица други функции на процесора. Това включва например обозначението (Caption), производителя (Производителя) или ID (ProcessorId). Даден е пълен списък на наличните имоти

Get-CimInstance -Class Win32_Processor | gm