Poznawanie programu PowerShell
Program PowerShell to powłoka wiersza polecenia i język skryptowy w jednym. Program PowerShell został uruchomiony w systemie Windows, aby ułatwić automatyzowanie zadań administracyjnych. Teraz jest uruchamiana międzyplatformowa i może być używana do różnych zadań.
To, co sprawia, że program PowerShell jest unikatowy, jest to, że akceptuje i zwraca obiekty platformy .NET, a nie tekst. Ta funkcja ułatwia łączenie różnych poleceń w potoku.
Do czego można użyć programu PowerShell?
Użycie programu PowerShell wzrosła od czasów, w których był tylko system Windows. Jest on nadal używany do automatyzacji zadań systemu Windows, ale obecnie można go używać do wykonywania zadań, takich jak:
- Zarządzanie chmurą. Program PowerShell może służyć do zarządzania zasobami w chmurze. Możesz na przykład pobrać informacje o zasobach w chmurze, a także zaktualizować lub wdrożyć nowe zasoby.
- Ciągła integracja/ciągłe wdrażanie. Może być również używany jako część potoku ciągłej integracji/ciągłego wdrażania.
- Automatyzowanie zadań dla usług Active Directory i Exchange. Służy do automatyzowania niemal dowolnego zadania w systemie Windows, takiego jak tworzenie użytkowników w usłudze Active Directory i skrzynkach pocztowych w programie Exchange.
Istnieje wiele obszarów użycia, ale poprzednia lista zawiera wskazówkę, że program PowerShell przeszedł długą drogę.
KtoTo używa programu PowerShell?
Program PowerShell to zaawansowane narzędzie, które może pomóc osobom pracującym w wielu rolach. Tradycyjnie program PowerShell był używany przez rolę System Administracja istrator, ale jest teraz używany przez osoby nazywające się DevOps, Cloud Ops, a nawet Deweloperzy.
Polecenia cmdlet programu PowerShell
Program PowerShell zawiera setki wstępnie zainstalowanych poleceń. Polecenia programu PowerShell są nazywane poleceniami cmdlet (wymawiane polecenia).
Nazwa każdego polecenia cmdlet składa się z pary Verb-Noun . Na przykład Get-Process
. Ta konwencja nazewnictwa ułatwia zrozumienie, co robi polecenie cmdlet. Ułatwia również znajdowanie szukanych poleceń. Jeśli szukasz polecenia cmdlet do użycia, możesz filtrować czasownik lub rzeczownik.
Używanie poleceń cmdlet do eksplorowania programu PowerShell
Po pierwszym odebraniu programu PowerShell może to wydawać się zastraszające, ponieważ wydaje się, że jest tak wiele do nauki. Program PowerShell został zaprojektowany tak, aby ułatwić ci naukę w miarę potrzeb.
Program PowerShell zawiera polecenia cmdlet, które ułatwiają odnajdywanie programu PowerShell. Korzystając z tych trzech poleceń cmdlet, możesz dowiedzieć się, jakie polecenia są dostępne, co robią i na jakich typach działają.
Get-Verb
. Uruchomienie tego polecenia zwraca listę zleceń, do których stosuje się większość poleceń. Odpowiedź zawiera opis tego, co robią te czasowniki. Ponieważ większość poleceń jest przestrzegana tej konwencji nazewnictwa, określa oczekiwania dotyczące działania polecenia. Ułatwia to wybranie odpowiedniego polecenia i nazwę polecenia, jeśli chcesz go utworzyć.Get-Command
. To polecenie pobiera listę wszystkich poleceń zainstalowanych na maszynie.Get-Member
. Działa na danych wyjściowych opartych na obiektach i jest w stanie wykryć, jaki obiekt, właściwości i metody są dostępne dla polecenia.Get-Help
. Wywołanie tego polecenia z nazwą polecenia jako argument wyświetla stronę pomocy opisującą różne części polecenia.
Za pomocą tych poleceń możesz odnaleźć niemal wszystko, co musisz wiedzieć o programie PowerShell.
Czasownik
Czasownik jest ważnym pojęciem w programie PowerShell. Jest to standard nazewnictwa, który następuje w większości poleceń cmdlet. Jest to również standard nazewnictwa, który powinien być obserwowany podczas pisania własnych poleceń. Chodzi o to, że czasownik mówi, co próbujesz zrobić, jak odczytywać lub zmieniać dane. Program PowerShell ma ustandaryzowaną listę zleceń. Aby uzyskać pełną listę wszystkich możliwych czasowników, użyj Get-Verb
polecenia cmdlet :
Get-Verb
Polecenie cmdlet zwraca długą listę zleceń. Opis zawiera kontekst tego, co ma robić czasownik. Oto kilka pierwszych wierszy danych wyjściowych:
Verb AliasPrefix Group Description
---- ----------- ----- -----------
Add a Common Adds a resource to a container, or attaches an item to another item
Clear cl Common Removes all the resources from a container but does not delete the container
Close cs Common Changes the state of a resource to make it inaccessible, unavailable, or unusab…
Copy cp Common Copies a resource to another name or to another container
Enter et Common Specifies an action that allows the user to move into a resource
Exit ex Common Sets the current environment or context to the most recently used context
...
Znajdowanie poleceń za pomocą polecenia Get-Command
Polecenie Get-Command
cmdlet zwraca listę wszystkich dostępnych poleceń zainstalowanych w systemie. Lista, którą wracasz, jest dość duża. Możesz ograniczyć ilość informacji, które są zwracane, filtrując odpowiedź przy użyciu parametrów lub poleceń cmdlet pomocnika.
Filtruj według nazwy
Dane wyjściowe Get-Command
można filtrować przy użyciu różnych parametrów. Filtrowanie umożliwia znajdowanie poleceń, które mają określone właściwości. Parametr Name umożliwia znalezienie określonego polecenia według nazwy.
Get-Command -Name Get-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
Co zrobić, jeśli chcesz znaleźć wszystkie polecenia, które działają z procesami? Możesz użyć symbolu wieloznakowego *
, aby dopasować inne formy ciągu. Na przykład:
Get-Command -Name *-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Management
Filtrowanie według czasownika i czasownika
Istnieją inne parametry, które filtrują wartości czasowników i nounów. Część czasownika nazwy polecenia jest najbardziej lewą częścią. Czasownik powinien być jedną z wartości zwracanych przez Get-Verb
polecenie cmdlet. Najbardziej właściwą częścią polecenia jest część wierzchołka. Noun może być niczym.
Filtruj według zlecenia. W poleceniu
Get-Process
część czasownika toGet
. Aby odfiltrować część czasownika, użyj parametru Czasownik .Get-Command -Verb 'Get'
W tym przykładzie wymieniono wszystkie polecenia używające czasownika
Get
.Filtruj według nounu. W poleceniu
Get-Process
, częścią nounu jestProcess
. Aby filtrować dla unu, użyj parametru Noun . Poniższy przykład zwraca wszystkie polecenia cmdlet, które mają nouns począwszy od literyU
.Get-Command -Noun U*
Ponadto możesz połączyć parametry, aby zawęzić wyszukiwanie, na przykład:
Get-Command -Verb Get -Noun U*
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-UICulture 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Unique 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Uptime 7.0.0.0 Microsoft.PowerShell.Utility
Filtrowanie wyników za pomocą poleceń cmdlet pomocnika
Możesz również użyć innych poleceń cmdlet do filtrowania wyników.
Select-Object
. To uniwersalne polecenie ułatwia wybranie określonych właściwości z co najmniej jednego obiektu. Możesz również ograniczyć liczbę elementów, które otrzymujesz. Poniższy przykład zwraca wartości właściwości Name i Source dla pierwszych 5 poleceń dostępnych w bieżącej sesji.Get-Command | Select-Object -First 5 -Property Name, Source
Name Source ---- ------ Add-AppPackage Appx Add-AppPackageVolume Appx Add-AppProvisionedPackage Dism Add-AssertionOperator Pester Add-ProvisionedAppPackage Dism
Aby uzyskać więcej informacji, zobacz Select-Object (Wybieranie obiektu).
Where-Object
. To polecenie cmdlet umożliwia filtrowanie obiektów zwracanych na podstawie wartości właściwości. Polecenie przyjmuje wyrażenie, które może przetestować wartość właściwości. Poniższy przykład zwraca wszystkie procesy, w którychProcessName
rozpoczyna się odp
.Get-Process | Where-Object {$_.ProcessName -like "p*"}
Polecenie
Get-Process
cmdlet zwraca kolekcję obiektów procesu. Aby odfiltrować odpowiedź, należy przekazać dane wyjściowe doWhere-Object
. Potokowanie oznacza, że co najmniej dwa polecenia są połączone za pośrednictwem znaku potoku|
. Dane wyjściowe z jednego polecenia są wysyłane jako dane wejściowe dla następnego polecenia. Wyrażenie filtru-like
dlaWhere-Object
operatora używa operatora do dopasowywania procesów rozpoczynających się literąp
.
Eksplorowanie obiektów za pomocą polecenia Get-Member
Po zlokalizowaniu żądanego polecenia cmdlet chcesz dowiedzieć się więcej o tym, jakie dane wyjściowe generuje. Polecenie Get-Member
cmdlet wyświetla typ, właściwości i metody obiektu. Przeprowadź potok danych wyjściowych, które chcesz sprawdzić w pliku Get-Member
.
Get-Process | Get-Member
Wynik wyświetla zwrócony typ jako TypeName
i wszystkie właściwości i metody obiektu. Oto fragment takiego wyniku:
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
Name AliasProperty Name = ProcessName
...
Za pomocą parametru MemberType można ograniczyć zwracane informacje.
Get-Process | Get-Member -MemberType Method
Domyślnie program PowerShell wyświetla tylko kilka właściwości. W poprzednim przykładzie wyświetlono Name
elementy członkowskie i . MemberType
Definition
Możesz użyć Select-Object
polecenia , aby określić właściwości, które chcesz zobaczyć. Na przykład chcesz wyświetlić tylko Name
właściwości i Definition
:
Get-Process | Get-Member | Select-Object Name, Definition
Wyszukiwanie według typu parametru
Get-Member
pokazano nam, że Get-Process
zwraca obiekty typu procesu . Parametr Get-Command
ParameterType polecenia może służyć do znajdowania innych poleceń, które przyjmują obiekty Procesu jako dane wejściowe.
Get-Command -ParameterType Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Enter-PSHostProcess 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Get-PSHostProcessInfo 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Znajomość typu danych wyjściowych polecenia może pomóc w zawężaniu wyszukiwania powiązanych poleceń.