PowerShell – Get-ChildItem wyświetlanie listy plików i folderów

Pamiętasz dobre stare czasy polecenia dir w DOS? A co powiesz na polecenie ls w Linuksie? Jeśli tak, to polecenie Get-ChildItem jest w zasadzie tym samym, ale podniesione o poziom wyżej.

W rzeczywistości mamy nawet polecenia dir i ls w PowerShell w formie aliasu. Get-Childitem może nie tylko wyświetlić listę plików i folderów, ale także wyliczyć klucze i wartości rejestru, certyfikaty.

Aby zrozumieć Get-Childitem, najpierw pomyśl o nim w kontekście dir i ls, ale zamiast tylko plików traktuje wiele obiektów jako element podrzędny i wylicza je. Możesz użyć aliasu lub pełnej nazwy polecenia, aby go użyć.

Ponieważ to polecenie jest dostępne od wersji PowerShell v1, możesz być pewien, że będzie działać z Twoją wersją PowerShell.

Get-ChildItem przechodzi przez drzewo

System plików to hierarchia. Ma strukturę folderów z plikami wewnątrz folderów i tymi folderami wewnątrz innych folderów. System plików jest jak drzewo. To drzewo ma pień (na przykład C:) i „gałęzie” odchodzące od niego (foldery). Listę folderów można pokazać przez polecenie tree z poziomu PowerShell.

Lista folderów poprzez tree

Możesz użyć tego polecenia do wskazania lokalnych ścieżek na swoim komputerze, uruchomić zdalny skrypt PowerShell lub po prostu podać ścieżkę UNC. Każda z tych metod działa w ten sam sposób. Możesz na przykład chcieć wyświetlić listę wszystkich plików w bieżącym katalogu.

Dostawcy PowerShell

Microsoft zauważył, że nawigowanie po strukturze drzewa systemu plików można zastosować również w innych obszarach systemu. W systemie plików „drzewo” składa się z folderów i plików, w rejestrze są to klucze i wartości, a w systemie certyfikatów Windows – magazyny i certyfikaty. Każdy z tych obszarów można przedstawić w formie drzewa, co doprowadziło do powstania dostawców PowerShell.

Dlaczego to takie istotne? Ponieważ cmdlet Get-ChildItem jest częścią zestawu poleceń *-Item, które współpracują z dyskami PowerShell tworzonymi przez dostawców.

Get-ChildItem może zwracać różne obiekty z dysków PowerShell, umożliwiając ich przetwarzanie w potoku lub w pętli foreach. Obsługuje koncepcję dysków PowerShell, co pozwala na określanie ścieżek do folderów systemu plików, kluczy rejestru czy magazynów certyfikatów w jednolity sposób.

Poniżej widać, że to polecenie może wyliczyć folder C:\, gałąź HKEY Current User, a także magazyn certyfikatów programu PowerShell.

Get-ChildItem lista katalogów
Lista z rejestru HKCU Get-Childitem
Lista ścieżki certyfikatów lokalnych

Filtrowanie

Polecenie Get-ChildItem w PowerShell nie tylko pobiera wszystkie obiekty na dysku, ale także umożliwia filtrowanie wyników za pomocą kilku parametrów: Filter, Include i Exclude. Zawsze warto stosować wszechobecny parametr Filter, gdy jest to możliwe, ponieważ przekazuje on bezpośrednio składnię filtrowania do danego dostawcy. Jest to znacznie szybsze rozwiązanie, ale jego skuteczność zależy od konkretnego dostawcy.

Na przykład składnia filtru Name -eq 'foo’ może działać poprawnie podczas wyszukiwania plików, ale nie zadziała w przypadku rejestru, ponieważ dostawca rejestru w ogóle nie obsługuje filtrowania!

Filtrowanie nie działa w rejestrze

Gdy jednak wszystko inne zawiedzie, zawsze masz również parametry Include i Exclude.

To polecenie w PowerShell ma również kilka parametrów specyficznych dla systemu plików, takich jak Force, który wyprowadza ukryte pliki i foldery, File i Directory, który znajduje tylko pliki lub foldery. Zapoznaj się z pełnym zestawieniem Get-ChildItem za pośrednictwem Get-Help lub w dokumentacji Microsoft.

Inną fajną rzeczą w Get-ChildItem jest możliwość rozwiązywania ścieżek podczas używania symbolu wieloznacznego. W PowerShell symbol wieloznaczny zazwyczaj reprezentuje cokolwiek. Na przykład, jeśli chcesz zobaczyć wszystkie pliki z rozszerzeniem pliku .txt, po prostu określ ścieżkę do folderu i *.txt.

Możemy również filtrować według atrybutów plików. Być może chcemy znaleźć tylko pliki tylko do odczytu w folderze.

Podsumowanie

To polecenie PowerShell jest często używane. Zwykle korzystasz z dostawcy FileSystem, ale może ono zrobić znacznie więcej. Możesz zapytać o pliki, foldery, klucze rejestru, certyfikaty, użytkowników AD, komputery i zmienne środowiskowe.

W razie wątpliwości uruchom Get-PSDrive, aby zobaczyć wszystkie dyski PowerShell, które Get-ChildItem może przeszukać.


Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).

Dodaj komentarz

beitadmin.pl - Droga Administratora IT