E

Windows Aktivasyonunda slmgr.vbs Yerine PowerShell

Yıllardır Windows lisans sorunlarını çözerken ya da lisans durumunu sorgularken siyah komut istemi ekranına refleks olarak yazdığımız slmgr.vbs komutu nihayet emekliye ayrılıyor. Çoğu kullanıcının hatta birçok sistem yöneticisinin bile henüz fark etmediği bu köklü değişim, Microsoft’un Windows yönetim araçlarını modernleştirme operasyonunun sadece küçük bir parçası aslında.

Hızlı Özet

  • Microsoft, eski VBScript tabanlı aktivasyon yönetimini sistemden kaldırmaya hazırlanıyor.
  • Komut satırındaki emektar slmgr.vbs yerine artık PowerShell komut setleri tercih edilecek.
  • Geçiş süreci otomasyon süreçlerini ve kurumsal yönetim script’lerini doğrudan etkileyecek.

Öne Çıkan Bilgiler

Eski Komutuslmgr.vbs /dli
Yeni PowerShell KarşılığıGet-CimInstance SoftwareLicensingProduct
Eski Durum Sorgulamaslmgr.vbs /xpr
Yeni Durum SorgulamaGet-CimInstance SoftwareLicensingProduct | Select-Object LicenseStatus
Eski Lisans Anahtarı Yüklemeslmgr.vbs /ipk
Yeni Lisans Anahtarı YüklemeInvoke-CimMethod -MethodName InstallProductKey

Neden Şimdi ve Bu Değişim Ne Anlama Geliyor?

Bilgisayar dünyasında bazı alışkanlıklar yirmi yıldan uzun süredir bizimle yaşar. VBScript teknolojisi de tam olarak bu kategoride yer alıyor; yani artık günümüz güvenlik ve performans standartlarının gerisinde kalan, oldukça yaşlı bir altyapıdan bahsediyoruz. Microsoft, işletim sistemindeki eski kod kalabalığını temizlemek ve modern güvenlik protokollerini uygulamak adına yıllardır VBScript bileşenlerini teker teker devre dışı bırakıyor. Aktivasyon betiklerinin bu temizlik operasyonuna dahil olması aslında kaçınılmaz bir sondu.

Ama bu gelişmenin madalyonun diğer yüzünde barındırdığı ufak bir dezavantaj var: Kurumsal şirketlerde binlerce bilgisayarı aynı anda yöneten BT uzmanları, on yıldır sorunsuz çalışan otomasyon script’lerini yeniden yazmak zorunda kalacak. Güvenlik adına atılan bu adım, kısa vadede yöneticilerin iş yükünü hatırı sayılır oranda artıracak gibi görünüyor.

Eski Komutlar ve Yeni Karşılıkları Neler?

Günlük kullanıcılar için lisans durumu sorgulamak genellikle karmaşık bir süreç değildir ama iş sunucu yönetimine veya toplu lisanslamaya geldiğinde durum değişir. PowerShell tabanlı yönetim, yöneticilere çok daha detaylı hata ayıklama ve nesne tabanlı veri çıktısı sunuyor. Aşağıdaki tabloda, uzun süredir ezbere bildiğimiz eski komutların modern dünyadaki karşılıklarını görebilirsiniz.

Eski Komut (slmgr.vbs)Yeni PowerShell Karşılığı
slmgr.vbs /dliGet-CimInstance SoftwareLicensingProduct
slmgr.vbs /xprGet-CimInstance SoftwareLicensingProduct | Select-Object LicenseStatus
slmgr.vbs /ipk <Anahtar>Invoke-CimMethod -MethodName InstallProductKey
slmgr.vbs /atoInvoke-CimMethod -MethodName Activate

Tablodan da anlaşılacağı üzere, yeni yöntem biraz daha uzun ve karmaşık sözdizimine sahip görünse de, arka planda sağladığı esneklik ve PowerShell’in güçlü betikleme yetenekleri bu zahmete kesinlikle değiyor. Artık lisans durumunu sadece ekrana yazdırıp geçmiyorsunuz; onu doğrudan bir nesne olarak yakalayıp diğer sistem raporlarıyla birleştirebiliyorsunuz.

VBScript Altyapısının Kaldırılmasının Teknik Arka Planı

VBScript, doksanlı yılların sonlarında web ve sistem yönetimi otomasyonu için devrim niteliğinde bir araçtı ancak yazılım güvenliği standartları o zamandan bu yana radikal biçimde değişti. VBScript yorumlayıcısı, işletim sisteminde varsayılan olarak açık geldiğinde kötü amaçlı yazılımlar için saldırganların sıkça kullandığı bir vektör haline gelebiliyordu. Microsoft, Windows 11 sürümleriyle birlikte bu bileşeni isteğe bağlı özellik (FoD – Feature on Demand) haline getirdi ve nihayetinde tamamen kaldırma yoluna gitti.

Eski slmgr.vbs dosyası da doğrudan bu VBScript altyapısına bağımlı olduğu için, ana motor devre dışı bırakıldığında veya sistemden kaldırıldığında çalışamaz hale gelecekti. WMI (Windows Management Instrumentation) ve CIM (Common Information Model) sınıfları üzerinden doğrudan iletişim kurabilen PowerShell ise herhangi bir harici betik yorumlayıcısına ihtiyaç duymuyor. Bu durum, lisans yönetiminin doğrudan çekirdek seviyesindeki standart yönetim API’leri ile konuşmasını sağlıyor.

Kurumsal Otomasyon ve Script Adaptasyonu

Şirket içi ağlarda Active Directory ve Grup İlkesi (GPO) kullanan yöneticiler için oturum açma (login script) veya dağıtım betiklerinde doğrudan cscript slmgr.vbs komutları yer alabiliyor. Bu betiklerin yeni CIM tabanlı PowerShell komutlarıyla güncellenmesi, sadece metin değiştirmekten ibaret değil.

PowerShell komutları nesne tabanlı çalıştığı için, döndürülen sonuçların hata yönetimi (try-catch blokları) ile ele alınması gerekiyor. Eskiden hata kodunu doğrudan konsol çıktısından veya hata seviyesinden (errorlevel) okuyan yöneticiler, artık CimMethod dönüş değerlerini kontrol etmek zorunda. Bu da özellikle büyük ölçekli imaj dağıtımlarında ve toplu anahtar aktivasyon (KMS/MAK) süreçlerinde test aşamalarının titizlikle yürütülmesini zorunlu kılıyor.

Kullanıcıları ve Sistem Yöneticilerini Ne Bekliyor?

Normal bir masaüstü kullanıcısının bu geçişten haberdar olması bile gerekmiyor çünkü güncellemeler arka planda sessizce ilerliyor. Ancak işin mutfağında olanlar için durum tam bir dönüşüm süreci. Yılların alışkanlığı olan o kısayolları ve betikleri hafızadan silip PowerShell mantığına adapte olmak biraz zaman alacak.

Önümüzdeki günlerde forumlarda ve teknik destek sitelerinde “bu komut neden hata veriyor” sorularını çok daha sık göreceğiz. Eski VBS altyapısının tamamen tarihe gömülmesi, Windows ekosisteminin daha güvenli ve modern bir temele oturmasını sağlayacak.

Siz kendi sistemlerinizdeki otomasyonları şimdiden PowerShell’e uyarladınız mı, yoksa hala eski dostunuz slmgr.vbs ile yola devam etmeye çalışanlardan mısınız?

Kaynak: Google Haberler (Windows)

Yazan: Erol

cokmatrak.com editör ekibi tarafından araştırılıp hazırlanmıştır.

Son güncelleme: 11 Eylül 2026

Bu içerik yapay zekâ destekli araçlarla hazırlanmış, yayınlanmadan önce editör tarafından gözden geçirilmiştir.

0
Erol

Erol

Teknoloji üzerine yazıyor.

Yorum yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir