Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 2
  • 138

Filtrowanie listy usług uzyskanych cmdletem Get-Service działa na dynamicznie zbudowanej liście:

Get-Service | ? {$_.Status -eq "running"}

Niestety po utrwaleniu listy do formatu xml poleceniem:

 Get-Service  | Export-Clixml D:\AllSvcs.xml

Filtrowanie poleceniem:

Import-Clixml D:\AllSvcs.xml | ? {$_.Status -eq "running"}

zwraca puste wyniki.

W jaki sposób odfiltrować utrwaloną listę usług?

Uczestnik szkolenia
  • Zapytał
  • @ Uczestnik szkolenia | 11.06.2013

Odpowiedź (1)

  • 3

W celu sprawdzenia struktury zaimportowanego obiektu należy przesłać potokiem obiekty do cmdletu Get-Member (alias gm):


Import-Clixml D:\AllSvcs.xml | gm


Polecenie gm wyświetla typ danych Deserialized.System.ServiceProcess.ServiceControllerStatus dla właściwości Status.

Kolejnym krokiem jest sprawdzenie dozwolonych wartości dla wykrytego typu w dokumentacji:


http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontrollerstatus.aspx


Jak wynika z dokumentacji, status Running równy jest wartości 4, poniższe polecenie pozwala na prawidłowe odfiltrowanie utrwalnoych usług:

Import-Clixml D:\AllSvcs.xml | ? {$_.Status -eq 4}

  • Odpowiedział
  • @ | 11.06.2013
  • TRENER ALTKOM AKADEMII