czym jest PowerShell?
- 05/22/2020
- 5 minut do przeczytania
-
- j
- s
- s
PowerShell to wieloplatformowy framework do automatyzacji zadań i zarządzania konfiguracją, składający się z powłoki wiersza poleceń i języka skryptowego. W przeciwieństwie do większości powłok, które akceptują i zwracają tekst,PowerShell jest zbudowany na bazie środowiska uruchomieniowego .NET Common Language (CLR) oraz akceptuje i zwraca.NETobjects., Ta fundamentalna zmiana przynosi zupełnie nowe narzędzia i metody automatyzacji.
wyjście jest obiektowe
w przeciwieństwie do tradycyjnych interfejsów wiersza poleceń, cmdlety PowerShell są zaprojektowane do obsługi objects.An obiekt jest strukturą informacji, która jest czymś więcej niż tylko ciągiem znaków pojawiających się na ekranie. Command output zawsze zawiera dodatkowe informacje, których możesz użyć, jeśli tego potrzebujesz.
Jeśli w przeszłości używałeś narzędzi do przetwarzania tekstu do przetwarzania danych, przekonasz się, że zachowują się one inaczej, gdy są używane w PowerShell., W większości przypadków nie potrzebujesz narzędzi do przetwarzania tekstu, aby wyodrębnić określone informacje. Bezpośrednio uzyskujesz dostęp do części danych za pomocą standardowych obiektów PowerShell.
rodzina poleceń jest rozszerzalna
interfejsy takie jakcmd.exe
nie zapewniają możliwości bezpośredniego rozszerzenia wbudowanego zestawu poleceń. Możesz utworzyć zewnętrzne narzędzia wiersza poleceń, które działają w cmd.exe
. Ale te zewnętrzne narzędzia nie mają usług, takich jak pomoc w integracji. cmd.exe
nie wie automatycznie, że te zewnętrzne narzędzia są poprawnymi poleceniami.,
polecenia w PowerShell są znane jako cmdlets. Możesz używać każdego cmdleta osobno, ale ich siła jest realizowana, gdy łączysz je w celu wykonywania złożonych zadań. Podobnie jak wiele powłok, PowerShell daje Ci dostęp do systemu plików na komputerze. Dostawcy PowerShell umożliwiają dostęp do innych magazynów danych, takich jak rejestr i magazyny certyfikatów, tak łatwo, jak dostęp do systemu plików.
możesz tworzyć własne cmdlety i moduły funkcyjne za pomocą skompilowanego kodu lub skryptów. Moduły mogą dodaćcmdlets i dostawców do powłoki., PowerShell obsługuje również skrypty analogiczne do skryptów UNIXshell oraz pliki wsadowe cmd.exe
.
Obsługa aliasów poleceń
PowerShell obsługuje aliasy, aby odnosić się do poleceń za pomocą alternatywnych nazw. Aliasing pozwala użytkownikom z innymi powłokami używać wspólnych nazw poleceń, które już znają dla podobnych operacji w PowerShell.
Aliasing kojarzy nową nazwę z innym poleceniem. Na przykład PowerShell ma wewnętrzną funkcję o nazwie Clear-Host
, która czyści okno wyjściowe., Możesz wpisać cls
lubclear
alias w wierszu polecenia. PowerShell interpretuje te aliasy i uruchamia funkcjęClear-Host
.
Ta funkcja pomaga użytkownikom uczyć się PowerShell. Po pierwsze, większość cmd.exe
I użytkowników Uniksa ma dużą liczbę poleceń, które użytkownicy znają już z nazwy. Odpowiedniki PowerShell mogą nie dawać żadnych rezultatów. Jednak wyniki są na tyle bliskie, że użytkownicy mogą wykonywać pracę bez znajomości nazwy polecenia PowerShell., „Pamięć mięśniowa” jest kolejnym głównym źródłem frustracji podczas nauki nowej powłoki poleceń. Jeśli używasz cmd.exe
przez lata, możesz odruchowo wpisać polecenie cls
aby wyczyścić ekran. Bez aliasu dla Clear-Host
, otrzymasz komunikat o błędzie i nie będziesz wiedział, co zrobić, aby wyczyścić wyjście.
PowerShell obsługuje wprowadzanie konsoli i wyświetlanie
Po wpisaniu polecenia PowerShell zawsze przetwarza wejście wiersza poleceń bezpośrednio. PowerShell formatuje również dane wyjściowe widoczne na ekranie., Różnica ta jest znacząca, ponieważ ogranicza pracę wymaganą dla każdego cmdleta. Zapewnia to, że zawsze możesz robić rzeczy w ten sam sposób z dowolnym cmdletem. Programiści Cmdlet nie muszą pisać kodu, aby przeanalizować argumenty wiersza poleceń lub sformatować wyjście.
tradycyjne narzędzia wiersza poleceń mają własne schematy żądania i wyświetlania pomocy. Niektóre narzędzia poleceń używają /?
do wyzwalania wyświetlania pomocy; inne używają -?
, /H
lub nawet//
., Niektóre z nich będą wyświetlać pomoc w oknie GUI,a nie na wyświetlaczu konsoli. Jeśli użyjesz parametru wrong, narzędzie może zignorować wpisane przez Ciebie Dane i rozpocząć wykonywanie zadania automatycznie.Ponieważ PowerShell automatycznie przetwarza i przetwarza wiersz poleceń, parametr -?
zawsze oznacza „Pokaż pomoc dla tego polecenia”.
Uwaga
jeśli uruchomisz aplikację graficzną w PowerShell, otworzy się okno aplikacji.PowerShell interweniuje tylko wtedy, gdy przetwarza dane wejściowe wiersza poleceń lub gdy applicationoutput powraca do okna konsoli., Nie ma to wpływu na wewnętrzne działanie aplikacji.
PowerShell ma potoki
potoki są prawdopodobnie najbardziej wartościową koncepcją używaną w interfejsach wiersza poleceń. Przy odpowiednim użytkowaniu rurociągi zmniejszają wysiłek związany z używaniem złożonych poleceń i ułatwiają obserwację przepływu pracy. Każde polecenie w potoku przekazuje swoje wyjście, pozycja po pozycji, do następnego polecenia. Polecenia nie muszą obsługiwać więcej niż jednego elementu na raz. Rezultatem jest zmniejszone zużycie zasobów imożliwość natychmiastowego uzyskania danych wyjściowych.,
notacja używana dla rurociągów jest podobna do notacji stosowanej w innych powłokach. Na pierwszy rzut oka może nie być oczywiste, jak potoki różnią się w PowerShell. Chociaż na ekranie widzisz tekst,PowerShell łączy obiekty, a nie tekst, między poleceniami.,
na przykład, jeśli użyjesz Out-Host
cmdlet, aby wymusić wyświetlanie strony po stronie wyjścia z innego polecenia, wyjście wygląda tak samo jak normalny tekst wyświetlany na ekranie, podzielony na strony:
Get-ChildItem | Out-Host -Paging
stronicowanie zmniejsza również wykorzystanie procesora, ponieważ przetwarzanie transferów do Out-Host
cmdlet gdy jest kompletna strona gotowa do wyświetlenia. Cmdlety, które go poprzedzają w potoku, wstrzymują wykonanie do czasu udostępnienia następnej strony wyjścia.,
obiekty w potoku
kiedy uruchamiasz cmdlet w PowerShell, zobaczysz wynik tekstowy, ponieważ konieczne jest reprezentowanie obiektów jako tekstu w oknie konsoli. Wyjście tekstowe może nie wyświetlać wszystkich właściwości obiektu będącego wyjściem.
na przykład rozważGet-Location
cmdlet. Wyjście tekstowe jest podsumowaniem informacji, a nie kompletną reprezentacją obiektu zwróconego przez Get-Location
. Nagłówek na wyjściu jest dodawany przez proces formatujący dane do wyświetlania na ekranie.,
Get-Location
Path----C:\
Orurowanie wyjścia doGet-Member
cmdlet wyświetla informacje o obiekcie zwróconym przezGet-Location
.
Get-Location | Get-Member
Get-Location
zwraca obiekt PathInfo, który zawiera bieżącą ścieżkę i inne informacje.
wbudowany system pomocy
podobnie jak na stronach Unixman
PowerShell zawiera szczegółowe artykuły pomocy wyjaśniające koncepcje PowerShell i składnię poleceń., Użyj cmdlet Get-Help, aby wyświetlić te artykuły w commandprompt lub wyświetlić ostatnio zaktualizowane wersje tych artykułów w dokumencie Powershellonline.
aby dowiedzieć się więcej o PowerShell, zobacz sekcję Learning PowerShell na tej stronie.