Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 działa na różnych platformach i może być używana do różnych zadań.
Co sprawia, że program PowerShell jest unikatowy, to 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?
Początkowo PowerShell działał tylko na Windows. Teraz jest ona międzyplatformowa i może być używana do różnych 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, 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 (CI/CD).
- 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.
Kto 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 administratorów systemu. Teraz jest ona używana 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 cmdletami (wymawiane komand-let).
Nazwa każdego cmdletu składa się z pary Verb-Noun. Na przykład Get-Process. Ta konwencja nazewnictwa sprawia, że łatwiej zrozumieć, co robi cmdlet. Ułatwia również znajdowanie szukanych poleceń. Podczas wyszukiwania polecenia cmdlet do użycia, możesz filtrować według czasownika lub rzeczownika.
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 czterech 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ę czasowników, do których odnosi się większość poleceń. Odpowiedź zawiera opis tego, co robią te czasowniki. Ponieważ większość poleceń stosuje się do tej konwencji nazewnictwa, określa ona oczekiwania dotyczące działania polecenia. To polecenie ułatwia wybór odpowiedniego czasownika i jak nazwać polecenie podczas tworzenia własnych poleceń. -
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.
Verb
Czasownik jest ważnym pojęciem w PowerShell. Jest to standard nazewnictwa, który następuje w większości poleceń cmdlet. Jest to również standard nazewnictwa, którego powinno się przestrzegać podczas pisania własnych poleceń. Chodzi o to, że czasownik określa, co próbujesz zrobić, na przykład odczytać lub zmienić dane. PowerShell ma ustandaryzowaną listę czasowników. Aby uzyskać pełną listę wszystkich możliwych czasowników, użyj Get-Verb polecenia cmdlet :
Get-Verb
Polecenie cmdlet zwraca długą listę czasowników. 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ą Get-Command
Polecenie Get-Command cmdlet zwraca listę wszystkich dostępnych poleceń zainstalowanych w systemie. Lista może być 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. 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 na rzeczownik i czasownik
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 polecenie cmdlet Get-Verb. Najbardziej prawostronną częścią polecenia jest część rzeczownikowa. Rzeczownik może być wszystkim.
Filtruj według czasowników. W poleceniu
Get-Processczęść 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ą rzeczownika jestProcess. Aby filtrować według rzeczownika, użyj parametru Noun. Poniższy przykład zwraca wszystkie polecenia cmdlet, które mają rzeczowniki zaczynające się 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, SourceName Source ---- ------ Add-AppPackage Appx Add-AppPackageVolume Appx Add-AppProvisionedPackage Dism Add-AssertionOperator Pester Add-ProvisionedAppPackage DismAby 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órychProcessNamerozpoczyna się odp.Get-Process | Where-Object {$_.ProcessName -like "p*"}Polecenie
Get-Processcmdlet zwraca kolekcję obiektów procesu. Aby odfiltrować odpowiedź, należy przekazać dane wyjściowe doWhere-Object. Rurkowanie oznacza, że co najmniej dwa polecenia są połączone za pomocą znaku rury|. Dane wyjściowe z jednego polecenia są wysyłane jako dane wejściowe dla następnego polecenia. Wyrażenie filtruWhere-Objectużywa operatora-likedo dopasowania procesów rozpoczynających się literąp.
Eksplorowanie obiektów za pomocą Get-Member
Po zlokalizowaniu żądanego polecenia cmdlet należy dowiedzieć się więcej o rodzaju danych wyjściowych, które generuje. Polecenie Get-Member cmdlet wyświetla typ, właściwości i metody obiektu. Przekieruj dane wyjściowe, które chcesz sprawdzić, do 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 członków Name, MemberType i 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 właściwości Name 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 ParameterType modułu Get-Command może być użyty do znajdowania innych poleceń, które przyjmują obiekty Process 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ń.