logo
eng-flag

PowerShell Notları ve İpuçları

İçindekiler

  1. Temel Komutlar
  2. Dosya ve Dizin İşlemleri
  3. Metin Manipülasyonu
  4. Süreç Yönetimi
  5. Ağ Komutları
  6. Sistem Bilgisi
  7. PowerShell'e Özgü Özellikler
  8. Değişkenler ve Veri Tipleri
  9. Akış Kontrolü
  10. Fonksiyonlar ve Modüller
  11. Hata Yönetimi
  12. Uzaktan Erişim
  13. Güvenlik ve Yürütme Politikası

Temel Komutlar

Dosya Sisteminde Gezinme

  • Çalışma dizinini yazdır: Get-Location veya pwd
  • Dizin değiştir: Set-Location [yol] veya cd [yol]
  • Ana dizine git: cd ~
  • Önceki dizine git: cd -

Örnek:

PS C:UsersKullanici> Get-Location
Path
----
C:UsersKullanici

PS C:UsersKullanici> Set-Location C:Windows
PS C:Windows>

Dosya ve Dizinleri Listeleme

  • Dosya ve dizinleri listele: Get-ChildItem veya dir veya ls
  • Gizli öğeler dahil tümünü listele: Get-ChildItem -Force
  • Ayrıntılı liste: Get-ChildItem | Format-List

Örnek:

PS C:> Get-ChildItem -Force

    Directory: C:
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d--hs-        14.11.2023  22:14                   $Recycle.Bin
d--hsl        12.07.2023   3:51                   Documents and Settings
d-----        12.07.2023  13:06                   PerfLogs
d-r---        12.07.2023   3:51                   Program Files
d-r---        12.07.2023   3:52                   Program Files (x86)
d-----        12.07.2023  13:06                   Users
d-----        15.11.2023   9:32                   Windows

Dosya ve Dizin İşlemleri

Dosya ve Dizin Oluşturma

  • Boş dosya oluştur: New-Item -ItemType File -Name [dosyaadi]
  • Dizin oluştur: New-Item -ItemType Directory -Name [dizinadi]
  • İç içe dizinler oluştur: New-Item -ItemType Directory -Path [yol/dizinadi] -Force

Örnek:

PS C:> New-Item -ItemType File -Name yenidosya.txt
PS C:> New-Item -ItemType Directory -Name yenidizin
PS C:> New-Item -ItemType Directory -Path derinicicedizin -Force

Kopyalama, Taşıma ve Silme

  • Dosya kopyala: Copy-Item [kaynak] [hedef]
  • Dizini özyinelemeli kopyala: Copy-Item [kaynak] [hedef] -Recurse
  • Dosya veya dizin taşı/yeniden adlandır: Move-Item [kaynak] [hedef]
  • Dosya sil: Remove-Item [dosyaadi]
  • Dizin ve içeriğini sil: Remove-Item [dizinadi] -Recurse -Force

Örnek:

PS C:> Copy-Item dosya1.txt dosya2.txt
PS C:> Move-Item dosya2.txt yeniisim.txt
PS C:> Remove-Item yeniisim.txt
PS C:> Remove-Item eskidizin -Recurse -Force

Metin Manipülasyonu

Dosya İçeriğini Görüntüleme

  • Tüm dosyayı görüntüle: Get-Content [dosyaadi]
  • İlk birkaç satırı görüntüle: Get-Content [dosyaadi] -Head 10
  • Son birkaç satırı görüntüle: Get-Content [dosyaadi] -Tail 10

Örnek:

PS C:> Get-Content gunluk.txt
PS C:> Get-Content gunluk.txt -Tail 5

Arama ve Filtreleme

  • Dosyada desen ara: Select-String -Path [dosyaadi] -Pattern [desen]
  • Dizinde özyinelemeli ara: Get-ChildItem -Recurse | Select-String -Pattern [desen]

Örnek:

PS C:> Select-String -Path gunluk.txt -Pattern "hata"
PS C:> Get-ChildItem -Recurse | Select-String -Pattern "YAPILACAK"

Metin Düzenleme

  • Dosyayı varsayılan düzenleyicide aç: Invoke-Item [dosyaadi]

Örnek:

PS C:> Invoke-Item ayarlar.txt

Süreç Yönetimi

Süreçleri Görüntüleme

  • Tüm süreçleri listele: Get-Process
  • Belirli bir süreci al: Get-Process -Name [surecadi]

Örnek:

PS C:> Get-Process
PS C:> Get-Process -Name chrome

Süreçleri Yönetme

  • Yeni süreç başlat: Start-Process [yol/calistirilabilir]
  • Süreci durdur: Stop-Process -Name [surecadi]
  • Süreci ID ile durdur: Stop-Process -Id [surecID]

Örnek:

PS C:> Start-Process notepad.exe
PS C:> Stop-Process -Name notepad

Ağ Komutları

Ağ Bilgileri

  • IP yapılandırmasını al: Get-NetIPConfiguration
  • Ağ bağlantısını test et: Test-NetConnection [hedef]
  • DNS istemci önbelleğini al: Get-DnsClientCache

Örnek:

PS C:> Get-NetIPConfiguration
PS C:> Test-NetConnection www.google.com

Ağ İşlemleri

  • Dosya indir: Invoke-WebRequest -Uri [URL] -OutFile [dosyaadi]
  • Ping gönder: Test-Connection [hedef]

Örnek:

PS C:> Invoke-WebRequest -Uri "https://ornek.com/dosya.zip" -OutFile "dosya.zip"
PS C:> Test-Connection 8.8.8.8

Sistem Bilgisi

  • Sistem bilgisini al: Get-ComputerInfo
  • Yüklü düzeltme eklerini al: Get-HotFix
  • Disk bilgisini al: Get-Disk

Örnek:

PS C:> Get-ComputerInfo | Select-Object WindowsProductName, OsVersion, OsArchitecture

PowerShell'e Özgü Özellikler

Boru Hattı

  • Çıktıyı aktarmak için boru hattı kullan: komut1 | komut2

Örnek:

PS C:> Get-Process | Where-Object {$_.CPU -gt 10} | Sort-Object CPU -Descending

Takma Adlar

  • Tüm takma adları al: Get-Alias
  • Yeni takma ad oluştur: New-Alias -Name [takmaad] -Value [komut]

Örnek:

PS C:> New-Alias -Name surec -Value Get-Process

Değişkenler ve Veri Tipleri

Değişkenlerle Çalışma

  • Değişken oluştur: $degiskenAdi = deger
  • Değişken tipini al: $degiskenAdi.GetType()

Örnek:

PS C:> $isim = "Ahmet"
PS C:> $yas = 30
PS C:> $isim.GetType()

Diziler ve Hash Tabloları

  • Dizi oluştur: $dizi = @(1, 2, 3, 4)
  • Hash tablosu oluştur: $hash = @{Anahtar1 = "Deger1"; Anahtar2 = "Deger2"}

Örnek:

PS C:> $meyveler = @("Elma", "Muz", "Portakal")
PS C:> $kisi = @{Isim = "Ayşe"; Yas = 25; Sehir = "İstanbul"}

Akış Kontrolü

Koşullu İfadeler

  • If ifadesi:
if (kosul) {
    # kod
} elseif (kosul) {
    # kod
} else {
    # kod
}

Döngüler

  • ForEach döngüsü:
foreach ($oge in $koleksiyon) {
    # kod
}
  • For döngüsü:
for ($i = 0; $i -lt 10; $i++) {
    # kod
}

Örnek:

PS C:> foreach ($dosya in Get-ChildItem) {
>>     Write-Host $dosya.Name
>> }

Fonksiyonlar ve Modüller

Fonksiyon Oluşturma

function FonksiyonAdi {
    param (
        [Parameter(Mandatory=$true)][string]$param1,
        [int]$param2 = 0
    )
    # Fonksiyon gövdesi
}

Örnek:

PS C:> function Selamla {
>>     param ([string]$isim)
>>     Write-Host "Merhaba, $isim!"
>> }
PS C:> Selamla -isim "Ayşe"
Merhaba, Ayşe!

Modüllerle Çalışma

  • Modül içe aktar: Import-Module [ModulAdi]
  • Bir modüldeki tüm komutları al: Get-Command -Module [ModulAdi]

Örnek:

PS C:> Import-Module ActiveDirectory
PS C:> Get-Command -Module ActiveDirectory

Hata Yönetimi

  • Try-Catch bloğu:
try {
    # Hataya neden olabilecek kod
} catch {
    # Hata yönetimi kodu
} finally {
    # Hata olsun olmasın çalışacak kod
}

Örnek:

PS C:> try {
>>     $sonuc = 10 / 0
>> } catch {
>>     Write-Host "Bir hata oluştu: $_"
>> }
Bir hata oluştu: Sıfıra bölme girişiminde bulunuldu.

Uzaktan Erişim

  • PowerShell uzaktan erişimi etkinleştir: Enable-PSRemoting
  • Uzak oturum başlat: Enter-PSSession -ComputerName [bilgisayaradi]
  • Uzak bilgisayarda komut çalıştır: Invoke-Command -ComputerName [bilgisayaradi] -ScriptBlock { komut }

Örnek:

PS C:> Enter-PSSession -ComputerName Sunucu01
[Sunucu01]: PS C:>

Güvenlik ve Yürütme Politikası

  • Yürütme politikasını al: Get-ExecutionPolicy
  • Yürütme politikasını ayarla: Set-ExecutionPolicy [PolitikaAdi]
  • Betik imzalama durumunu al: Get-AuthenticodeSignature [betik.ps1]

Örnek:

PS C:> Get-ExecutionPolicy
Restricted
PS C:> Set-ExecutionPolicy RemoteSigned

2024 © Tüm hakları saklıdır - buraxta.com