Pardus'a PowerShell Kurma (Doğrudan Windows Yönetimi)
Pardus üzerinden Windows sunucularını ve istemcilerini doğrudan yönetmek, heterojen ağlarda çalışan sistem yöneticileri için büyük bir operasyonel avantaj sağlar.
Geçmişte Linux'tan Windows'a bağlanmak için karmaşık WinRM (Windows Remote Management) ve Kerberos yapılandırmaları gerekirdi. Günümüzde ise SSH üzerinden PowerShell Remoting (Uzaktan Yönetim) standart hale gelmiştir. Bu yöntem; şifreli, hızlı ve çapraz platform (Linux-Windows arası) tam uyumlu bir yönetim sunar.
Giriş
Linux ve Windows uzun yıllar tamamen farklı yönetim araçlarına sahipti. Linux'ta Bash, Windows'ta CMD ve daha sonra PowerShell kullanılıyordu.
Ancak Microsoft, PowerShell'i açık kaynak (Open Source) yaptıktan sonra artık;
Pardus
Debian
Ubuntu
Fedora
Kali Linux
macOS
üzerinde de çalışabilmektedir.
Bu sayede Pardus bilgisayardan;
Windows Server
Windows 10
Windows 11
Hyper-V
Active Directory
Exchange
Microsoft 365
Azure
ortamları doğrudan yönetilebilir.
PowerShell Nedir?
PowerShell;
Komut satırı (CLI)
Script dili
Yönetim platformu
Otomasyon aracıdır.
Eski CMD'nin yerine geliştirilmiştir.
En büyük özelliği:
Metin değil Nesne (Object) ile çalışmasıdır.
Örneğin:
CMD
dir
çıktısı metindir.
PowerShell
Get-ChildItem
çıktısı ise nesnedir.
Bu nedenle filtreleme inanılmaz kolaydır.
PowerShell Core
Linux üzerinde çalışan sürümün adı
PowerShell 7 (PowerShell Core)
komutu:
pwsh
Artık "powershell" yerine
pwsh
kullanılır.
Pardus Sürümünü Kontrol Edelim
cat /etc/os-release
Örneğin
PRETTY_NAME="Pardus GNU/Linux 25"
Sistem Güncellemesi
sudo apt update
sudo apt upgrade
Gerekli Paketler
sudo apt install -y wget apt-transport-https gnupg curlPowerShell Kurulum
1. PowerShell Evrensel Arşivini İndirin
Bağımlılık zorunluluğu olmayan sıkıştırılmış sürümü indirin:
wget https://github.com/PowerShell/PowerShell/releases/download/v7.6.3/powershell-7.6.3-linux-x64.tar.gz2. Kurulum Dizinini Oluşturun
Sistemde PowerShell için ayrılmış resmi klasör yolunu oluşturun:
sudo mkdir -p /opt/microsoft/powershell/73. Arşivi Çıkartın
İndirdiğiniz sıkıştırılmış dosyayı oluşturduğunuz dizine çıkartın:
sudo tar zxf powershell-7.6.3-linux-x64.tar.gz -C /opt/microsoft/powershell/7
4. İzinleri Ayarlayın ve Kısayol Oluşturun
Çalıştırılabilir dosyaya yetki verin ve terminalin herhangi bir yerinden
pwshyazarak açabilmek için sisteme bir kısayol (symlink) ekleyin: sudo chmod +x /opt/microsoft/powershell/7/pwshsudo ln -s /opt/microsoft/powershell/7/pwsh /usr/bin/pwsh
Tebrikler! Bu yöntemle hiçbir bağımlılık hatası almadan PowerShell'i sisteminize entegre etmiş oldunuz. Kurulumu doğrulamak için doğrudan terminale şu komutu yazabilirsiniz:
Kurulum tamamlandıktan sonra
pwsh
çıktı
PowerShell 7.x.x
Çıkış
exit
Sürüm Kontrolü
$PSVersionTable
Örnek
Name Value
PSVersion 7.5.x
PSEdition Core
Platform Unix
Yardım Sistemi
Get-Help
Belirli komut
Get-Help Get-Process
Detaylı yardım
Get-Help Get-Service -Full
Örnekler
Get-Help Get-Service -Examples
Alias Yapısı
Linux
ls
PowerShell
ls
aslında
Get-ChildItem
komutudur.
Kontrol
Get-Alias ls
Linux Komutları PowerShell İçinde
PowerShell Linux komutlarını çalıştırabilir.
ls
pwd
cat
grep
Değişkenler
$isim="Ali"
$yas=25
Göster
$isim
Nesneler
Get-Date
çıktısı
Sunday
Month
Year
Ticks
Hour
İstediğimizi alabiliriz.
(Get-Date).Year
veya
(Get-Date).DayOfWeek
Pipeline
Linux
ps aux | grep ssh
PowerShell
Get-Process | Where-Object CPU -gt 50
Windows Bilgisayara Uzaktan Bağlanma
SSH servisi açıksa
Enter-PSSession -HostName 192.168.1.20 -UserName administrator
veya
Enter-PSSession -HostName sunucu.local -UserName administrator
Çıkış
Exit-PSSession
Tek Komut Çalıştırma
Invoke-Command -HostName 192.168.1.20 `
-UserName administrator `
-ScriptBlock {
hostname
ipconfig
Get-Service
}
Çoklu Sunucu Yönetimi
$servers=@(
"192.168.1.20"
"192.168.1.21"
"192.168.1.22"
)
Döngü
foreach($s in $servers){
Invoke-Command -HostName $s `
-UserName administrator `
-ScriptBlock {
hostname
}
}
Dosya Kopyalama
Windows → Pardus
scp administrator@192.168.1.20:C:\rapor.txt .
Pardus → Windows
scp rapor.txt administrator@192.168.1.20:C:\Temp\
Active Directory Yönetimi
SSH üzerinden bağlandıktan sonra
Import-Module ActiveDirectory
Kullanıcılar
Get-ADUser -Filter *
Gruplar
Get-ADGroup -Filter *
Bilgisayarlar
Get-ADComputer -Filter *
Hyper-V Yönetimi
Get-VM
Başlat
Start-VM Ubuntu01
Durdur
Stop-VM Ubuntu01
Windows Servisleri
Get-Service
Spooler
Restart-Service Spooler
Olay Günlüğü
Get-WinEvent -LogName Security
Son 20 kayıt
Get-WinEvent Security -MaxEvents 20
Disk Bilgisi
Get-Disk
Ağ Bilgisi
Get-NetIPAddress
Firewall
Get-NetFirewallRule
Çalışan İşlemler
Get-Process
En fazla RAM kullanan
Get-Process |
Sort WorkingSet -Descending |
Select -First 10
Windows Güncelleme
PSWindowsUpdate kurulu ise
Get-WindowsUpdate
Kur
Install-WindowsUpdate
Güvenlik Açısından Avantajları
✅ SSH üzerinden güvenli bağlantı
✅ Şifre yerine Anahtar (Key) kullanımı
✅ Çoklu sunucu yönetimi
✅ Script otomasyonu
✅ Loglama
✅ Merkezi yönetim
✅ Active Directory desteği
✅ Hyper-V desteği
✅ Azure desteği
En Faydalı Cmdlet'ler
| Cmdlet | Görev |
|---|---|
| Get-Process | İşlemleri listeler |
| Get-Service | Servisleri gösterir |
| Get-EventLog | Logları gösterir |
| Get-WinEvent | Yeni log sistemi |
| Get-ChildItem | Dosyalar |
| Get-Item | Dosya bilgisi |
| Copy-Item | Kopyalama |
| Remove-Item | Silme |
| Test-Connection | Ping |
| Get-NetIPAddress | Ağ bilgisi |
| Get-ComputerInfo | Sistem bilgisi |
| Restart-Computer | Yeniden başlat |
| Stop-Service | Servis durdur |
| Start-Service | Servis başlat |
Gerçek Hayatta Kullanım Senaryoları
Senaryo 1: Laboratuvardaki Tüm Bilgisayarların Yeniden Başlatılması
Invoke-Command -HostName 192.168.1.20,192.168.1.21,192.168.1.22 `
-UserName administrator `
-ScriptBlock {
Restart-Computer -Force
}
Senaryo 2: Disk Doluluk Kontrolü
Invoke-Command -HostName 192.168.1.20 `
-UserName administrator `
-ScriptBlock {
Get-PSDrive -PSProvider FileSystem
}
Senaryo 3: Çalışmayan Servisleri Listeleme
Invoke-Command -HostName 192.168.1.20 `
-ScriptBlock {
Get-Service | Where-Object Status -eq Stopped
}
Senaryo 4: Güvenlik Günlüğünde Başarısız Oturum Açma Denemeleri
Invoke-Command -HostName 192.168.1.20 `
-ScriptBlock {
Get-WinEvent -FilterHashtable @{
LogName='Security'
Id=4625
} -MaxEvents 20
}
En İyi Uygulamalar (Best Practices)
PowerShell'i her zaman en güncel sürümde kullanın.
Parola yerine SSH anahtar tabanlı kimlik doğrulamayı tercih edin.
Uzaktan yönetim için yönetici haklarını yalnızca gerekli hesaplara verin.
PowerShell betiklerini dijital olarak imzalayarak çalıştırmayı değerlendirin.
Start-Transcriptile oturum kayıtlarını tutarak denetlenebilirliği artırın.Uzaktan çalıştırılan komutları mümkün olduğunca sınırlı yetkili hesaplarla yürütün.
Düzenli olarak PowerShell modüllerini (
Update-Module) ve işletim sistemini güncelleyin.
Sonuç
PowerShell 7 sayesinde Pardus, yalnızca bir Linux istemcisi olmaktan çıkıp Windows istemcileri, Windows Server, Active Directory, Hyper-V ve bulut altyapılarını tek bir komut satırından yönetebilen güçlü bir yönetim platformuna dönüşür. Özellikle okul laboratuvarları, kurum ağları ve karma (Windows + Linux) ortamlarda çalışan sistem yöneticileri için PowerShell; otomasyon, uzaktan yönetim ve merkezi denetim açısından vazgeçilmez bir araçtır.
Yorumlar