Скрипт Powershell для получения спецификаций сервера

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

спецификации сервера

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

Ссылка на основную публикацию
Adblock
detector