Kategorie szkoleń | Egzaminy | Kontakt

Odpowiedź (1)

  • 3

Budując kolekcję typu Hashtable należy pamiętać, że każdy wpis jest wpisem słownikowym składającym się z klucza i wartości, a kolekcja kluczy musi być unikatowa.

W zależności od tego, czy przekształcamy całą kolekcję jak w pytaniu, czy dane jednego obiektu, można zastosować dwa podejścia.
W pierwszym przypadku wystarczy określenie, która informacja jest kluczem, a która wartością w ramach cmdletu ForEach-Object:

gsv | %  -Begin {$sv=@{}} -Process {$sv.Add($_.Name,$_.DisplayName)}


Powyższy kod tworzy słownik $sv z kluczem będącym nazwą usługi (właściwość Name) i wartością zawierającą nazwę wyświetlaną (DisplayName).

W sytuacji gdy przepisanie dotyczy jednej instancji obiektu, można wykorzystać kolekcję Properties:

(gsv vss).psobject.properties | % -Begin {$tm=@{}} -Process {$tm.Add($_.Name,$_.Value)}


Dla jasności w powyższych przykładach użyto aliasów:

gsv - Get-Service
% - ForEach-Object

 

  • Odpowiedział
  • @ | 24.04.2014
  • TRENER ALTKOM AKADEMII