Cześć! Witaj w zupełnie nowej, praktycznej serii wpisów poświęconych PowerShellowi. Jeśli chcesz sprawnie poruszać się w świecie automatyzacji i administracji, to jesteś we właściwym miejscu! Jak to mówią, praktyka czyni mistrza, dlatego w tej serii będziemy regularnie zgłębiać różne aspekty pracy z PowerShellem – od podstawowych poleceń po bardziej zaawansowane techniki. Nowe artykuły będą pojawiać się mniej więcej co dwa tygodnie, dostarczając ci solidnej dawki wiedzy, którą od razu będziesz mógł wykorzystać w codziennej pracy.
Dziś na tapetę bierzemy wyszukiwanie i poznawanie poleceń – umiejętność absolutnie kluczową dla każdego, kto chce efektywnie korzystać z PowerShella. Bo umówmy się – kto zawsze pamięta dokładną składnię wszystkich cmdletów?
No właśnie.
W tym artykule pokażę ci, jak szybko odnaleźć potrzebne polecenia, sprawdzić ich działanie i poszerzyć swoją wiedzę.
Gotowy?
No to lecimy!
- # Ćwiczenie 1 – wylistuj wszystkie polecenia PowerShell
- # Ćwiczenie 2 – wylistuj tylko cmdlety
- # Ćwiczenie 4 – wylistuj wszystkie cmdlety, które mają w nazwie rzeczownik "Computer"
- # Ćwiczenie 4 – wylistuj wszystkie polecenia, które mają w nazwie czasownik "Uninstall"
- Warto wiedzieć
- # Ćwiczenie 5 – wylistuj wszystkie polecenia, które posiadają w nazwie "tcp"
- # Ćwiczenie 6 – wylistuj wszystkie polecenia, które posiadają parametr "ComputerName"
- # Ćwiczenie 7 – wylistuj wszystkie polecenia z modułu "NetAdapter"
- # Ćwiczenie 8 – znajdź polecenie w repozytorium PSGallery
- # Ćwiczenie 9 – wyświetl informacje o cmdletcie "Get-ChildItem"
- # Ćwiczenie 10 – wyświetl informacje o cmdlecie "Get-Process" w interaktywnym oknie
# Ćwiczenie 1 – wylistuj wszystkie polecenia PowerShell
W pierwszej kolejności naszym zadaniem jest wylistowanie wszystkich dostępnych poleceń PowerShella. W tym celu wystarczy jedynie cmdlet Get-Command.
PS C:\Users\Admin> Get-Command
CommandType Name Version Source
----------- ---- ------- ------
Alias Add-AdlAnalyticsDataSource 1.0.3 Az.DataLakeAnalytics
Alias Add-AdlAnalyticsFirewallRule 1.0.3 Az.DataLakeAnalytics
Alias Add-AdlStoreFirewallRule 1.3.0 Az.DataLakeStore
Alias Add-AdlStoreItemContent 1.3.0 Az.DataLakeStore
Alias Add-AdlStoreTrustedIdProvider 1.3.0 Az.DataLakeStore
Alias Add-AdlStoreVirtualNetworkRule 1.3.0 Az.DataLakeStore
Alias Add-AppPackage 2.0.1.0 Appx
Alias Add-AppPackageVolume 2.0.1.0 Appx
Alias Add-AppProvisionedPackage 3.0 Dism
...
Function New-DAEntryPointTableItem 1.0.0.0 DirectAccessClientComponents
Function New-DscChecksum 1.1 PSDesiredStateConfiguration
Function New-EapConfiguration 2.0.0.0 VpnClient
Function New-EtwTraceSession 1.0.0.0 EventTracingManagement
Function New-FileShare 2.0.0.0 Storage
Function New-Fixture 3.4.0 Pester
Function New-Guid 3.1.0.0 Microsoft.PowerShell.Utility
Function New-HgsGuardian 1.0.0.0 HgsClient
Function New-HgsKeyProtector 1.0.0.0 HgsClient
Function New-IscsiTargetPortal 1.0.0.0 iSCSI
Function New-IseSnippet 1.0.0.0 ISE
...
Cmdlet Remove-AzPrivateDnsRecordConfig 1.0.4 Az.PrivateDns
Cmdlet Remove-AzPrivateDnsRecordSet 1.0.4 Az.PrivateDns
Cmdlet Remove-AzPrivateDnsVirtualNetworkLink 1.0.4 Az.PrivateDns
Cmdlet Remove-AzPrivateDnsZone 1.0.4 Az.PrivateDns
Cmdlet Remove-AzPrivateDnsZoneGroup 6.2.0 Az.Network
Cmdlet Remove-AzPrivateEndpoint 6.2.0 Az.Network
Cmdlet Remove-AzPrivateEndpointConnection 6.2.0 Az.Network
Cmdlet Remove-AzPrivateLinkAssociation 6.10.0 Az.Resources
Cmdlet Remove-AzPrivateLinkService 6.2.0 Az.Network
Cmdlet Remove-AzProximityPlacementGroup 6.3.0 Az.Compute
Cmdlet Remove-AzPublicIpAddress 6.2.0 Az.Network
Jak widzisz, PowerShell zwraca długą listę różnych poleceń. Co ciekawe, znajdują się tu nie tylko klasyczne cmdlety, czyli podstawowe polecenia PowerShella, ale także funkcje i aliasy. Oprócz samej nazwy i typu polecenia znajdziesz tu również informacje o wersji oraz module, z którego dane polecenie pochodzi. Warto pamiętać, że cmdlety zazwyczaj są częścią modułów, czyli zbiorów powiązanych ze sobą poleceń, które rozszerzają możliwości PowerShella.
Co ciekawe wykonanie Get-Command uzupełnione o symbol * (czyli znak wieloznaczny) zwraca podobną listę dostępnych poleceń, ale dodatkowo znajdują się tutaj wszystkie pliki aplikacji (czyli pliki z rozszerzeniem.exe), które system znalazł w zmiennej środowiskowej PATH i do których mamy dostęp z konsoli.
PS C:\Users\Admin> Get-Command *
CommandType Name Version Source
----------- ---- ------- ------
Alias % -> ForEach-Object
Alias ? -> Where-Object
Alias ac -> Add-Content
Alias Add-AdlAnalyticsDataSource 1.0.3 Az.DataLakeAnalytics
Alias Add-AdlAnalyticsFirewallRule 1.0.3 Az.DataLakeAnalytics
Alias Add-AdlStoreFirewallRule 1.3.0 Az.DataLakeStore
Alias Add-AdlStoreItemContent 1.3.0 Az.DataLakeStore
Alias Add-AdlStoreTrustedIdProvider 1.3.0 Az.DataLakeStore
Alias Add-AdlStoreVirtualNetworkRule 1.3.0 Az.DataLakeStore
...
Application wsmprovhost.exe 10.0.2610… C:\WINDOWS\system32\wsmprovhost.exe
Application wsqmcons.exe 10.0.2610… C:\WINDOWS\system32\wsqmcons.exe
Application WSReset.exe 10.0.2610… C:\WINDOWS\system32\WSReset.exe
Application wt.exe 0.0.0.0 C:\Users\Admin\AppData\Local\Microsoft\W…
Application wuapihost.exe 1308.2409… C:\WINDOWS\system32\wuapihost.exe
Application wuauclt.exe 1309.2410… C:\WINDOWS\system32\wuauclt.exe
Application WUDFCompanionHost.exe 10.0.2610… C:\WINDOWS\system32\WUDFCompanionHost.exe
Application WUDFHost.exe 10.0.2610… C:\WINDOWS\system32\WUDFHost.exe
Application wusa.exe 10.0.2610… C:\WINDOWS\system32\wusa.exe
Application WWAHost.exe 10.0.2610… C:\WINDOWS\system32\WWAHost.exe
Application XblGameSaveTask.exe 10.0.2610… C:\WINDOWS\system32\XblGameSaveTask.exe
Application XboxPcAppAdminServer.exe 0.0.0.0 C:\Users\Admin\AppData\Local\Microsoft\W…
Application XboxPcAppCE.exe 0.0.0.0 C:\Users\Admin\AppData\Local\Microsoft\W…
Application xcopy.exe 10.0.2610… C:\WINDOWS\system32\xcopy.exe
Application xgamecontrol.exe 10.0.2610… C:\WINDOWS\system32\xgamecontrol.exe
Application xgamehelper.exe 10.0.2610… C:\WINDOWS\system32\xgamehelper.exe
Application xwizard.exe 10.0.2610… C:\WINDOWS\system32\xwizard.exe
# Ćwiczenie 2 – wylistuj tylko cmdlety
Aby nieco zmniejszyć zbiór poleceń, możemy ograniczyć się do konkretnego ich typu i właśnie na tym polega kolejne ćwiczenie. Tym razem wyświetlimy wszystkie dostępne cmdlety. Jak zapewne się domyślasz również skorzystamy z Get-Command tym razem jednak niezbędny będzie parametr -CommandType
. Do wyboru jest kilka opcji nas w tym ćwiczeniu interesuje jednak typ cmdlet
. A całe polecenie wygląda następująco:
PS C:\Users\Admin> Get-Command -CommandType Cmdlet
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Add-ADCentralAccessPolicyMember 1.0.1.0 ActiveDirectory
Cmdlet Add-ADComputerServiceAccount 1.0.1.0 ActiveDirectory
Cmdlet Add-ADDomainControllerPasswordReplicationPolicy 1.0.1.0 ActiveDirectory
Cmdlet Add-ADFineGrainedPasswordPolicySubject 1.0.1.0 ActiveDirectory
Cmdlet Add-ADGroupMember 1.0.1.0 ActiveDirectory
Cmdlet Add-ADPrincipalGroupMembership 1.0.1.0 ActiveDirectory
Cmdlet Add-ADResourcePropertyListMember 1.0.1.0 ActiveDirectory
Cmdlet Add-AppProvisionedSharedPackageContainer 3.0 Dism
Cmdlet Add-AppSharedPackageContainer 2.0.1.0 Appx
Cmdlet Add-AppxPackage 2.0.1.0 Appx
Cmdlet Add-AppxProvisionedPackage 3.0 Dism
Cmdlet Add-AppxVolume 2.0.1.0 Appx
Cmdlet Add-AzAnalysisServicesAccount 1.1.4 Az.AnalysisServices
Cmdlet Add-AzApiManagementApiToGateway 4.0.2 Az.ApiManagement
Cmdlet Add-AzApiManagementApiToProduct 4.0.2 Az.ApiManagement
Cmdlet Add-AzApiManagementProductToGroup 4.0.2 Az.ApiManagement
Cmdlet Add-AzApiManagementRegion 4.0.2 Az.ApiManagement
Cmdlet Add-AzApiManagementUserToGroup 4.0.2 Az.ApiManagement
Cmdlet Add-AzApplicationGatewayAuthenticationCertificate 6.2.0 Az.Network
Cmdlet Add-AzApplicationGatewayBackendAddressPool 6.2.0 Az.Network
# Ćwiczenie 4 – wylistuj wszystkie cmdlety, które mają w nazwie rzeczownik „Computer”
W kolejnym ćwiczeniu ograniczymy się tylko do poleceń, które posiadają w nazwie wyraz Computer
, a dokładnie rzecz ujmując, których rzeczownik jest właśnie tym wyrazem. Dlatego też w tym wypadku skorzystamy z parametru -Noun
.
PS C:\Users\Admin> Get-Command -Noun Computer
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Rename-Computer 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Restart-Computer 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Stop-Computer 7.0.0.0 Microsoft.PowerShell.Management
W odpowiedzi PowerShell wyświetlił dokładnie to o co prosiliśmy, czyli kilka poleceń z rzeczownikiem Computer
. Zauważ, że w tym przypadku, są to polecenia wyłącznie zawierające dokładnie słowo Computer, ani litery więcej, ani litery mniej. Jeżeli jednak przed szukanym wyrazem dodamy znak wieloznaczny *
to uzyskamy nieco inne wyniki:
PS C:\Users\Admin> Get-Command -Noun *Computer
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-ADComputer 1.0.1.0 ActiveDirectory
Cmdlet New-ADComputer 1.0.1.0 ActiveDirectory
Cmdlet Remove-ADComputer 1.0.1.0 ActiveDirectory
Cmdlet Rename-Computer 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Restart-Computer 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Set-ADComputer 1.0.1.0 ActiveDirectory
Cmdlet Stop-Computer 7.0.0.0 Microsoft.PowerShell.Management
Idąc dalej tym tropem można wstawić symbol wieloznaczny również na końcu wyrazu:
PS C:\Users\Admin> Get-Command -Noun *Computer*
CommandType Name Version Source
----------- ---- ------- ------
Function Get-MpComputerStatus 1.0 ConfigDefender
Function Get-MpComputerStatus 1.0 Defender
Cmdlet Add-ADComputerServiceAccount 1.0.1.0 ActiveDirectory
Cmdlet Get-ADComputer 1.0.1.0 ActiveDirectory
Cmdlet Get-ADComputerServiceAccount 1.0.1.0 ActiveDirectory
Cmdlet Get-AzComputeResourceSku 6.3.0 Az.Compute
Cmdlet Get-ComputerInfo 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet New-ADComputer 1.0.1.0 ActiveDirectory
Cmdlet New-AzOperationalInsightsComputerGroup 3.2.0 Az.OperationalInsights
Cmdlet Remove-ADComputer 1.0.1.0 ActiveDirectory
Cmdlet Remove-ADComputerServiceAccount 1.0.1.0 ActiveDirectory
Cmdlet Rename-Computer 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Restart-Computer 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Set-ADComputer 1.0.1.0 ActiveDirectory
Cmdlet Set-LapsADComputerSelfPermission 1.0.0.0 LAPS
Cmdlet Stop-Computer 7.0.0.0 Microsoft.PowerShell.Management
Tym razem PowerShell wylistował nam wszystkie polecenia, które jako rzeczownik posiadają słowo Computer
, niezależnie od tego, co jest przed i po nim. Dzięki temu wyszukiwanie nie obejmuje tylko poleceń, które bazujują na nazwie Computer
, ale także te, które mają dodatkowe przedrostki lub przyrostki, rozszerzając zakres wyników. Tutaj kłaniają sie trochę podstawy regex, gdyż w zależności od tego jak skonstruujemy zapytanie takie wyniki otrzymamy.
# Ćwiczenie 4 – wylistuj wszystkie polecenia, które mają w nazwie czasownik „Uninstall”
Kolejne ćwiczenie jest bardzo podobne do porzedniego, tym razem chodzi jednak o czasownik, zatem parametr -Noun
zamieniamy na -Verb
. I zgodnie z poleceniem szukamy czasownika Uninstall.
PS C:\Users\Admin> Get-Command -Verb Uninstall
CommandType Name Version Source
----------- ---- ------- ------
Function Uninstall-Dtc 1.0.0.0 MsDtc
Function Uninstall-Module 2.2.5 PowerShellGet
Function Uninstall-Script 2.2.5 PowerShellGet
Cmdlet Uninstall-ADServiceAccount 1.0.1.0 ActiveDirectory
Cmdlet Uninstall-AzureRm 2.13.0 Az.Accounts
Cmdlet Uninstall-Language 1.0 LanguagePackManagement
Cmdlet Uninstall-Package 1.4.8.1 PackageManagement
Cmdlet Uninstall-ProvisioningPackage 3.0 Provisioning
Cmdlet Uninstall-PSResource 1.0.4.1 Microsoft.PowerShell.PSResourceGet
Cmdlet Uninstall-TrustedProvisioningCertificate 3.0 Provisioning
Cmdlet Uninstall-WindowsFeature 2.0.0.0 ServerManager
Oczywiście nic nie stoi na przeszkodzie, aby zmodyfikować nieco zapytanie i skorzystać przykładowo z parametru -Name
oraz znaku wieloznacznego *
:
PS C:\Users\Admin> Get-Command –Name Uninstall-*
CommandType Name Version Source
----------- ---- ------- ------
Function Uninstall-Dtc 1.0.0.0 MsDtc
Function Uninstall-Module 2.2.5 PowerShellGet
Function Uninstall-Script 2.2.5 PowerShellGet
Cmdlet Uninstall-ADServiceAccount 1.0.1.0 ActiveDirectory
Cmdlet Uninstall-AzureRm 2.13.0 Az.Accounts
Cmdlet Uninstall-Language 1.0 LanguagePackManagement
Cmdlet Uninstall-Package 1.4.8.1 PackageManagement
Cmdlet Uninstall-ProvisioningPackage 3.0 Provisioning
Cmdlet Uninstall-PSResource 1.0.4.1 Microsoft.PowerShell.PSResourceGet
Cmdlet Uninstall-TrustedProvisioningCertificate 3.0 Provisioning
Cmdlet Uninstall-WindowsFeature 2.0.0.0 ServerManager
Jak możesz zauważyć wynik polecenia identyczny, chociaż skorzystaliśmy z dwóch nieco odmiennych metod. I tutaj właśnie dobry przykład tego, że w PowerShellu każde zadanie można wykonać na conajmniej kilka dziesiąt róznych sposobów.
Generalnie jeżeli chodzi o czasowniki to sprawa wydaje się być stosunkowo prosta, gdyż przynajmniej domyślnie istnieje pewna „gotowa” lista, którą można podejrzeć za pomocą Get-Verb. Jeżeli wykonasz to polecenie w swojej konsli PowerShell to ujrzysz prawie 100 oficjalnie zaaprobowanych czasowników, których użycie rekomendowane jest również przy tworzeniu swoich funkcji.
# Ćwiczenie 5 – wylistuj wszystkie polecenia, które posiadają w nazwie „tcp”
Kolejne ćwiczenie to wyszukanie poleceń, które zawierają konkretny wyraz czy też zlepek liter. Tym razem parametrem będzie Name czyli zapytanie będzie dotyczyło całej nazwy, nie konkretengo rzeczownika czy czasownika. W najprostrzej formie może to wyglądać następująco. Get-Command -Name tcp. Czyli szukamy ciągu znaków w dowolnym miejscu. Jeżeli zlikwiduję 1 gwiazdkę to otrzymam tylko 1 wynik, gdyż zgodnie z zapytaniem szukam poleceń, które zaczynają się od tcp.
PS C:\Users\Admin> Get-Command -Name *tcp*
CommandType Name Version Source
----------- ---- ------- ------
Function Get-NetTCPConnection 1.0.0.0 NetTCPIP
Function Get-NetTCPSetting 1.0.0.0 NetTCPIP
Function Set-NetTCPSetting 1.0.0.0 NetTCPIP
Application inetcpl.cpl 11.0.2610… C:\WINDOWS\system32\inetcpl.cpl
Application TCPSVCS.EXE 10.0.2610… C:\WINDOWS\system32\TCPSVCS.EXE
# Ćwiczenie 6 – wylistuj wszystkie polecenia, które posiadają parametr „ComputerName”
Kolejne ćwiczenie dotyczy nie tyle samych poleceń co ich parametrów. Czasami potrzebujemy sprawdzić jakie polecenia posiadają konkretny parametr, np. Właśnie ComputerName, który zwykle służy do pracy zdalnej. Zobaczmy zatem jakie polecenia posiadają ten parametr, w tym celu znów Get-Command i parametr –ParameterName.
PS C:\Users\Admin> Get-Command -ParameterName ComputerName
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Connect-PSSession 7.4.6.500 Microsoft.PowerShell.Core
Cmdlet Enter-PSSession 7.4.6.500 Microsoft.PowerShell.Core
Cmdlet Get-HotFix 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Get-PSSession 7.4.6.500 Microsoft.PowerShell.Core
Cmdlet Invoke-Command 7.4.6.500 Microsoft.PowerShell.Core
Cmdlet New-PSSession 7.4.6.500 Microsoft.PowerShell.Core
Cmdlet Receive-Job 7.4.6.500 Microsoft.PowerShell.Core
Cmdlet Receive-PSSession 7.4.6.500 Microsoft.PowerShell.Core
Cmdlet Remove-PSSession 7.4.6.500 Microsoft.PowerShell.Core
Cmdlet Rename-Computer 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Restart-Computer 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Send-MailMessage 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Stop-Computer 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Test-Connection 7.0.0.0 Microsoft.PowerShell.Management
Jak widzisz poleceń takich jest całkiem sporo.
# Ćwiczenie 7 – wylistuj wszystkie polecenia z modułu „NetAdapter”
Kolejne ćwiczenie to wylistowanie poleceń z modułu. Zainstalowałeś nowy moduł i chcesz zobaczyć co wchodzi w jego skład. Standardowo Get-Command i tym razem parametr –Module i przykładowo NetAdapter.
PS C:\Users\Admin> get-Command -Module NetTCPIp
CommandType Name Version Source
----------- ---- ------- ------
Function Find-NetRoute 1.0.0.0 nettcpip
Function Get-NetCompartment 1.0.0.0 nettcpip
Function Get-NetIPAddress 1.0.0.0 nettcpip
Function Get-NetIPConfiguration 1.0.0.0 nettcpip
Function Get-NetIPInterface 1.0.0.0 nettcpip
Function Get-NetIPv4Protocol 1.0.0.0 nettcpip
Function Get-NetIPv6Protocol 1.0.0.0 nettcpip
Function Get-NetNeighbor 1.0.0.0 nettcpip
Function Get-NetOffloadGlobalSetting 1.0.0.0 nettcpip
Function Get-NetPrefixPolicy 1.0.0.0 nettcpip
Function Get-NetRoute 1.0.0.0 nettcpip
Function Get-NetTCPConnection 1.0.0.0 nettcpip
Function Get-NetTCPSetting 1.0.0.0 nettcpip
Function Get-NetTransportFilter 1.0.0.0 nettcpip
Function Get-NetUDPEndpoint 1.0.0.0 nettcpip
Function Get-NetUDPSetting 1.0.0.0 nettcpip
Function New-NetIPAddress 1.0.0.0 nettcpip
Function New-NetNeighbor 1.0.0.0 nettcpip
Function New-NetRoute 1.0.0.0 nettcpip
Function New-NetTransportFilter 1.0.0.0 nettcpip
Function Remove-NetIPAddress 1.0.0.0 nettcpip
Function Remove-NetNeighbor 1.0.0.0 nettcpip
Function Remove-NetRoute 1.0.0.0 nettcpip
Function Remove-NetTransportFilter 1.0.0.0 nettcpip
Function Set-NetIPAddress 1.0.0.0 nettcpip
Function Set-NetIPInterface 1.0.0.0 nettcpip
Function Set-NetIPv4Protocol 1.0.0.0 nettcpip
Function Set-NetIPv6Protocol 1.0.0.0 nettcpip
Function Set-NetNeighbor 1.0.0.0 nettcpip
Function Set-NetOffloadGlobalSetting 1.0.0.0 nettcpip
Function Set-NetRoute 1.0.0.0 nettcpip
Function Set-NetTCPSetting 1.0.0.0 nettcpip
Function Set-NetUDPSetting 1.0.0.0 nettcpip
Function Test-NetConnection 1.0.0.0 nettcpip
No i widzimy wszystkie polecenia, które wchodzą w skład modułu NetAdapter. No dobrze, ale skąd w ogóle dowiedzieć się jakie moduły są w PowerShellu. Oczywiście należy skorzystać z odpowiedniego cmdletu. W tym wypadku będzie to Get-Module, który pokazuje aktualnie załadowane moduły. O samych modułach będzie nieco więcej w którejść z kolejnych części.
# Ćwiczenie 8 – znajdź polecenie w repozytorium PSGallery
Kolejne ćwiczenie polega na znalezieniu polecenia w zewnętrznym repozytorium online. Jak myślisz, którego cmdletu użyjemy? Prawdopodobnie pomyślałeś o Get-Command, ale muszę Cię rozczarować. Tym razem wyjątkowo skorzystamy z Find-Command. Get-Command jest odpowiedni tylko dla lokalnych poleceń. Przejdźmy więc do wyszukiwania poleceń z modułu MicrosoftTeams
, jednak aby ograniczyć liczbę wyników, skupimy się tylko na 10 pierwszych pozycjach.
PS C:\Users\Admin> Find-Command -Repository PSGallery -ModuleName MicrosoftTeams | select -First 10
Name Version ModuleName Repository
---- ------- ---------- ----------
Add-TeamChannelUser 6.8.0 MicrosoftTeams PSGallery
Add-TeamUser 6.8.0 MicrosoftTeams PSGallery
Connect-MicrosoftTeams 6.8.0 MicrosoftTeams PSGallery
Disconnect-MicrosoftTeams 6.8.0 MicrosoftTeams PSGallery
Set-TeamsEnvironmentConfig 6.8.0 MicrosoftTeams PSGallery
Clear-TeamsEnvironmentConfig 6.8.0 MicrosoftTeams PSGallery
Get-AssociatedTeam 6.8.0 MicrosoftTeams PSGallery
Get-MultiGeoRegion 6.8.0 MicrosoftTeams PSGallery
Get-Operation 6.8.0 MicrosoftTeams PSGallery
Get-SharedWithTeam 6.8.0 MicrosoftTeams PSGallery
Może się zdarzyć, że przy pierwszym użyciu tego cmdletu konsola poprosi o update modułu odpowiedzialnego za pakiety.
# Ćwiczenie 9 – wyświetl informacje o cmdletcie „Get-ChildItem”
Wszystkie kluczowe rodzaje wyszukiwań mamy już za sobą. Teraz pora odkryć inne zastosowanie cmdletu Get-Command. Jeżeli użyjemy go w połączeniu z przetwarzaniem potokowym, cmdletem Select-Object i znakiem wieloznacznym, uzyskamy obszerny zestaw informacji na temat konkretnego polecenia w tym przykładzie Get-ChildItem. Warto przyjrzeć się temu uważnie:
PS C:\Users\Admin> Get-Command Get-ChildItem | Select-Object *
HelpUri : https://go.microsoft.com/fwlink/?LinkID=2096492
DLL : C:\Program Files\PowerShell\7\Microsoft.PowerShell.Commands.Management.dll
Verb : Get
Noun : ChildItem
HelpFile : Microsoft.PowerShell.Commands.Management.dll-Help.xml
PSSnapIn :
Version : 7.0.0.0
ImplementingType : Microsoft.PowerShell.Commands.GetChildItemCommand
Definition :
Get-ChildItem [[-Path] <string[]>] [[-Filter] <string>] [-Include <string[]>] [-Exclude <string[]
>] [-Recurse] [-Depth <uint>] [-Force] [-Name] [-Attributes <FlagsExpression[FileAttributes]>] [-
FollowSymlink] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]
Get-ChildItem [[-Filter] <string>] -LiteralPath <string[]> [-Include <string[]>] [-Exclude <strin
g[]>] [-Recurse] [-Depth <uint>] [-Force] [-Name] [-Attributes <FlagsExpression[FileAttributes]>]
[-FollowSymlink] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]
DefaultParameterSet : Items
OutputType : {System.IO.FileInfo, System.IO.DirectoryInfo}
Options : ReadOnly
Name : Get-ChildItem
CommandType : Cmdlet
Source : Microsoft.PowerShell.Management
Visibility : Public
ModuleName : Microsoft.PowerShell.Management
Module : Microsoft.PowerShell.Management
RemotingCapability : PowerShell
Parameters : {[Path, System.Management.Automation.ParameterMetadata], [LiteralPath, System.Management.Automati
on.ParameterMetadata], [Filter, System.Management.Automation.ParameterMetadata], [Include, System
.Management.Automation.ParameterMetadata]…}
ParameterSets : {[[-Path] <string[]>] [[-Filter] <string>] [-Include <string[]>] [-Exclude <string[]>] [-Recurse]
[-Depth <uint>] [-Force] [-Name] [-Attributes <FlagsExpression[FileAttributes]>] [-FollowSymlink
] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>], [[-Filter] <string>]
-LiteralPath <string[]> [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [-Depth <uint>] [
-Force] [-Name] [-Attributes <FlagsExpression[FileAttributes]>] [-FollowSymlink] [-Directory] [-F
ile] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]}
# Ćwiczenie 10 – wyświetl informacje o cmdlecie „Get-Process” w interaktywnym oknie
Chociaż PowerShell zazwyczaj kojarzy się z surowym, tekstowym interfejsem to musisz wiedzieć, że potrafi też wyświetlać graficzne okna. Co więcej istnieje nie jeden, a nawet kilka cmdletów, które pozwalają na bardziej wizualne podejście do zarządzania systemem. W tym ćwiczeniu wykorzystamy Show-Command, aby wyświetlić interaktywne okno dla cmdletu Get-Process. Dzięki temu zamiast wpisywać parametry ręcznie, możemy zobaczyć wszystkie dostępne opcje w wygodnym, graficznym interfejsie.
Kiedy warto skorzystać z Show-Command?
- w celu ułatwienia nauki cmdletów, wyświetlając dostępne parametry w przystępny sposób.
- to również świetne rozwiązanie dla początkujących, którzy jeszcze nie czują się pewnie w składni PowerShell.
- można go używać do szybkiego sprawdzenia dostępnych opcji bez konieczności wertowania dokumentacji.
Uwaga: Show-Command
działa tylko w systemie Windows i nie jest dostępny w wersjach PowerShell dla macOS i Linuxa.

Po wybraniu konkretnych parametrów i podaniu wartości można albo skopiować całe polecenie do schowka, albo bezpośrednio je uruchomić. Jeżeli natomiast wywołasz cmdlet Show-Command domyślnie, czyli bez żadnych dodatkowych atrybutów to uruchomi się okno pozwalające na przeglądanie zawartości modułów i poleceń.