Вот полезный скрипт, который предоставит вам такие спецификации сервера, как полное доменное имя сервера, физическая или виртуальная информация, модель, общий объем памяти, версия BIOS, адреса IP и MAC, маска подсети, шлюз по умолчанию, состояние DHCP, тип ОС, пакет обновления, серийный номер. и т.п.
Создайте файл servers.txt со списком серверов, для которых вы хотите получить спецификации сервера. Один сервер на линию.
C: \ Temp \ serverslist.txt
serverslist.txt пример:
имя хоста
hostname2
hostname3
Теперь создайте новый текстовый файл и переименуйте его в serverlist.ps1
$ Excel = New-Object -Com Excel.Application
$ Excel.visible = $ True
$ Excel = $ Excel.Workbooks.Add ()
# Вставить текст в первую строку.
$ Sheet = $ Excel.WorkSheets.Item (1)
$ Sheet.Cells.Item (1,1) = "Сервер"
$ Sheet.Cells.Item (1,2) = "FQDNName"
$ Sheet.Cells.Item (1,3) = "Производитель"
$ Sheet.Cells.Item (1,4) = "Модель"
$ Sheet.Cells.Item (1,5) = "TotalPhysicalMemory"
$ Sheet.Cells.Item (1,6) = "isVirtual"
$ Sheet.Cells.Item (1,7) = "SerialNumber"
$ Sheet.Cells.Item (1,8) = "Биос версия"
$ Sheet.Cells.Item (1,9) = "IP-адрес"
$ Sheet.Cells.Item (1,10) = "MAC-адрес"
$ Sheet.Cells.Item (1,11) = "IPSubnet"
$ Sheet.Cells.Item (1,12) = "DefaultGateway"
$ Sheet.Cells.Item (1,13) = "Тип"
$ Sheet.Cells.Item (1,13) = "DHCPEnabled"
$ Sheet.Cells.item (1,17) = "Операционная система"
$ Sheet.Cells.Item (1,18) = "Пакет услуг"
$ Sheet.Cells.item (1,19) = "BuildNumber"
$ Sheet.Cells.Item (1,20) = "BuildType"
$ Sheet.Cells.Item (1,21) = "Версия"
$ Sheet.Cells.Item (1,22) = "SerialNumberOS"
# Формат цветов.
$ WorkBook = $ Sheet.UsedRange
$ WorkBook.Interior.ColorIndex = 15
$ WorkBook.Font.Bold = $ True
# Перейти ко второму ряду.
$ intRow = 2
# Выберите текстовый файл, который содержит список серверов для запроса.
$ arrComputers = GC C: \ temp \ serverslist.txt
# Получить в данный момент имя пользователя, имя клиента, производителя и модель из класса Win32_ComputerSystem.
foreach ($ strComputer в $ arrComputers) {
try {$ colItems = Get-WmiObject Win32_ComputerSystem -Namespace "root \ CIMV2" -ErrorAction stop -ComputerName $ strComputer
foreach ($ objItem in $ colItems) {
$ Sheet.Cells.Item ($ intRow, 1) = $ objItem.Name
$ Sheet.Cells.Item ($ intRow, 2) = ($ objItem |% {$ _. DNSHOSTName + '.' + $ _. Domain}). ToLower ()
$ Sheet.Cells.Item ($ intRow, 3) = $ objItem.Manufacturer
$ Sheet.Cells.Item ($ intRow, 4) = $ objItem.Model
$ Sheet.Cells.Item ($ intRow, 5) = ($ objItem.TotalPhysicalMemory / 1024MB)
if ($ objItem.Model -подобный "VMWare *")
{
$ Sheet.Cells.Item ($ intRow, 6) = "Да"
}
еще
{
$ Sheet.Cells.Item ($ intRow, 6) = "Нет"
}
}
# Получить серийный номер рабочей станции из класса Win32_BIOS.
$ colItems = Get-WmiObject Win32_BIOS -Namespace "root \ CIMV2" -ErrorAction stop -ComputerName $ strComputer
foreach ($ objItem in $ colItems) {
$ Sheet.Cells.Item ($ intRow, 7) = $ objItem.SerialNumber
if ($ objItem.BiosVersion -eq $ null)
{
$ Sheet.Cells.Item ($ intRow, 8) = "Неизвестно"
}
еще
{
$ Sheet.Cells.Item ($ intRow, 8) = $ objItem.BiosVersion [0]
}
}
# Get OperatingSystme Imforamtion из Win32_OperatingSystem
$ colItems = Get-WmiObject Win32_OperatingSystem -Namespace "root \ CIMV2" -ErrorAction stop -ComputerName $ strComputer
foreach ($ objItem in $ colItems) {
$ Sheet.Cells.Item ($ intRow, 17) = $ objItem.Name | % {$ _. Split ("|") [0]}
$ Sheet.Cells.Item ($ intRow, 18) = $ objItem.servicepackmajorversion
$ Sheet.Cells.Item ($ intRow, 19) = $ objItem.BuildNumber
$ Sheet.Cells.Item ($ intRow, 20) = $ objItem.BuildType
$ Sheet.Cells.Item ($ intRow, 21) = $ objItem.Version
$ Sheet.Cells.Item ($ intRow, 22) = $ objItem.SerialNumber
}
# Получить IP-адрес и MAC-адрес включенного сетевого адаптера из класса Win32_NetworkAdapaterConfiguration.
$ colItems = Get-WmiObject Win32_NetworkAdapterConfiguration -Namespace "root \ CIMV2" -ErrorAction stop -ComputerName $ strComputer | где {$ _. IPEnabled -eq «$ true»}
foreach ($ objItem in $ colItems) {
$ Sheet.Cells.Item ($ intRow, 9) = $ objItem.IPAddress [0]
$ Sheet.Cells.Item ($ intRow, 10) = $ objItem.MACAddress
$ Sheet.Cells.Item ($ intRow, 11) = $ objItem.IPSubnet
$ Sheet.Cells.Item ($ intRow, 12) = $ objItem.DefaultIPGateway
$ Sheet.Cells.Item ($ intRow, 13) = "IPv4"
$ Sheet.Cells.Item ($ intRow, 14) = $ objItem.DHCPEnabled
$ IntRow + = 1
}
}
ловить {
Write-Host "Не удалось связаться с $ ($ strComputer)" -ForegroundColor Red
Out-File -FilePath C: \ Noreach.txt -InputObject $ strComputer -Append -Force
}
}
Сохраните скрипт в той же папке на C: \ Temp.
Прежде чем вы сможете запустить скрипт, вам нужно включить политику выполнения в вашей системе (если вы этого еще не сделали):
Запустите Powershell в режиме с повышенными правами (запуск от имени администратора) и выполните следующую команду:
Set-ExecutionPolicy RemoteSigned
Теперь запустите скрипт Powershell с помощью этой команды:
powershell -noexit “ «» C: \ Temp \ serverlist.ps1 «»»

Вы должны получить результаты спецификации сервера на вашем экране.