2026-10-20

VS Code ve powershell remoting

Uzak bir bilgisayara

Enter-PSSession -Computername sunucu01

ile bağlanıp çalışıyorum. Bazen uzaktaki bilgisayarda bir metin dosyasını düzenlemek istiyorum. Yeni çıkan edit aracı çok güzel, ama powershell remoting ile çalıştıramadım. Üstelik de sunucularda yok.

Bu işe bir çözüm ararken farkettim [1, 2] ki uzak bilgisayardaki bir dosyayı yerel bilgisayarda kurulu VS Code ile düzenleyebiliyorum.

Tek yapmam gereken VS Code'un kendi terminalinden uzaktaki bilgisayara bağlanıp

psedit dosya.ps1

komutunu vermek. Uzaktaki dosya çalıştığım bilgisayarda geçici bir klasöre aktarılıp VS Code ile açılıyor. Kaydettiğimde de tekrar uzaktaki bilgisayara aktarılıyor.

Burada VS Code'un powershell terminali konusu biraz kritik. VS Code'un powershell eklentisi yüklü olmalı. Bazen VS Code penceresinin içinde birden fazla powershell terminali açılmış olabiliyor. Bu durumda hangisinin eklentiye ait olan terminal olduğunu görebilmek için

$host.name

komutunun çıktısının

Visual Studio Code Host

olması gerek.

2026-10-19

flatpak uygulamalarını terminalden çalıştırma

Windows'da bir dosyayı VS Code ile açmak için

code dosya.txt

demek yeterli. Fedora'da VS Code'un açık kaynaklı sürümünü, flatpak ile kurdum; code-oss. Ama terminalden ne code ne de code-oss kullanarka doğrudan ulaşamıyorum. Flatpak ile kurulan uygulamarlın çalışması için

flatpak run com.visualstudio.code-oss

yapmak gerekiyor.

Daha kısa bir yol olarak bir alias oluşturabilirim. Bash için .bashrc dosyasına, zsh için .zshrc dosyasına öyle bir satır gerekli:

alias code='flatpak run com.visualstudio.code-oss'

Bunun sonucunda her yerden

code dosya.txt

yazmak yeterli.

Başka bir seçenek de flatpak export klasöründeki dosyaya kısayol oluşurmak. Flatpak kurulumu export konumu

~/.local/share/flatpak/exports/bin/

veya

/var/lib/flatpak/exports/bin

olabilir. Henüz yoksa ~/.local/bin klasörü oluşturup içine şu şekilde bir kısayol oluşurabilirim.

ln -s /var/lib/flatpak/exports/bin/com.visualstudio.code-oss ~/.local/bin/codeoss

2026-10-17

Siber savaşlar

El Cezire (Al Jazeera) youtube kanalı, yayınladığı bir videoda topluca siber saldırıya maruz kaldıklarını açıkladı. İlginç olan şu ki kimse ne bir zararlı yazılım yüklemişti ne de gönderilen mesajların içindeki kötü niyetli bir bağlantıya tıklamıştı. Tek yaptıkları masum haber sitelerinde gezinmekti.

El Cezire'den Muhammet Hasan'ın anlattıklarına göre telefonlara ve bilgisayarlara kurulan zararlı yazılım bir İsrail firması olan Candiru tarafından geliştirilmiş. Kelimenin tam anlamıyla kurulduğu cihazı tam olarak ele geçiren ve tespit edilmesi çok zor olan bu zararlı yazılımın sisteme bulaşması için zararlı içeriği gizleyen bir reklamın olduğu sayfada dolaşmak yeterli. Daha önce olduğu gibi hedef kitlenin dışında başka sistemlere de kurulmuş olması olasılıklar dahilinde. Ama açıklamayı yapan Muhammet Hasan'a göre hedef kitlenin seçimi daha "cerrahi bir müdahale ile" yapılmış. Bu noktada işe başka bir İsrail firması devreye giriyor: DiscoverTech. El Cezire çalışanlarının IP adresleri tespit edilmiş ve zararlı yazılım bu şekilde "noktasal" olarak kurulmuş.

El Cezire teknoloji takımı güzel bir iş çıkarıp gelen şikayetleri dikkate almış ve Kanada merkezli güvenlik şirketi Citizen Lab ile çalışarak bu işi ortaya çıkarmışlar. Zaten tetikte oldukları ve çok dikkatli davrandıkları söyleniyor. Ama buna rağmen basit bir "gezinme" bile buna sebep olmuş.

Stuxnet ve Pegasus gibi gelişmeler zaten kan dondurucuydu. Buna rağmen bu gelişme beni yine de şaşırttı.

---

https://threatlandscape.io/blog/citizen-lab-adfection-discover-tech-targeted-ads-zero-click-spyware
https://www.theguardian.com/technology/2026/oct/15/israeli-firm-digital-ads-enabling-installation-of-zero-click-spyware-researchers-say
https://www.reuters.com/legal/litigation/israeli-firm-used-online-ads-run-vast-spy-operation-researchers-say-2026-10-15/
https://citizenlab.ca/research/how-discover-tech-turned-targeted-ads-into-a-pipeline-for-spyware/
https://www.instagram.com/p/DemIB5cDgpA/

2026-10-15

Test-Connection -AsJob

Powershell'in ping eşdeğeri Test-Connection ile bir hedefe olan bağlantımı deniyorum.

Test-Connection -Computername 192.168.1.72 -Count 100

Bu şekilde, varsayılan gecikme/bekleme süresi olarak 1 saniye arayla 100 ICMP paketi gönderecek. Yani komutun tamamlanması ~ 100 sn sürecek. Bu cepte.

Bir de bunu arka planda çalıştırmak için kullanılan -AsJob parameteresi var. Bunu kullanarak bu işlemi arka planda gerçekleştirmek istedim.

Test-Connection -Computername 192.168.1.72 -Count 100 -AsJob

Ekrana arka planda çalışacak görevin kimliğini ve adını yazdı.

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
5      Job5            WmiJob          Running       True            .                    Test-Connection

Daha birkaç saniye geçtikten sonra Get-Job ile duruma baktım ve görev tamamlanmış:

Get-Job -Id 5
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
5      Job5            WmiJob          Completed     True            .                    Test-Connection

Emin olamadım, 100 tane ICMP paketi gerçekten gönderilmiş midir?

Wireshark'ı açıp ICMP filtresi ile tekrar başlattım ve evet, 100 ICMP echo request, 100 tane de echo reply ile 200 paket yakaladı. İlk paketin gönderilmesinden son paketin alınmasına kadar geçen süre de 1 saniyeden çok daha kısaydı. Bu gerçeği belgeleyen bir kaynak bulamadım ama konu çevrim içi ortamlarda konuşulmuş (1, 2).

Ne kadar sürdüğünü bulmak için Measure-Command kullanılabilir.


Measure-Command { Test-Connection -ComputerName bosbdc10 -Count 10 -Delay 1 -AsJob | wait-Job } | select -ExpandProperty totalmilliseconds 

2026-10-14

System Partition vs Boot Partition

Windows'da işletim sisteminin (yani \Windows klasörünün) yüklü olduğu disk bölümü Boot Partition (önyükleme bölümü) olarak adlandırılır.

EFI verilerinin tutulduğu disk bölümü ise System partition (sistem bölümü) olarak adlandırılır.

Sistemdeki disk bölümlerini ayrıntılı görebilmek için


gcim win32_volume | ? FileSystem | ft Label, DriveLetter, BootVolume, FileSystem, SystemVolume

Bu komutun BootVolume sütununda True olan önyükleme bölümü, SystemVolume sütununda True olan da sistem bölümüdür.

2026-10-04

Powershell'de tarih verisini ayrıştırmak

Powershell'de Get-Date cmdlet'ini kullanarak istediğimiz biçimde tarihi ve saati yazdırabiliyorum.

Get-Date -Format "dd.MM.yyyy HH:mm:ss"
31.12.2026 20:33:45
Get-Date -Format "yyyy-MM-ddTHH-mm-ss"
2026-12-31T20-33-45

Ama string veri tipinden tarih verisini almak için o kadar fazla seçeneğimiz yok. Şöyle yöntemler var:

Get-Date -Date "31.12.2026 20:33:45"
[datetime]"31.12.2026 20:33:45"

ama sistem tarih biçimine uymayan bir yapıyı ayrıştırmıyor. Örneğin benim bilgisayarımda tarih formatını yyyy-MM-dd HH:mm:ss gibi bir biçimde ayarladığım için 16.07.2026 18:45:13 verisini ayrıştırmak mümkün olmadı. Bunun yerine .Net'in ParseExact() metodunu kullandım:


[datetime]::ParseExact(
	"16.07.2026 18:45:13",
    "dd.MM.yyyy HH:mm:ss",
    [Globalization.CultureInfo]::InvariantCulture)

2026-10-03

Fedora altında powershell sorunu

Genelde kullandığım Linux sistemlere de powershell kurmak gibi bir alışkanlığım var. Ama bir süredir yaşadığım bir sorun vardı ve çözümünü buldum.

Gnome terminalde pwsh yazarak geçtiğim powershell içinde yukarı/aşağı ok tuşları ile geçmiş komutlar arasında geçiş yapabiliyorum. Yani PSReadline yüklü. Bunu

gmo -n psreadline

ki bu da şunun kısaltılmışı:

Get-Module -Name PSReadLine

ile de doğruladım. Ama Ctrl+ok tuşları ile kelime atlamalı olarak gezinemiyorum. Her seferinde tek tek ok tuşlarına basarak gitmek zor. Farkettim ki powershell, Emacs edit kipinde çalışıyormuş:

Get-PSReadLineOption | Select-Object EditMode

Bu kipte kelime atlamalı gezinmek için Alt+f (forward, ileriye) ve Alt+b (backward, geriye) tuşları çalışıyor. Ama alışkanlıklar zor değişir. Bunu Windows kipine değiştirmek istedim.

Set-PSReadLineOption -EditMode Windows

Bunun sonucunda küçük bir kazancım daha oldu; tüm satırı silmek için Ctrl+u kısayolunu kullanıyordum, Windows alışkanlığı Esc satırı temizlemiyordu. Artık temizliyor.