Moje codzienne narzędzia pracy

Moje narzędziaPrzy każdej nowej instalacji systemu operacyjnego (lub jego reinstalacji - choć to robię dużo rzadziej) przychodzi taki moment kiedy trzeba zainstalować najpotrzebniejsze programy.

Ja zawsze miałem z tym pewien problem, bo nie miałem żadnej zebranej listy tego, co używam najcześciej na swoim komputerze. A każdy z nas na pewno ma taką listę - czy to spisaną czy to w głowie.

Moja lista

Postanowiłem więc w końcu zebrać taką listę i zapisać ją:

  • dla siebie (żebym wiedział następnym razem co zainstalować na czystym systemie)
  • dla Was (żebyście może znaleźli też coś ciekawego dla siebie).

Przygotowałem taki zbiór narzędzi i jest on od dziś dostępny na moim blogu. W wolniejszej chwili podepnę go do głównego menu (tak jak i jeszcze inną stronę tego typu, o której też napiszę dwa słowa w osobnym poście).

Niektóre z programów na liście są darmowe, inne są płatne. Te drugie po prostu są warte swoich pieniędzy i dlatego ich używam.

Myślę, że będzie to lista, która będzie żyła i która będzie się zmieniała - bo albo ja znajdę coś nowego (lub lepszego), albo może Wy mi coś ciekawego podpowiecie. Listy więc nie zamykam. A Was już zapraszam do jej przejrzenia.

I jeśli macie ochotę to napiszcie w komentarzu czego jeszcze Wy bardzo często używacie, a bez czego nie wyobrażacie sobie codziennej pracy przed komputerem. Może ja pewne wybory zmienię, albo do listy dodam coś nowego.

Generowanie listy

Ja zawsze się zastanawiałem dlaczego w "Dodaj/Usuń Programy" nie ma prostego przycisku "Wygeneruj listę zainstalowanych programów". Moglibyśmy w nim wybrać 2-3 opcje (typu z podaniem wersji, z podaniem producenta, itp.) i zrobiłaby nam się lista, którą moglibyśmy wyeksportować do pliku i mieć na przyszłość do następnej instalacji/reinstalacji systemu.

I owszem są sposoby mniej lub bardziej automatyczne, mniej lub bardziej proste, ale myślę, że taki przycisk bardzo by się przydał wielu osobom nie mającym wiedzy technicznej. Może warto wysłać taką sugestię do Redmond?

Ale jeśli Wy chcielibyście sami wygenerować sobie taką listę to podam Wam 2-3 proste przykłady.

WMI

Korzystając z WMI (Windows Management Instrumentation) możecie w prosty sposób wyciągnąć sobie wiele informacji z komputera i możecie te czynności zautomatyzować.

WMICJeśli chcielibyście zgrać sobie listę zainstalowanego oprogramowania możecie uruchomić sobię command line (cmd.exe) i wrzucić w niego:

wmic /output:lista.txt product get name

Do pliku lista.txt wyeksportowana zostanie pełna lista programów zainstalowanych na naszym komputerze.

Możecie też ewentualnie napisać krótki skrypt jak poniżej i zapisać go do pliku skryptPliki.vbs:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
    ("Select * from Win32_Product")

For Each objSoftware in colSoftware
    Wscript.Echo "Name: " & objSoftware.Name
    Wscript.Echo "Version: " & objSoftware.Version
Next

A następnie w command line wykonać polecenie:

cscript skryptPliki.vbs > lista.txt

To również wyeksportuje Wam listę do pliku. Przy czym w drugim przypadku trochę łatwiej będzie mogli się pobawić wyciąganymi danymi oraz ich formatowaniem. Listę wszystkich właściwości (Name, Version), które dzięki temu skryptowi możecie wyciągnąć znajdziecie spisaną na MSDN.

PowerShell

PowerShellMy jako Microsoft od dłuższego czasu promujemy PowerShell (jako poniekąd następce cmd.exe), który dodatkowo korzysta z potęgi .NET Framework i pozwala automatyzować wiele zadań związanych z administracją oraz zarządzaniem komputerami.

Co ciekawe, od 2008 roku wszystkie produkty serwerowe wypuszczone przez Microsoft muszą umożliwiać ich zarządzanie za pomocą PowerShell. Oznacza to tyle, że nie mając żadnej nakładki graficznej np. na Exchange 2010 można wszystkie jego funkcje i zadania wykonać za pomocą PS. Strasznie to ułatwia administrowanie, a jednocześnie ujednolica obchodzenie się z dowolnym produktem serwerowym Microsoft.

Charakterystyczną cechą PowerShell jest też obiektowość . Każde polecenie zwraca nam obiekt (któremu jeśli nie wskażemy co ma się z nim stać to domyślnie wyświetli nam się na ekranie), z którym możemy wykonywać coś więcej w kolejnych krokach (np. odczytywać określone właściwości, itp.). Co też ważne - to praktycznie wszystkie funkcje dostępne przez API (czyli w sumie każda rzecz jaką w Windows można zrobić) można wywołać również w PowerShell.

A dzięki temu - wywołanie tytułowej listy zainstalowanych programów możemy w PowerShell wywołać sobie np. tak:

Get-wmiobject Win32_Product | Sort-Object Vendor, Name | Out-GridView

Rozpisałem się dosyć mocno, zaczynając od listy zainstalowanych programów, a kończąc na pewnych technikaliach, ale może Wam również przyda się to kiedyś w przyszłości.

Ja przypomnę, że w komentarzach z chęcią posłucham o Waszych obowiązkowych programach, bez których nie możecie się obejść na codzień!

PS. Dzięki dla gynvael oraz @rek za podesłanie na blipie konkretnych linków z przykładami do WMI oraz PowerShell.