Powershell: wyświetlenie informacji o procesie i użytkowniku jednocześnie

2-Sie-2017

Jak zwykle w powershell zadanie można zrealizować na dziesiątki sposobów, a ten poniżej to tylko jedna z propozycji

Co takiego się tutaj dzieje?

  • Ponieważ polecenie Get-Process samo w sobie nie posiada możliwości wyświetlenia właściciela procesu korzystamy z Get-WmiObject dla klasy Win32_process, które…
  • samo w sobie również nie ma informacji o użytkowniku, ale…
  • posiadając obiekt klasy win32_process, można wywoływać jego metody.
  • Dlatego dla obiektu $_ (konkretny proces) wywołujemy metodę GetOwner() i ze zwróconego obiektu pobieramy tylko nazwę użytkownika – reszta nas obecnie nie interesuje.
  • Znalezione informacje o nazwie procesu i właścicielu umieszczamy w tablicy hashowanej $ret. Do deklarowania tablicy hash korzystamy z $ret=@{}, a następnie przypisujemy omówione wcześniej: nazwę procesu i właściciela.
  • Mając hash table łatwo jest stworzyć obiekt. Po prostu wywołujemy New-Object wskazując że ma to być generyczny (pusty) obiekt a jego właściwości mają być pobrane z hash table, czyli będą to nazwa procesu i nazwa użytkownika.
  • Ostatnia linijka zwraca ten obiekt. Voila!

Dodaj komentarz:

Autor: Rafał Kraik