Wszystkie narzędzia
Bezpłatnie

Przeszukiwalny, gotowy do druku przewodnik po PowerShell — polecenia cmdlet, potok, zmienne, pliki, pętle, funkcje, obiekty i administracja. Za darmo.

Pomoc i wyszukiwanie

12
Get-Help Get-Process
Pokaż pomoc dla cmdletu
Get-Help Get-Process -Examples
Pokaż przykłady użycia cmdletu
Get-Help Get-Process -Full
Pokaż pełną pomoc wraz z parametrami
Get-Help about_Functions
Przeczytaj koncepcyjny temat about_
Update-Help
Pobierz najnowsze pliki pomocy
Get-Command -Noun Process
Wypisz cmdlety działające na rzeczowniku
Get-Command -Verb Get
Wypisz cmdlety używające danego czasownika
Get-Command *service*
Szukaj poleceń po nazwie z symbolem wieloznacznym
Get-Process | Get-Member
Wypisz właściwości i metody obiektów
Get-Alias ls
Pokaż, do jakiego polecenia rozwija się alias
Get-Alias -Definition Get-ChildItem
Wypisz wszystkie aliasy cmdletu
$PSVersionTable
Pokaż wersję i edycję PowerShell

Zmienne i typy

13
$x = 5
Przypisz wartość do zmiennej
[int]$n = '42'
Zadeklaruj zmienną silnie typowaną
$null
Wartość null / pusta
$true; $false
Literały logiczne
$arr = @(1, 2, 3)
Utwórz tablicę
$arr += 4
Dołącz element do tablicy
$arr[0]; $arr[-1]
Indeksuj pierwszy i ostatni element tablicy
$hash = @{ Name = 'Ann'; Age = 30 }
Utwórz tablicę skrótów
$hash['Name']; $hash.Name
Odczytaj wartość z tablicy skrótów wg klucza
$env:PATH
Odczytaj zmienną środowiskową
$env:MY_VAR = 'value'
Ustaw zmienną środowiskową dla sesji
Get-Variable
Wypisz wszystkie zdefiniowane zmienne
[math]::Round(3.14159, 2)
Wywołaj statyczną metodę .NET

Potok i filtrowanie

12
Get-Process | Where-Object { $_.CPU -gt 10 }
Filtruj obiekty wg warunku
Get-Process | ? CPU -gt 10
Filtruj aliasem ? i uproszczoną składnią
Get-Process | ForEach-Object { $_.Name }
Uruchom blok skryptu dla każdego obiektu
Get-Process | % { $_.Kill() }
Iteruj aliasem %
Get-Process | Select-Object Name, Id
Zachowaj tylko wybrane właściwości
Get-Process | Select-Object -First 5
Weź pierwsze N obiektów
Get-Process | Sort-Object CPU -Descending
Sortuj obiekty wg właściwości
Get-Process | Group-Object Company
Grupuj obiekty wg właściwości
Get-Process | Measure-Object CPU -Sum
Agreguj wartości liczbowe (suma, średnia)
Get-ChildItem | Select-Object -Unique
Zwróć unikalne obiekty
1..5 | ForEach-Object { $_ * 2 }
Przepuść zakres przez transformację
Get-Process | Out-GridView
Wyślij wyniki do interaktywnej siatki

Pliki i ścieżki

13
Get-ChildItem -Path C:\Logs
Wypisz elementy katalogu (alias ls/dir)
Get-ChildItem -Recurse -Filter *.log
Wypisz pasujące pliki rekurencyjnie
Get-Content .\file.txt
Czyta plik wiersz po wierszu
Get-Content .\file.txt -Tail 20
Odczytaj ostatnie N linii pliku
Set-Content .\file.txt -Value 'Hi'
Zapisz (nadpisz) tekst do pliku
Add-Content .\file.txt -Value 'Hi'
Dopisz tekst do pliku
Copy-Item a.txt b.txt
Skopiuj plik lub katalog
Move-Item a.txt .\dir\
Przenieś lub zmień nazwę elementu
Remove-Item a.txt -Force
Usuń plik lub katalog
New-Item -ItemType Directory -Path .\dir
Utwórz nowy plik lub katalog
Test-Path .\file.txt
Sprawdź, czy ścieżka istnieje
Get-Location
Pokaż bieżący katalog (alias pwd)
Set-Location C:\Temp
Zmień bieżący katalog (alias cd)

Łańcuchy i tekst

12
'Hello World' -match 'World'
Sprawdź łańcuch względem wyrażenia regularnego
'Hello' -replace 'l', 'L'
Zamień tekst za pomocą wyrażenia regularnego
'a,b,c' -split ','
Podziel łańcuch na tablicę wg regex
'a-b-c'.Split('-')
Podziel metodą String z .NET
'a', 'b' -join ', '
Połącz elementy tablicy w łańcuch
Select-String -Path *.log -Pattern 'error'
Wyszukiwanie w plikach w stylu grep
'{0} of {1}' -f 3, 10
Formatuj łańcuch z symbolami zastępczymi
' hi '.Trim()
Usuń białe znaki z początku i końca
'Hello'.ToUpper()
Zamień łańcuch na wielkie litery
'Hello'.Substring(0, 3)
Wyodrębnij podłańcuch wg indeksu i długości
'Hello'.Contains('ell')
Sprawdź, czy łańcuch zawiera tekst
'Hello'.Length
Pobierz liczbę znaków

Pętle i warunki

12
if ($x -gt 0) { 'pos' } elseif ($x -eq 0) { 'zero' } else { 'neg' }
Rozgałęzienie z if / elseif / else
switch ($x) { 1 { 'one' } default { 'other' } }
Dopasuj wartość do przypadków
foreach ($i in $arr) { $i }
Iteruj po kolekcji
for ($i = 0; $i -lt 5; $i++) { $i }
Pętla zliczana z indeksem
while ($x -lt 10) { $x++ }
Pętla, dopóki warunek jest prawdziwy
do { $x++ } while ($x -lt 10)
Pętla wykonana co najmniej raz, potem test
$x -eq 5; $x -ne 5
Porównania równe i nierówne
$x -gt 5; $x -lt 5
Porównania większe i mniejsze
$x -ge 5; $x -le 5
Porównania większe/mniejsze lub równe
'abc' -like 'a*'
Porównanie z dopasowaniem wieloznacznym
@(1, 2, 3) -contains 2
Sprawdź przynależność do tablicy
break; continue
Wyjdź lub pomiń bieżącą iterację pętli

Funkcje i skrypty

12
function Get-Sum { param($a, $b) $a + $b }
Zdefiniuj funkcję z parametrami
Get-Sum -a 2 -b 3
Wywołaj funkcję z nazwanymi argumentami
function Test { param([int]$n = 1) }
Typowany parametr z wartością domyślną
param([Parameter(Mandatory)]$Name)
Wymagaj podania parametru
return $value
Zwróć wartość z funkcji
function F { [CmdletBinding()] param() }
Utwórz funkcję zaawansowaną (wspólne parametry)
Write-Verbose 'msg' -Verbose
Wyemituj strumień komunikatów verbose
Write-Output $result
Wyślij obiekt do potoku
Write-Error 'failed'
Zapisz do strumienia błędów
.\script.ps1 -Arg value
Uruchom plik skryptu z argumentami
. .\functions.ps1
Wczytaj skrypt do sesji przez dot-source
try { } catch { $_ } finally { }
Obsłuż błędy kończące

Obiekty i właściwości

12
Get-Process | Select-Object -ExpandProperty Name
Zwróć surowe wartości właściwości, nie obiekty
(Get-Process).Name
Uzyskaj dostęp do właściwości każdego obiektu
Get-Process | Select-Object Name, @{ Name = 'MB'; Expression = { $_.WS / 1MB } }
Dodaj właściwość obliczaną
[PSCustomObject]@{ Name = 'Ann'; Age = 30 }
Zbuduj obiekt niestandardowy
$obj | Add-Member -NotePropertyName Tag -NotePropertyValue 'x'
Dołącz właściwość do obiektu
$obj.PSObject.Properties.Name
Wypisz nazwy właściwości obiektu
$obj | Format-Table -AutoSize
Wyświetl obiekty jako wyrównaną tabelę
$obj | Format-List *
Wyświetl wszystkie właściwości jako listę
$obj | ConvertTo-Json -Depth 5
Serializuj obiekt do JSON
Get-Content data.json | ConvertFrom-Json
Sparsuj JSON do obiektów
$obj | Export-Csv out.csv -NoTypeInformation
Eksportuj obiekty do pliku CSV
Import-Csv data.csv
Wczytaj plik CSV do obiektów

Procesy i usługi

12
Get-Process
Wypisz działające procesy (alias ps)
Get-Process -Name chrome
Pobierz procesy wg nazwy
Stop-Process -Name notepad -Force
Zakończ proces
Start-Process notepad.exe
Uruchom nowy proces
Get-Service
Wypisz usługi Windows
Get-Service -Name wuauserv
Pobierz usługę wg nazwy
Start-Service -Name wuauserv
Uruchom zatrzymaną usługę
Stop-Service -Name wuauserv
Zatrzymaj działającą usługę
Restart-Service -Name wuauserv
Uruchom ponownie usługę
Set-Service -Name wuauserv -StartupType Manual
Zmień tryb uruchamiania usługi
Get-EventLog -LogName System -Newest 20
Odczytaj ostatnie wpisy klasycznego dziennika zdarzeń
Get-WinEvent -LogName Application -MaxEvents 20
Odpytaj nowoczesne dzienniki zdarzeń

Zdalne wykonywanie i zadania

12
Enter-PSSession -ComputerName Srv01
Rozpocznij interaktywną sesję zdalną
Exit-PSSession
Opuść interaktywną sesję zdalną
Invoke-Command -ComputerName Srv01 -ScriptBlock { Get-Service }
Uruchom polecenie na zdalnym hoście
$s = New-PSSession -ComputerName Srv01
Utwórz trwałą sesję zdalną
Invoke-Command -Session $s -ScriptBlock { hostname }
Wykorzystaj ponownie istniejącą sesję zdalną
Remove-PSSession $s
Zamknij i usuń sesję zdalną
Start-Job -ScriptBlock { Get-Process }
Uruchom polecenie jako zadanie w tle
Get-Job
Wypisz zadania w tle i ich stan
Receive-Job -Id 1 -Keep
Pobierz wynik zadania
Wait-Job -Id 1
Blokuj do zakończenia zadania
Stop-Job -Id 1; Remove-Job -Id 1
Zatrzymaj i usuń zadanie w tle
Get-Process | Start-ThreadJob { $input }
Uruchom lekkie zadania wątkowe w procesie

Moduły i pakiety

12
Get-Module
Wypisz aktualnie załadowane moduły
Get-Module -ListAvailable
Wypisz wszystkie zainstalowane moduły
Import-Module Pester
Załaduj moduł do sesji
Remove-Module Pester
Wyładuj moduł z sesji
Find-Module -Name PSReadLine
Szukaj modułu w galerii
Install-Module PSReadLine -Scope CurrentUser
Zainstaluj moduł z galerii
Update-Module PSReadLine
Zaktualizuj zainstalowany moduł
Uninstall-Module PSReadLine
Usuń zainstalowany moduł
Get-ExecutionPolicy
Pokaż bieżące zasady wykonywania skryptów
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Zezwól na uruchamianie skryptów podpisanych i lokalnych
Get-PSRepository
Wypisz skonfigurowane repozytoria pakietów
$PROFILE
Ścieżka do skryptu profilu bieżącego użytkownika

Żaden wpis nie pasuje do „:q”.


Potrzebujesz pomocy?
Masz problem z tym narzędziem? Daj nam znać.
Zgłoś problem

Dodaj to darmowe narzędzie do swojej witryny — skopiuj i wklej poniższy kod.