Wyszukiwanie w witrynie

Te 5 poleceń Windows PowerShell jest tak dobrych, że wydają się oszustwem


Jeżeli regularnie pracujesz w PowerShell, prawdopodobnie wielokrotnie przepisywałeś zapomniane polecenia, ręcznie sprawdzałeś pliki dziennika lub logowałeś się na serwery jeden po drugim. W dłuższej perspektywie staje się to irytujące i frustrujące wiedząc, że trzeba to robić wielokrotnie. Niektóre cmdlety mogą rozwiązać te problemy za Ciebie i okazują się bardzo przydatne dla codziennych użytkowników.

Wysyłanie wyników do wyszukiwanego okna

To naprawdę oznacza szybki dostęp

Kiedy przeglądasz dużo tekstu przewijanego w konsoli, nie będziesz w stanie łatwo znaleźć konkretnych informacji. Cmdlet Out-GridView może tutaj pomóc. Jeśli przekażesz swoje wyniki do tego cmdletu, zamienia on tekstowy wynik w osobne okno, w którym dane są przedstawione w tabeli. Zamiast za każdym razem modyfikować skomplikowany kod filtrowania w celu znalezienia czegoś, to polecenie daje Ci kontrolę za pomocą kliknięć myszą.

Okno ma pole filtra wyszukiwania u góry, które pozwala przeszukiwać tysiące linii danych, takich jak gęste dzienniki zdarzeń lub procesy w tle, po prostu wpisując słowo kluczowe. Możesz sortować informacje, klikając nagłówki kolumn lub dodając filtry kryteriów za pomocą rozwijanych menu, aby zawęzić wyniki bez dodawania dodatkowego kodu.

Upewnij się, że dodasz -PassThru, ponieważ sprawia, że okno siatki staje się interaktywnym narzędziem do wyboru. Wstrzymuje ono działanie skryptu i pozwala podświetlić konkretne wiersze. Po kliknięciu OK okno zamyka się, a te pozycje są zwracane do potoku, dzięki czemu Twój skrypt może dalej je przetwarzać. To ogromny krok w nauce automatyzacji Windows.

Uruchamianie kodu na wielu komputerach jednocześnie

Wykonuj więcej pracy w krótszym czasie

Jeśli zarządzasz wieloma serwerami, wiesz, jak to jest logować się do każdej maszyny po kolei w celu przeprowadzenia kontroli lub aktualizacji. Invoke-Command oszczędza czas, ponieważ uruchamia kod na setkach zdalnych maszyn jednocześnie, zamiast odwiedzać każdy serwer po kolei. Prawdopodobnie nie potrzebujesz go przy setkach, ale jeśli masz cztery lub pięć, to oszczędza ci dużo czasu.

To polecenie używa protokołów zdalnych, takich jak WinRM w systemie Windows lub SSH w konfiguracjach międzyplatformowych, aby obsługiwać zdalne połączenia jeden-do-wielu. Wysyła instrukcje do każdego komputera na Twojej liście i zbiera wyniki w konsoli. Gdy przekażesz blok skryptu do cmdletu, wysyła Twój kod do wszystkich docelowych systemów w tym samym czasie. W miarę jak kończą się zdalne uruchomienia, wyniki wracają do Twojej lokalnej sesji jako obiekty, więc nie musisz monitorować każdej maszyny.

Aby pomóc Ci śledzić nadchodzące dane, PowerShell dodaje właściwość PSComputerName do każdego obiektu, aby pokazać, z którego serwera pochodzi. Daje to sposób na grupowanie i sortowanie danych lokalnie, aby znaleźć różnice w całej konfiguracji.

Znajdowanie wcześniejszej pracy za pomocą skrótów

Przestań wpisywać te same polecenia

Jeśli spędziłeś czas na tworzeniu skomplikowanego polecenia PowerShell, możesz kilka dni później zdać sobie sprawę, że potrzebujesz tej samej logiki, ale nie pamiętasz składni. PowerShell ma system historii poleceń, który jest jak zapis Twojej poprzedniej pracy i pozwala odzyskać wcześniej wykonane polecenia.

Gdy wprowadzasz polecenie, PowerShell je zapisuje. Nowoczesne środowiska używają wbudowanej historii sesji oraz trwałej historii zarządzanej przez moduł PSReadLine. Podczas gdy wbudowana historia śledzi tylko polecenia w bieżącej sesji, a PowerShell usuwa je po zamknięciu okna, PSReadLine utrzymuje ciągły rejestr.

Ten moduł zapisuje każdą komendę, którą wpisujesz we wszystkich sesjach, do pliku na twoim komputerze, dzięki czemu nie tracisz swojej pracy po ponownym uruchomieniu. Zamiast ponownie wpisywać długie skrypty, możesz użyć skrótu klawiaturowego, aby wywołać wcześniej używane polecenia. Kiedy wpiszesz znak funta # poprzedzony słowem kluczowym z polecenia i naciśniesz klawisz Tab, PowerShell przeszukuje twoją historię w poszukiwaniu najnowszego dopasowania. Po prostu ciągle naciskaj klawisz Tab, aż znajdziesz to, czego potrzebujesz. Ja zaczynam od #get, a następnie naciskam Tab, i zazwyczaj szybciej znajduję to, czego potrzebuję.

Oglądanie aktualizacji plików na bieżąco

Zobacz zmiany w miarę ich pojawiania się

Irytujące jest wielokrotne uruchamianie tej samej komendy tylko po to, aby sprawdzić, czy plik dziennika został zaktualizowany. Jeśli chcesz obserwować strumień pliku na żywo, gdy system go zapisuje, cmdlet Get-Content z parametrem -Wait jest świetnym sposobem, aby go śledzić. Normalnie Get-Content odczytuje plik i pokazuje jego zawartość. Jednak cmdlet zachowuje się inaczej, gdy dodasz parametr -Wait.

Zamiast zamykać plik, PowerShell utrzymuje otwarte połączenie i sprawdza co sekundę, czy pojawiła się nowa zawartość. Gdy system dodaje nowe linie, widzisz je na ekranie. Ponieważ nie musisz ponownie uruchamiać polecenia, jest to świetny sposób, aby obserwować błędy lub śledzić działanie procesu w tle.

Możesz to dostosować, łącząc -Wait z kodem takim jak -Tail. Na przykład, jeśli oglądasz bardzo duży plik dziennika, użyj -Tail, aby pokazać tylko kilka ostatnich linii przed rozpoczęciem oczekiwania. Zapobiega to wyświetlaniu w konsoli zbyt dużej ilości starych danych. Jeśli użyjesz -TotalCount, aby poprosić o więcej linii niż zawiera plik, Get-Content pokaże jego bieżącą zawartość i będzie czekać, aż system zapisze pozostałe linie na dysku. Pomaga to w skryptach, które muszą się zatrzymać, dopóki nie nastąpi określone zdarzenie w dzienniku.

Zawężanie list w celu znalezienia konkretnych przedmiotów

Znajdź igłę w stogu siana






Znajdowanie konkretnych informacji, których potrzebujesz w dużym zbiorze danych, jest trudne, ale filtrowanie jest świetnym rozwiązaniem. Kiedy masz do czynienia z zbyt wieloma wynikami, polecenie Where-Object skraca listy, aby pokazać tylko ważne elementy. Pobiera ono wyniki z innych poleceń i ogranicza te dane na podstawie ustalonych przez Ciebie zasad. Możesz szukać plików, które są zbyt duże, lub filtrować usługi systemowe, aby znaleźć te, które się nie uruchomiły.

Polecenie cmdlet Where-Object działa jak bramkarz w potoku, sprawdzając każdy obiekt i przepuszczając dalej tylko te, które spełniają Twoje kryteria. PowerShell pozwala ustawiać te zasady za pomocą prostszej składni, która czyta się jak język naturalny. Ułatwia to szybkie dopasowania, na przykład sprawdzenie, czy stan usługi odpowiada określonemu stanowi.

Dla czegoś bardziej skomplikowanego możesz użyć składni bloków skryptowych z nawiasami klamrowymi i zmiennymi, aby sprawdzić kilka warunków jednocześnie. Pozwala to łączyć operatorów takich jak -and -or, aby tworzyć konkretne filtry.


Trzymaj te polecenia pod ręką na przyszłość

Żaden z tych cmdletów nie wymaga dodatkowej konfiguracji ani narzędzi firm trzecich. Są już w PowerShell, a jedyną rzeczą, która dzieli cię od ich używania, jest wiedza, że istnieją. Gdy zaczniesz je włączać do swojej rutyny, szybko zauważysz, ile czasu marnowałeś, robiąc rzeczy w dłuższy sposób. Upewnij się tylko, że je zapiszesz lub dodasz tę stronę do zakładek, aby móc do niej wrócić, gdy będą ci potrzebne.

Powiązane artykuły