W dniu 5 czerwca 2015 18:30 użytkownik Wiktor Przybylski < wikprzybylski@gmail.com> napisał:
On 05.06.2015 18:29, rysiek wrote:
Dnia piątek, 5 czerwca 2015 17:48:01 Łukasz 'Cyber Killer' Korpalski
pisze:
W dniu 05.06.2015 o 13:35, antoszka pisze:
Tako rzecze TeMPOraL (2015-06-05, 11:27):
A ja nie wiem co w tym takiego dziwnego czy zaskakującego.
To, że dzieje się to mniej więcej 20 lat po czasie.
Ja bym powiedział że chyba bardzo im zależy, żeby ktoś w końcu zaczął używać ichniego powershell'a, bo świat windowsowy nadal jedzie na cmd
;-).
Powiem tak: proste zadanie ostatnio sobie postawiłem. Wydawało mi się, że proste... Chciałem mieć na początku pracy z serwerem Windows (tylko mi się nie obrażać - to że przekonuję klientów do Linuxa i to często dość skutecznie nie oznacza, że wszyscy dali się przekonać; poza tym część chciałaby ale nie może...) listę zainstalowanego oprogramowania i poprawek oraz na koniec takąż samą listę po to aby... no aby udowodnić ładnie i szybko co zrobiłem co się zmieniło no i żeby była zgodna z ITIL dokumentacja zmiany. No więc pomyślałem sobie... eeee nie będę używał do tego PowerShella bo go nie lubię więc zrobię normalnego batcha używając cudów w stylu:
wmic /output:"%HOMEPATH%\software_list.csv" product get Name,Version,InstallDate /FORMAT:CSV
oraz
wmic /output:"%HOMEPATH%\patch_list.csv" qfe list /FORMAT:CSV
Wielce zadowolony z siebie obudowałem owo cudo mnóstwem GOTO label i szybkim i brudnym menu używającym choice a nawet przystosowałem do łapania parametrów z linijki poleceń. Przetestowałem. Wydawało się, że jest OK. Tak na pierwszy, drugi i trzeci rzut oka bo nie przyszło mi do głowy sprawdzać całej tej listy punkt po punkcie np. porównując ją z tym co mamy Panelu sterowania (CPL) w Programach.
Poszedłem sobie do klienta i myślę wypróbuję mój kilerski, hackerski batch, który odejmie mi mnóstwo żmudnej głupiej roboty. Jak zamyśliłem tak zrobiłem. Pliki sobie wziąłem pomyślałem sobie w domku sobie zrobię szybki parserek do tego (dzięki BoBsoNowi mam świetną klasę do obsługi CSV zrobioną na szybkim hack by whisky podczas przedostatniej Jesieni Linuksowej - na prawdę jeszcze raz dzięki BoBsoN, jest po prostu nieoceniona!). I zaczęło się... Zauważyłem, że toto nie listuje części ważnych i samodzielnych programów zainstalowanych na serwerze. I wcale nie chodzi o żadne zabytki tylko takie cosie cą Windows Server 2008 <= compliant. Z poprawkami lepiej ale też jakby to co się pokazuje na liście w CPL ma się czasem nijak do wyniku mojego hackerskiego batcha. Co więcej pojawiają się na liście softu jakieś pierdoły w stylu CCC Norwegian Help oraz CCC Finnish Help oraz jeszcze w paru innych językach (jak rozumiem Helpy do Catalysta - dla niewtajemniczonych w Windows to takie coś co jest do chipów AMD żeby chodziły pod Windows, czyli można by rzec, drajwery... ale nie do końca bo ten Catalyst to raczej ich menago). Jak jest za dużo to jeszcze nie problem. Klienci lubią długie listy zmian albo generalnie mają w nosie ich długość byle by zmiany było widać i były udokumentowane. Gorzej, że niektórych programów zwyczajnie BRAK.
Zacząłem kopać po sieci i dokumentacji. Różne cuda podpowiadane były nawet takie jak:
wmic softwareelement get name,version
i
wmic softwarefeature get name,version
zastosowanie ich jednakże nie dało wiele bo programów pewnych jak nie było tak nie ma a zgodność z CPL prawie żadna, a wiadomo klient jak coś miałby ochotę sprawdzić to przez CPL raczej...
Myślę sobie cóż... PowerShell woła. Na pewno lepszy jest więc może:
Get-WmiObject -Class Win32_Product | Select-Object -Property Name > C:\Software\PCapps.txt
Ale też jakby nie bardzo... Czyżby to samo WMI? Oczywiście cudowałem z różnymi paramsami, propsami i innymi psami i nic... czyli nie udało mi się uzyskać wyniku, który na prawdę pomógłby mi w pracy. Wszystko to, nie koledzy, nie przesadzam, ale mój zapał wielki był, zajęło mi CAŁY DZIEŃ ROBOCZY. Efekt tego dnia żaden. Ani CMD ani PowerShell. Skończyło się na... parsowaniu klucza rejestru Uninstall... Można też użyć hijackera ale nie będę przecież klikał... ;-)
Morał: świat windowsowy tak naprawdę nie jedzie ani na CMD ani na PowerShellu... tylko na własnych narzędziach wywoływanych z CMD. I tak od czasu staruszka DOSa, którego się wspomagało Batch Enhacerem albo w ogóle używało DR DOSa. ;-).
Menadżer pakietów! Wreszcie!