Foaie de referință PowerShell
O referință PowerShell căutabilă și imprimabilă — cmdlet-uri, pipeline, variabile, fișiere, bucle, funcții, obiecte și administrare. Gratuit.
Obținere ajutor și descoperire
12Get-Help Get-Process
Afișează ajutorul pentru un cmdlet
Get-Help Get-Process -Examples
Afișează exemple de utilizare pentru un cmdlet
Get-Help Get-Process -Full
Afișează ajutorul complet inclusiv parametrii
Get-Help about_Functions
Citește un subiect conceptual about_
Update-Help
Descarcă cele mai recente fișiere de ajutor
Get-Command -Noun Process
Listează cmdlet-urile care acționează pe un substantiv
Get-Command -Verb Get
Listează cmdlet-urile care folosesc un verb dat
Get-Command *service*
Caută comenzi după nume cu wildcard
Get-Process | Get-Member
Listează proprietățile și metodele obiectelor
Get-Alias ls
Afișează la ce comandă se rezolvă un alias
Get-Alias -Definition Get-ChildItem
Listează toate aliasurile pentru un cmdlet
$PSVersionTable
Afișează versiunea și ediția PowerShell
Variabile & tipuri
13$x = 5
Atribuie o valoare unei variabile
[int]$n = '42'
Declară o variabilă tipizată strict
$null
Valoarea null / goală
$true; $false
Literali booleeni
$arr = @(1, 2, 3)
Creează un array
$arr += 4
Adaugă un element la un array
$arr[0]; $arr[-1]
Indexează primul și ultimul element al array-ului
$hash = @{ Name = 'Ann'; Age = 30 }
Creează un hashtable
$hash['Name']; $hash.Name
Citește o valoare din hashtable după cheie
$env:PATH
Citește o variabilă de mediu
$env:MY_VAR = 'value'
Setează o variabilă de mediu pentru sesiune
Get-Variable
Listează toate variabilele definite
[math]::Round(3.14159, 2)
Apelează o metodă statică .NET
Pipeline și filtrare
12Get-Process | Where-Object { $_.CPU -gt 10 }
Filtrează obiecte după o condiție
Get-Process | ? CPU -gt 10
Filtrează cu aliasul ? și sintaxă simplificată
Get-Process | ForEach-Object { $_.Name }
Rulează un bloc de script pentru fiecare obiect
Get-Process | % { $_.Kill() }
Iterează cu aliasul %
Get-Process | Select-Object Name, Id
Păstrează doar anumite proprietăți
Get-Process | Select-Object -First 5
Ia primele N obiecte
Get-Process | Sort-Object CPU -Descending
Sortează obiecte după o proprietate
Get-Process | Group-Object Company
Grupează obiecte după o proprietate
Get-Process | Measure-Object CPU -Sum
Agregă valori numerice (sumă, medie)
Get-ChildItem | Select-Object -Unique
Returnează obiecte distincte
1..5 | ForEach-Object { $_ * 2 }
Trece un interval printr-o transformare
Get-Process | Out-GridView
Trimite rezultatele într-o grilă interactivă
Fișiere și căi
13Get-ChildItem -Path C:\Logs
Listează elementele dintr-un director (alias ls/dir)
Get-ChildItem -Recurse -Filter *.log
Listează fișierele potrivite recursiv
Get-Content .\file.txt
Citește un fișier linie cu linie
Get-Content .\file.txt -Tail 20
Citește ultimele N linii ale unui fișier
Set-Content .\file.txt -Value 'Hi'
Scrie (suprascrie) text într-un fișier
Add-Content .\file.txt -Value 'Hi'
Adaugă text la un fișier
Copy-Item a.txt b.txt
Copiază un fișier sau director
Move-Item a.txt .\dir\
Mută sau redenumește un element
Remove-Item a.txt -Force
Șterge un fișier sau director
New-Item -ItemType Directory -Path .\dir
Creează un fișier sau director nou
Test-Path .\file.txt
Verifică dacă o cale există
Get-Location
Afișează directorul curent (alias pwd)
Set-Location C:\Temp
Schimbă directorul curent (alias cd)
Șiruri și text
12'Hello World' -match 'World'
Testează un șir cu o expresie regulată
'Hello' -replace 'l', 'L'
Înlocuiește text folosind o expresie regulată
'a,b,c' -split ','
Împarte un șir într-un array prin regex
'a-b-c'.Split('-')
Împarte folosind metoda .NET String
'a', 'b' -join ', '
Unește elementele array-ului într-un șir
Select-String -Path *.log -Pattern 'error'
Căutare stil grep în fișiere
'{0} of {1}' -f 3, 10
Formatează un șir cu placeholder-e
' hi '.Trim()
Elimină spațiile albe de la început și sfârșit
'Hello'.ToUpper()
Convertește un șir în majuscule
'Hello'.Substring(0, 3)
Extrage un subșir după index și lungime
'Hello'.Contains('ell')
Testează dacă un șir conține text
'Hello'.Length
Obține numărul de caractere
Bucle și condiționale
12if ($x -gt 0) { 'pos' } elseif ($x -eq 0) { 'zero' } else { 'neg' }
Ramifică cu if / elseif / else
switch ($x) { 1 { 'one' } default { 'other' } }
Potrivește o valoare cu cazuri
foreach ($i in $arr) { $i }
Iterează peste o colecție
for ($i = 0; $i -lt 5; $i++) { $i }
Buclă numărată cu un index
while ($x -lt 10) { $x++ }
Buclă cât timp o condiție e adevărată
do { $x++ } while ($x -lt 10)
Buclă cel puțin o dată, apoi testează
$x -eq 5; $x -ne 5
Comparații egal și diferit
$x -gt 5; $x -lt 5
Comparații mai mare și mai mic
$x -ge 5; $x -le 5
Comparații mai mare/mic sau egal
'abc' -like 'a*'
Comparație de potrivire cu wildcard
@(1, 2, 3) -contains 2
Testează apartenența la un array
break; continue
Ieși sau sari peste iterația curentă a buclei
Funcții și scripturi
12function Get-Sum { param($a, $b) $a + $b }
Definește o funcție cu parametri
Get-Sum -a 2 -b 3
Apelează o funcție cu argumente numite
function Test { param([int]$n = 1) }
Parametru tipizat cu o valoare implicită
param([Parameter(Mandatory)]$Name)
Necesită ca un parametru să fie furnizat
return $value
Returnează o valoare dintr-o funcție
function F { [CmdletBinding()] param() }
Creează o funcție avansată (parametri comuni)
Write-Verbose 'msg' -Verbose
Emite un flux de mesaje verbose
Write-Output $result
Trimite un obiect în pipeline
Write-Error 'failed'
Scrie în fluxul de erori
.\script.ps1 -Arg value
Rulează un fișier script cu argumente
. .\functions.ps1
Dot-source un script în sesiune
try { } catch { $_ } finally { }
Tratează erorile care opresc execuția
Obiecte și proprietăți
12Get-Process | Select-Object -ExpandProperty Name
Returnează valori brute de proprietăți, nu obiecte
(Get-Process).Name
Accesează o proprietate pe fiecare obiect
Get-Process | Select-Object Name, @{ Name = 'MB'; Expression = { $_.WS / 1MB } }
Adaugă o proprietate calculată
[PSCustomObject]@{ Name = 'Ann'; Age = 30 }
Construiește un obiect personalizat
$obj | Add-Member -NotePropertyName Tag -NotePropertyValue 'x'
Atașează o proprietate la un obiect
$obj.PSObject.Properties.Name
Listează numele proprietăților unui obiect
$obj | Format-Table -AutoSize
Afișează obiectele ca un tabel aliniat
$obj | Format-List *
Afișează toate proprietățile ca o listă
$obj | ConvertTo-Json -Depth 5
Serializează un obiect în JSON
Get-Content data.json | ConvertFrom-Json
Parsează JSON în obiecte
$obj | Export-Csv out.csv -NoTypeInformation
Exportă obiecte într-un fișier CSV
Import-Csv data.csv
Citește un fișier CSV în obiecte
Procese și servicii
12Get-Process
Listează procesele care rulează (alias ps)
Get-Process -Name chrome
Obține procese după nume
Stop-Process -Name notepad -Force
Termină un proces
Start-Process notepad.exe
Lansează un proces nou
Get-Service
Listează serviciile Windows
Get-Service -Name wuauserv
Obține un serviciu după nume
Start-Service -Name wuauserv
Pornește un serviciu oprit
Stop-Service -Name wuauserv
Oprește un serviciu care rulează
Restart-Service -Name wuauserv
Repornește un serviciu
Set-Service -Name wuauserv -StartupType Manual
Schimbă modul de pornire al unui serviciu
Get-EventLog -LogName System -Newest 20
Citește intrările recente din jurnalul clasic de evenimente
Get-WinEvent -LogName Application -MaxEvents 20
Interoghează jurnalele moderne de evenimente
Remoting și job-uri
12Enter-PSSession -ComputerName Srv01
Pornește o sesiune remote interactivă
Exit-PSSession
Părăsește o sesiune remote interactivă
Invoke-Command -ComputerName Srv01 -ScriptBlock { Get-Service }
Rulează o comandă pe un host remote
$s = New-PSSession -ComputerName Srv01
Creează o sesiune remote persistentă
Invoke-Command -Session $s -ScriptBlock { hostname }
Reutilizează o sesiune remote existentă
Remove-PSSession $s
Închide și elimină o sesiune remote
Start-Job -ScriptBlock { Get-Process }
Rulează o comandă ca job în fundal
Get-Job
Listează job-urile din fundal și starea lor
Receive-Job -Id 1 -Keep
Obține ieșirea unui job
Wait-Job -Id 1
Blochează până când un job se finalizează
Stop-Job -Id 1; Remove-Job -Id 1
Oprește și elimină un job din fundal
Get-Process | Start-ThreadJob { $input }
Rulează job-uri thread ușoare în proces
Module și pachete
12Get-Module
Listează modulele încărcate curent
Get-Module -ListAvailable
Listează toate modulele instalate
Import-Module Pester
Încarcă un modul în sesiune
Remove-Module Pester
Descarcă un modul din sesiune
Find-Module -Name PSReadLine
Caută un modul în galerie
Install-Module PSReadLine -Scope CurrentUser
Instalează un modul din galerie
Update-Module PSReadLine
Actualizează un modul instalat
Uninstall-Module PSReadLine
Elimină un modul instalat
Get-ExecutionPolicy
Afișează politica curentă de execuție a scripturilor
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Permite rularea scripturilor semnate și locale
Get-PSRepository
Listează depozitele de pachete configurate
$PROFILE
Calea către scriptul de profil al utilizatorului curent
Nicio intrare nu corespunde cu „:q”.
Ai nevoie de ajutor?
Ai întâmpinat o problemă cu acest instrument? Spune-ne.