Lista zainstalowanych programów w Powershell
Jakiś czas temu opublikowałem artykuł „Lista zainstalowanych programów w CMD„. Jak wiecie, Powershell rządzi światem ;), zatem wypadało mi opisać to samo zagadnienie w Powershell.
Programy z listy „dodaj usuń programy” w oknie Powershell
Zwolennicy GUI zawsze szukają zainstalowanych programów w Panelu Sterowania, w aplecie „Dodaj Usuń Programy”. Dokładnie tą samą listę wydobędziemy i wyświetlimy w naszej konsoli poleceniem:
get-wmiobject Win32_product
Oto przykładowy wynik (fragment długiej listy):
Jak widać, dane są mało czytelne. Raport powinien być bardziej przejrzysty. Możemy pokusić się o eleganckie sformatowanie listy. Na przykład wyświetlimy nazwę programu i producenta:
get-wmiobject Win32_product | select Name,Vendor
Wynik robi się całkiem przyjazny, prawda? 🙂
Gdy wspomniałem o liście programów z Panelu Sterowania, wielu z Was powinno od razu rozpoznać problem: Ta lista programów przecież nie jest pełna! Otórz, Wasze maszyny najczęściej będą posiadały software, który będzie nieobecny na powyższej liście. Gdzie znaleźć „lepszą”? Ano, w Rejestrze!
Odczytajmy zawartość odpowiedniego klucza:
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*
Oto przykładowy wynik. Dodałem „| more”, aby nie wyświetlać ogromnej liczby wierszy 🙂 (| more wyświetla rezultat porcjami. Kolejne porcje przewijamy spacją).
Oczywiście wynik możemy sobie ładnie sformatować decydując, które właściwości mają pojawić się w tabeli:
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |Format-Table –AutoSize
Lista zainstalowanych programów w Powershell na zdalnym komputerze
O zdalnym wykonywaniu poleceń w Powershell był osobny artykuł. Zachęcam do zapoznania się z nim, gdyż to bardzo poważny temat :-D. Tymczasem, my wykorzystamy najprostszą metodę:
invoke-command -computername kwibus10 -scriptblock {Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*}
Cmdlet „GET-WMIOBJECT” ma natomiast wbudowaną flagę do łączenia się ze zdalnymi komputerami:
get-wmiobject -computername nazwa_lub_IP_zdalnego_komputera Win32_product | select Name,Vendor
To wszystko na dziś 🙂 Więcej materiałów o Powershell znajdziecie tutaj: https://spece.it/kurs-powershell Jak zawsze zachęcam do komentowania i dzielenia się swoimi uwagami.
Witam, a Czy jest możliwość ustawienia skryptu w PS, żeby wyszukał wszystkie zainstalowane aplikacje wg pliku txt gdzie sa nazwy komputerów ?
musze wyciagnac liste programow wraz z licencjami zainstalowanych w calej domenie