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 wget apt-transport-https software-properties-common gpg

Microsoft Deposu Eklenmesi

Microsoft resmi deposunu ekleyelim.

Anahtar:

wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb

Kurulum:

sudo dpkg -i packages-microsoft-prod.deb

Sonra

sudo apt update

PowerShell Kurulumu

sudo apt install powershell

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

CmdletGörev
Get-Processİşlemleri listeler
Get-ServiceServisleri gösterir
Get-EventLogLogları gösterir
Get-WinEventYeni log sistemi
Get-ChildItemDosyalar
Get-ItemDosya bilgisi
Copy-ItemKopyalama
Remove-ItemSilme
Test-ConnectionPing
Get-NetIPAddressAğ bilgisi
Get-ComputerInfoSistem bilgisi
Restart-ComputerYeniden başlat
Stop-ServiceServis durdur
Start-ServiceServis 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-Transcript ile 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.

Bu makalenin devamı niteliğinde şu konular da ayrıntılı olarak ele alınabilir:

  1. Pardus'tan PowerShell Remoting (SSH) ile Windows Yönetimi – 50 Uygulamalı Senaryo

  2. PowerShell ile Active Directory Yönetimi (100+ Komut ve Örnek)

  3. PowerShell Betik Programlama (Script) Eğitimi – Başlangıçtan İleri Seviyeye

  4. PowerShell ile Windows Güvenliği ve Olay Günlüğü (Event Log) Analizi

  5. PowerShell ile Toplu Bilgisayar Yönetimi ve Envanter Otomasyonu


Bölüm 1: Pardus Üzerine PowerShell Kurulumu

Pardus 21 ve 23, Debian (11/12) altyapısını kullanır. Bu nedenle Microsoft'un resmi Debian paket depolarını kullanarak kurulumu güvenli bir şekilde gerçekleştirebiliriz.

1.Bağımlılıkları Yükleyin:İndirme ve sertifika araçları.


Öncelikle sistem depolarınızı güncelleyin ve dışarıdan paket eklemek için gerekli temel araçları kurun. Terminali açıp şu komutları girin:



sudo apt update

sudo apt install -y curl gnupg apt-transport-https wget

 


2.Microsoft Depo Anahtarını Ekleyin:Debian 11 reposu kullanılır.

Microsoft'un güvenilir paket imza anahtarını ve depo yapılandırmasını sisteminize indirin ve kurun:



wget -q https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb

 


3.PowerShell'i Kurun:Paket listelerini güncelleyip yüklemeyi tamamlayın.

Yeni eklenen Microsoft deposunu sisteme tanıtmak için listeyi güncelleyin ve PowerShell'i kurun:



sudo apt update

sudo apt install -y powershell

 


Kurulum tamamlandıktan sonra terminale pwsh yazarak Pardus üzerinde PowerShell ortamına geçiş yapabilirsiniz. Sürüm bilgisini kontrol etmek için $PSVersionTable komutunu kullanabilirsiniz.


Bölüm 2: Windows Hedef Makineyi Hazırlama

Pardus'tan Windows makinesine komut gönderebilmek için hedeflenen Windows sisteminde SSH sunucusunun aktif olması ve varsayılan bağlantı kabuğunun PowerShell olarak ayarlanması gerekir.


Aşağıdaki işlemleri yöneteceğiniz Windows makinesinde, PowerShell'i Yönetici Olarak Çalıştırarak (Run as Administrator) yapmalısınız.


1.OpenSSH Sunucusunu Kurun:Windows'un yerleşik özelliğini aktifleştirin.

Aşağıdaki komut, Windows'un isteğe bağlı özellikleri arasından OpenSSH Server'ı indirip kurar:



Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

 


2.SSH Servisini Başlatın ve Otomatiğe Alın:Makine yeniden başladığında aktif kalması için.

SSH servisinin hemen çalışmasını ve bilgisayar her açıldığında otomatik başlamasını sağlayın:


Start-Service sshd

Set-Service -Name sshd -StartupType 'Automatic'

 


3.Varsayılan SSH Kabuğunu PowerShell Yapın:Bağlantı sağlandığında CMD yerine PS açılması için.


Pardus'tan bağlandığınızda doğrudan PowerShell komut setine düşmek için Windows Kayıt Defteri'ne (Registry) şu girdiyi ekleyin:



New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

 


(Not: Eğer Windows makinesinde PowerShell 7 kuruluysa, Value yolunu C:\Program Files\PowerShell\7\pwsh.exe olarak değiştirebilirsiniz.)


Güvenlik duvarınızın (Windows Defender Firewall) 22 numaralı porta (TCP) izin verdiğinden emin olun. OpenSSH Server kurulduğunda bu kural genellikle otomatik olarak eklenir.


Bölüm 3: Pardus'tan Windows'a Bağlanma ve Yönetim

Her iki sistem de hazır olduğuna göre, Pardus makinenizden Windows sunucunuza ilk uzak oturumunuzu başlatabilirsiniz.

  1. Pardus terminalinizi açın ve PowerShell'i başlatın:


  2. pwsh

  3.  

  4. Windows makinesine SSH tabanlı bir PowerShell oturumu açmak için Enter-PSSession komutunu -HostName parametresi ile kullanın. (Klasik WinRM bağlantılarında -ComputerName kullanılırken, SSH bağlantılarında -HostName kullanılır).


  5. Enter-PSSession -HostName 192.168.1.50 -UserName Administrator


  6. (Buradaki 192.168.1.50 yerine Windows makinesinin IP adresini, Administrator yerine yetkili Windows kullanıcı adınızı yazın.)

  7. İlk bağlantıda SSH parmak izini (fingerprint) kabul etmeniz istenecek, yes yazıp onayladıktan sonra Windows yöneticinizin şifresini girin.

Bağlantı başarılı olduğunda, terminalinizin başındaki imleç [192.168.1.50]: PS C:\Users\Administrator\Documents> şeklinde değişecektir. Artık Get-Process, Restart-Service, Get-EventLog gibi tüm Windows PowerShell komutlarını doğrudan Pardus üzerinden Windows makinesinde çalıştırabilirsiniz. Uzak oturumdan çıkıp Pardus'a geri dönmek için Exit-PSSession yazmanız yeterlidir.

 

Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu