PowerShell ile Yazılım Envanteri | merhaba çevrimiçi

Womanne

Member
Artık PowerShell scriptlerini blogumda belirli bir sıraya göre sunacağım. Bölüm 1, kendi kendine yapılan yazılımların bir envanterini kapsar.

Duyuru



Aşağıdaki pratik örnek, Windows PowerShell’e dahil olmak için motivasyon görevi görmelidir. Windows Yönetim Araçları’nı (WMI) kullanarak birden fazla bilgisayardan yüklü MSI paketlerini okuyan ve sonuçları bir CSV dosyasında (softwareinventar.csv) özetleyen bir yazılım envanteri komut dosyası oluşturmanız gerekir. MSI paketlerini okurken filtreler mümkün olmalıdır (örneğin üreticiye göre). Sorgulanacak bilgisayarların adları (veya IP adresleri) bir metin dosyasında (computernames.txt) olmalıdır.

Çözüm, Get-WMIObject kullanılarak her bilgisayar için bir döngüde yürütülen bir WQL sorgusudur. Öncelikle bilgisayara ping yoluyla ulaşılıp ulaşılamadığı kontrol edilir.

########################################
# Das PowerShell-Script inventarisiert die installierte Software
# eines Herstellers auf n Computersystemen
# (C) Dr. Holger Schwichtenberg
########################################
$Eingabedateiname = "computernamen.txt"
$Ausgabedateiname = "Softwareinventar.csv"
$Query = "SELECT * FROM Win32_Product where not Vendor like '%Microsoft%'"

# Import der Computernamen
$Computernamen = Get-Content "computernamen.txt"
$Computernamen | foreach {
if (Ping($_))
{
Write-Host "Inventarisiere Software für Computer $_ ..."
# Auslesen der installierten MSI-Pakete auf allen Computern
$Software += foreach-object { get-wmiobject -query $Query -computername $_ }
}
else
{
Write-Error "Computer nicht erreichbar!"
}
}

# Export in CSV
$Software | export-csv "Softwareinventar.csv" -notypeinformation

# Ping ausführen
function Ping
{
$status = Get-WmiObject Win32_PingStatus -filter "Address='$args[0]'" | select
StatusCode
return $status.Statuscode -eq 0
}


Bu arada: iX, şirketim www.IT-Visions.de ile birlikte artık PowerShell eğitim kursları sunuyor!


()



Haberin Sonu
 
Üst