Sistem yöneticileri olarak Grup İlkesi (Group Policy) yönetiminde sıkça karşımıza çıkan iki önemli kavram var: Logon script ve startup script. İlk bakışta benzer gibi görünseler de, aslında bu iki betik türü arasında çok önemli farklar var. Doğru yerde doğru script’i kullanmak, hem güvenlik hem de sistem yönetimi açısından kritik bir rol oynuyor.
Peki bu script’ler tam olarak nedir ve ne işe yarar? Hangisini hangi durumda kullanmalıyız? Bu yazıda bu soruların yanıtlarını sade ve anlaşılır bir şekilde ele alacağım.
Logon Script Nedir?
Logon script, adından da anlaşılacağı gibi bir kullanıcı sisteme oturum açtığında devreye giren komut dosyasıdır. Genellikle kullanıcı özelinde yapılan işlemler için kullanılır. Örneğin:
- Ağ sürücülerinin haritalanması
- Belirli programların başlatılması
- Kullanıcıya özel ayarların yapılması
Bu script’ler kullanıcının yetkileri dahilinde çalışır. Yani bir domain kullanıcısının yapabileceği her şeyi yapabilir; ama sistem düzeyindeki ayarlara müdahale edemez.
Grup İlkesi üzerinden bu script’i tanımlamak için şu yolu izlersiniz:
User Configuration → Windows Settings → Scripts (Logon/Logoff)
Startup Script Nedir?

Startup script ise bilgisayar açıldığında, yani sistem henüz kullanıcı oturumu açmadan önce çalışan bir betiktir. Bu script’ler bilgisayar düzeyinde çalışır ve Local System hesabı yetkileriyle devreye girer. Bu da onlara çok daha geniş bir kontrol alanı sağlar.
Örneğin:
- Bilgisayara yazılım yüklemek
- Sistem hizmetlerini başlatmak veya durdurmak
- Yerel yönetici (local admin) şifresini değiştirmek
- Sistem yapılandırmasını değiştirmek
Gibi işlemler için startup script tercih edilir.
Grup İlkesi’nde şu adresten tanımlanır:
Computer Configuration → Windows Settings → Scripts (Startup/Shutdown)
Örnek PowerShell Komutları
Aşağıda hem logon hem de startup script’lerde kullanılabilecek bazı PowerShell komut örnekleri yer alıyor.
Logon Script Örneği: Ağ Sürücüsü Ekleme
New-PSDrive -Name "Z" -PSProvider "FileSystem" -Root "\\sunucu_adı\paylaşım" -Persist
Bu komut, kullanıcının oturum açtığında Z:
harfine bir ağ sürücüsü bağlamasını sağlar.-Persist
→ Haritalanan sürücünün oturumlar arasında kalıcı olmasını sağlar (Windows Explorer’da da görünür hale getirir).
-Name "Z"
→ Oluşturulacak sürücünün harfidir. Bu örnekte Z:
olarak atanacak.
-PSProvider "FileSystem"
→ Dosya sistemi sağlayıcısını kullanır.
-Root "\\sunucu_adı\paylaşım"
→ Bağlanılacak ağ paylaşım yolunu belirtir. Gerçek bir UNC yolu olmalı (örneğin \\fileserver01\public
).
Startup Script Örneği: Yerel Yönetici Şifresi Değiştirme
net user Administrator YeniSifre123!
Veya PowerShell ile:
$admin = [ADSI]"WinNT://./Administrator,user"
$admin.SetPassword("YeniSifre123!")
Bu komut, sistem açılışında yerel yönetici hesabının şifresini değiştirir. Bu işlem, yalnızca startup script ile mümkündür çünkü sistem seviyesinde yetki gerektirir.
Sık Yapılan Hatalar
Script kullanımı sırasında en çok karşılaşılan hataları aşağıda sıraladık:
1. Yanlış Script Türünü Kullanmak
- Kullanıcıya özel bir işlem için startup script kullanmak (örneğin masaüstü kısayolu eklemek) → Çalışmaz.
- Sistem düzeyinde bir işlem için logon script kullanmak (örneğin admin şifresi değiştirmek) → Yetki hatası verir.
2. Dosya Yolu ve Erişim Hataları
- Script dosyasının ağ üzerinden erişilemediği durumlar
- Script’in bulunduğu klasöre “Authenticated Users” grubunun erişim yetkisi olmaması
3. PowerShell Execution Policy Sorunları
- Script’ler PowerShell tarafından engellenebilir. Bu durumda aşağıdaki komutla politika gevşetilebilir:
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
4. Script’in Hedefe Ulaşmaması
- Script GPO’ya eklense bile, hedef kullanıcıya ya da bilgisayara uygulanmadığı için çalışmayabilir.
- GPO’nun doğru OU (Organizational Unit) altında olduğundan emin olun.
Sonuç: Basit Bir Fark, Büyük Sonuçlar
Logon ve startup script’ler arasındaki fark küçük gibi görünse de, etkileri büyüktür. Yanlış yerde kullanılan bir script, ya hiç çalışmaz ya da güvenlik açıklarına yol açabilir.
Bu nedenle şunu unutmamakta fayda var:
- Logon script → Kullanıcı seviyesinde çalışır
- Startup script → Sistem seviyesinde çalışır
GPO yapılandırmalarınızda bu ayrımı dikkate alarak, hem daha güvenli hem de daha verimli sistem yönetimi sağlayabilirsiniz.