Înregistrați numărul de procesoare, nuclee și procesoare logice cu PowerShell WindowsPro

Dacă nu aveți o soluție de inventar pentru a determina echipamentul CPU al serverului, puteți face acest lucru alternativ prin PowerShell și WMI. Datele înregistrate de la distanță pot fi salvate într-un fișier CSV pentru analize suplimentare.

powershell

În special în mediile virtualizate, este important să aveți o imagine de ansamblu asupra capacităților de calcul ale serverului. În acest fel, se poate evita supraalocarea vCPU-urilor la mașinile virtuale.

Planificarea capacității și gestionarea licențelor

Cu toate acestea, cunoașterea numărului de procesoare și nuclee de calcul instalate joacă, de asemenea, un rol important în gestionarea licențelor. Majoritatea producătorilor își facturează acum software-ul de server pe soclu sau pe nucleu. Microsoft a trecut licențierea Windows Server 2016 la un model pro-core.

Când planificați capacitatea pentru serverele virtualizate, aveți nevoie de numărul de procesoare și nuclee de calcul. Pe de altă parte, ar trebui să aflați și câte procesoare logice sunt disponibile. Cu Hyper-V și VMware, acestea servesc drept bază pentru calcularea sarcinii admise.

Necesită date de la două clase

Aceste date pot fi apelate prin WMI. Proiectul este îngreunat de faptul că două clase diferite sunt responsabile pentru acesta. Numărul de procesoare poate fi obținut numai de la Win32_Computersystem, în timp ce Win32_Processor oferă informații despre starea procesorului.

Numărul și proprietățile procesoarelor pentru servere individuale pot fi determinate folosind instrumentul de linie de comandă wmic:

wmic COMPUTERSYSTEM obține NumberOfProcessors

wmic CPU obține NumberOfCores, NumberOfLogicalProcessors

Pentru a efectua această operațiune pe un server la distanță, specificați numele acestuia folosind parametrul/node.

Interogați mai multe servere de la distanță cu PowerShell

Cu toate acestea, pentru un inventar al procesorelor existente, ar fi de dorit să se elaboreze o listă de nume de server și să se adauge rezultatele la un fișier CSV, astfel încât datele să poată fi evaluate ulterior în Excel.

Vă recomandăm să utilizați PowerShell pentru acest lucru, unde primul pas este să scrieți titlurile de coloană ale noului fișier CSV:

"Nume; procesoare; nuclee; procesoare logice" | Fișier ieșit. \ Cpu.csv

Apoi, apelați Get-WMIObject de două ori pentru fiecare intrare din lista de servere, separat pentru fiecare clasă. Variabilele $ c și $ p stochează rezultatele interogărilor. În cele din urmă, operatorul -join combină valorile necesare într-un șir și Out-File îl adaugă la fișierul CSV creat anterior.

Obțineți conținut. \ Servers.txt | pentru fiecare

$ c = Get-WmiObject -Class Win32_Computersystem -ComputerName $ _;
$ p = Get-WmiObject -Class Win32_Processor -ComputerName $ _;
-join ($ c.Name, ";", $ c.NumberOfProcessors, ";", $ p.NumberOfCores, ";",
$ p.NumberOfLogicalProcessors) | Out-File -Append. \ Cpu.csv;

Acest exemplu presupune că lista numelor serverelor se află în fișierul servers.txt și că conține o intrare pe linie. De asemenea, folosește vechiul Get-WmiObject, care poate fi înlocuit cu ușurință de noul cmdlet CIM Get-CimInstance. Principalul său avantaj este că comunică prin WinRM și nu mai este prin DCOM.

În plus față de proprietățile menționate, clasa Win32_Processor oferă o serie de alte caracteristici ale procesorului. Aceasta include, de exemplu, desemnarea (subtitrare), producătorul (producătorul) sau ID-ul (ProcessorId). Este prezentată o listă completă a proprietăților disponibile

Get-CimInstance -Class Win32_Processor | gm