Admin Future
239 subscribers
50 photos
1 video
4 files
87 links
Превращаем эникейщиков в System Architects.
🚀 Твой навигатор в мире IT-инфраструктуры:

▪️ Hard Skills: Linux, Windows, Network, Security
▪️ Tools: Лучший софт и скрытые фишки
▪️ Mindset: Как думать, чтобы платили много


Админ - @maksimshap
Download Telegram
Windows: "Get-WmiObject — мертв". Переходим на CIM

Если вы в 2025 году все еще пишете Get-WmiObject в своих PowerShell-скриптах, у нас плохие новости. Эта команда мертва (deprecated).

Почему она мертва? Она использует "старый" протокол DCOM, который:

* Медленный.

* Блокируется файрволами (требует 100500 открытых портов).

* Неэффективный.

Новый стандарт: Get-CimInstance (CIM) CIM (Common Information Model) — это современная замена WMI.

Почему CIM — это круто:

Работает по WinRM: (Как и PowerShell Remoting). Ему нужен один порт (5985 http или 5986 https). Он "пробивает" файрволы.

Быстрый: Использует WS-Man, который намного легче, чем DCOM.

Умный: Get-CimInstance возвращает "чистые" объекты, а не системный мусор.

Сравнение "до" и "после":

МЕРТВО (не делайте так):

PowerShell

# Медленно, через DCOM
Get-WmiObject -Class Win32_OperatingSystem -ComputerName SERVER01

ЖИВО (делайте так):

PowerShell

# Быстро, через WinRM
Get-CimInstance -ClassName Win32_OperatingSystem -ComputerName SERVER01

(...или New-CimSession для создания постоянного подключения).

Взгляд архитектора: Выбирать правильный инструмент — это и есть архитектура. Get-WmiObject — это "костыль" из эры Server 2003. Get-CimInstance — это стандарт для современной, автоматизированной Windows-инфраструктуры.

#windows #powershell #automation #wmi #cim #sysadmin #гайд #musthave
🔥1
💾 PowerShell: Удаленная инвентаризация (Серийники)
Нужно собрать серийные номера серверов или ПК для гарантии/учета. Идти в серверную или просить пользователей лезть под стол не нужно. Используем CIM (современный аналог WMI).

Скрипт (сбор данных со списка компьютеров):


$Computers = "Server01", "Server02", "PC-Office-05"

foreach ($PC in $Computers) {
try {
$Bios = Get-CimInstance -ClassName Win32_Bios -ComputerName $PC -ErrorAction Stop
[PSCustomObject]@{
ComputerName = $PC
Serial = $Bios.SerialNumber
Manufacturer = $Bios.Manufacturer
Version = $Bios.SMBIOSBIOSVersion
}
} catch {
Write-Warning "Не удалось подключиться к $PC"
}
}

Pro Tip: Если нужно узнать модель материнской платы, поменяйте класс на Win32_BaseBoard и запросите свойство Product .

#windows #powershell #inventory #cim #scripting