Вот полезный скрипт, который предоставит вам такие спецификации сервера, как полное доменное имя сервера, физическая или виртуальная информация, модель, общий объем памяти, версия 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 «»»
Вы должны получить результаты спецификации сервера на вашем экране.