PowerShell Kopya Kağıdı
Aranabilir, yazdırılabilir PowerShell başvurusu — cmdlet'ler, işlem hattı, değişkenler, dosyalar, döngüler, fonksiyonlar, nesneler ve yönetim. Ücretsiz.
Yardım ve keşif
12Get-Help Get-Process
Bir cmdlet için yardım göster
Get-Help Get-Process -Examples
Bir cmdlet için kullanım örnekleri göster
Get-Help Get-Process -Full
Parametreler dahil tüm yardımı göster
Get-Help about_Functions
Kavramsal bir about_ konusunu oku
Update-Help
En son yardım dosyalarını indir
Get-Command -Noun Process
Bir isim üzerinde çalışan cmdlet'leri listele
Get-Command -Verb Get
Belirli bir fiil kullanan cmdlet'leri listele
Get-Command *service*
Joker karakter adıyla komut ara
Get-Process | Get-Member
Nesnelerin özellik ve yöntemlerini listele
Get-Alias ls
Bir alias'ın hangi komuta çözüldüğünü göster
Get-Alias -Definition Get-ChildItem
Bir cmdlet için tüm alias'ları listele
$PSVersionTable
PowerShell sürüm ve sürümünü göster
Değişkenler ve türler
13$x = 5
Bir değişkene değer ata
[int]$n = '42'
Güçlü türlü değişken tanımla
$null
null / boş değer
$true; $false
Boolean değişmezleri
$arr = @(1, 2, 3)
Bir dizi oluştur
$arr += 4
Bir diziye öğe ekle
$arr[0]; $arr[-1]
İlk ve son dizi öğelerine indeksle
$hash = @{ Name = 'Ann'; Age = 30 }
Bir hashtable oluştur
$hash['Name']; $hash.Name
Anahtarla hashtable değeri oku
$env:PATH
Bir ortam değişkeni oku
$env:MY_VAR = 'value'
Oturum için ortam değişkeni ayarla
Get-Variable
Tanımlı tüm değişkenleri listele
[math]::Round(3.14159, 2)
Statik bir .NET yöntemi çağır
Boru hattı ve filtreleme
12Get-Process | Where-Object { $_.CPU -gt 10 }
Nesneleri bir koşula göre filtrele
Get-Process | ? CPU -gt 10
? alias'ı ve sade söz dizimiyle filtrele
Get-Process | ForEach-Object { $_.Name }
Her nesne için bir betik bloğu çalıştır
Get-Process | % { $_.Kill() }
% alias'ı ile yinele
Get-Process | Select-Object Name, Id
Yalnızca belirli özellikleri tut
Get-Process | Select-Object -First 5
İlk N nesneyi al
Get-Process | Sort-Object CPU -Descending
Nesneleri bir özelliğe göre sırala
Get-Process | Group-Object Company
Nesneleri bir özelliğe göre grupla
Get-Process | Measure-Object CPU -Sum
Sayısal değerleri topla (toplam, ortalama)
Get-ChildItem | Select-Object -Unique
Benzersiz nesneler döndür
1..5 | ForEach-Object { $_ * 2 }
Bir aralığı dönüşümden geçir
Get-Process | Out-GridView
Sonuçları etkileşimli ızgaraya gönder
Dosyalar ve yollar
13Get-ChildItem -Path C:\Logs
Bir dizindeki öğeleri listele (alias ls/dir)
Get-ChildItem -Recurse -Filter *.log
Eşleşen dosyaları özyinelemeli listele
Get-Content .\file.txt
Bir dosyayı satır satır oku
Get-Content .\file.txt -Tail 20
Bir dosyanın son N satırını oku
Set-Content .\file.txt -Value 'Hi'
Bir dosyaya metin yaz (üzerine yaz)
Add-Content .\file.txt -Value 'Hi'
Bir dosyaya metin ekle
Copy-Item a.txt b.txt
Bir dosya veya dizin kopyala
Move-Item a.txt .\dir\
Bir öğeyi taşı veya yeniden adlandır
Remove-Item a.txt -Force
Bir dosya veya dizin sil
New-Item -ItemType Directory -Path .\dir
Yeni dosya veya dizin oluştur
Test-Path .\file.txt
Bir yolun var olup olmadığını kontrol et
Get-Location
Mevcut dizini göster (alias pwd)
Set-Location C:\Temp
Mevcut dizini değiştir (alias cd)
Dizgiler ve metin
12'Hello World' -match 'World'
Bir dizgiyi regex'e karşı test et
'Hello' -replace 'l', 'L'
Regex ile metin değiştir
'a,b,c' -split ','
Bir dizgiyi regex ile diziye böl
'a-b-c'.Split('-')
.NET String yöntemiyle böl
'a', 'b' -join ', '
Dizi öğelerini bir dizgide birleştir
Select-String -Path *.log -Pattern 'error'
Dosyalarda grep tarzı arama
'{0} of {1}' -f 3, 10
Bir dizgiyi yer tutucularla biçimlendir
' hi '.Trim()
Baştaki ve sondaki boşluğu kaldır
'Hello'.ToUpper()
Bir dizgiyi büyük harfe çevir
'Hello'.Substring(0, 3)
İndeks ve uzunluğa göre alt dizgi çıkar
'Hello'.Contains('ell')
Bir dizginin metin içerip içermediğini test et
'Hello'.Length
Karakter sayısını al
Döngüler ve koşullar
12if ($x -gt 0) { 'pos' } elseif ($x -eq 0) { 'zero' } else { 'neg' }
if / elseif / else ile dallan
switch ($x) { 1 { 'one' } default { 'other' } }
Bir değeri durumlarla eşleştir
foreach ($i in $arr) { $i }
Bir koleksiyon üzerinde yinele
for ($i = 0; $i -lt 5; $i++) { $i }
İndeksli sayılı döngü
while ($x -lt 10) { $x++ }
Bir koşul doğruyken döngü
do { $x++ } while ($x -lt 10)
En az bir kez döngü, sonra test et
$x -eq 5; $x -ne 5
Eşit ve eşit-değil karşılaştırmaları
$x -gt 5; $x -lt 5
Büyük ve küçük karşılaştırmaları
$x -ge 5; $x -le 5
Büyük/küçük eşit karşılaştırmaları
'abc' -like 'a*'
Joker karakter eşleşme karşılaştırması
@(1, 2, 3) -contains 2
Dizi üyeliğini test et
break; continue
Mevcut döngü yinelemesinden çık veya atla
Fonksiyonlar ve betikler
12function Get-Sum { param($a, $b) $a + $b }
Parametreli fonksiyon tanımla
Get-Sum -a 2 -b 3
Adlandırılmış argümanlarla fonksiyon çağır
function Test { param([int]$n = 1) }
Varsayılan değerli türlü parametre
param([Parameter(Mandatory)]$Name)
Bir parametrenin verilmesini zorunlu kıl
return $value
Bir fonksiyondan değer döndür
function F { [CmdletBinding()] param() }
Gelişmiş fonksiyon oluştur (ortak parametreler)
Write-Verbose 'msg' -Verbose
Ayrıntılı mesaj akışı üret
Write-Output $result
Boru hattına bir nesne gönder
Write-Error 'failed'
Hata akışına yaz
.\script.ps1 -Arg value
Bir betik dosyasını argümanlarla çalıştır
. .\functions.ps1
Bir betiği oturuma nokta-kaynak ile dahil et
try { } catch { $_ } finally { }
Sonlandırıcı hataları işle
Nesneler ve özellikler
12Get-Process | Select-Object -ExpandProperty Name
Nesneleri değil ham özellik değerlerini döndür
(Get-Process).Name
Her nesnede bir özelliğe eriş
Get-Process | Select-Object Name, @{ Name = 'MB'; Expression = { $_.WS / 1MB } }
Hesaplanmış bir özellik ekle
[PSCustomObject]@{ Name = 'Ann'; Age = 30 }
Özel bir nesne oluştur
$obj | Add-Member -NotePropertyName Tag -NotePropertyValue 'x'
Bir nesneye özellik ekle
$obj.PSObject.Properties.Name
Bir nesnenin özellik adlarını listele
$obj | Format-Table -AutoSize
Nesneleri hizalanmış tablo olarak göster
$obj | Format-List *
Tüm özellikleri liste olarak göster
$obj | ConvertTo-Json -Depth 5
Bir nesneyi JSON'a serileştir
Get-Content data.json | ConvertFrom-Json
JSON'u nesnelere ayrıştır
$obj | Export-Csv out.csv -NoTypeInformation
Nesneleri bir CSV dosyasına dışa aktar
Import-Csv data.csv
Bir CSV dosyasını nesnelere oku
İşlemler ve hizmetler
12Get-Process
Çalışan işlemleri listele (alias ps)
Get-Process -Name chrome
İşlemleri ada göre al
Stop-Process -Name notepad -Force
Bir işlemi sonlandır
Start-Process notepad.exe
Yeni bir işlem başlat
Get-Service
Windows hizmetlerini listele
Get-Service -Name wuauserv
Bir hizmeti ada göre al
Start-Service -Name wuauserv
Durdurulmuş bir hizmeti başlat
Stop-Service -Name wuauserv
Çalışan bir hizmeti durdur
Restart-Service -Name wuauserv
Bir hizmeti yeniden başlat
Set-Service -Name wuauserv -StartupType Manual
Bir hizmet başlatma modunu değiştir
Get-EventLog -LogName System -Newest 20
Son klasik olay günlüğü girdilerini oku
Get-WinEvent -LogName Application -MaxEvents 20
Modern olay günlüklerini sorgula
Uzaktan erişim ve işler
12Enter-PSSession -ComputerName Srv01
Etkileşimli uzak oturum başlat
Exit-PSSession
Etkileşimli uzak oturumdan çık
Invoke-Command -ComputerName Srv01 -ScriptBlock { Get-Service }
Uzak bir ana bilgisayarda komut çalıştır
$s = New-PSSession -ComputerName Srv01
Kalıcı uzak oturum oluştur
Invoke-Command -Session $s -ScriptBlock { hostname }
Mevcut uzak oturumu yeniden kullan
Remove-PSSession $s
Bir uzak oturumu kapat ve kaldır
Start-Job -ScriptBlock { Get-Process }
Bir komutu arka plan işi olarak çalıştır
Get-Job
Arka plan işlerini ve durumlarını listele
Receive-Job -Id 1 -Keep
Bir işin çıktısını al
Wait-Job -Id 1
Bir iş tamamlanana kadar blokla
Stop-Job -Id 1; Remove-Job -Id 1
Bir arka plan işini durdur ve kaldır
Get-Process | Start-ThreadJob { $input }
Hafif işlem-içi iş parçacığı işleri çalıştır
Modüller ve paketler
12Get-Module
Yüklü modülleri listele
Get-Module -ListAvailable
Tüm kurulu modülleri listele
Import-Module Pester
Oturuma bir modül yükle
Remove-Module Pester
Oturumdan bir modülü kaldır
Find-Module -Name PSReadLine
Galeride bir modül ara
Install-Module PSReadLine -Scope CurrentUser
Galeriden bir modül kur
Update-Module PSReadLine
Kurulu bir modülü güncelle
Uninstall-Module PSReadLine
Kurulu bir modülü kaldır
Get-ExecutionPolicy
Mevcut betik yürütme ilkesini göster
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
İmzalı ve yerel betiklerin çalışmasına izin ver
Get-PSRepository
Yapılandırılmış paket depolarını listele
$PROFILE
Mevcut kullanıcı profil betiğinin yolu
“:q” ile eşleşen bir girdi yok.
Yardıma mı ihtiyacınız var?
Bu araçta bir sorun mu buldunuz? Ekibimize bildirin.