SCCM ile Script Dağıtımı ve GPO Alternatifleri: Adım Adım Rehber

3 Min Read
SCCM ile Script Dağıtımı & GPO Alternatifleri

Bu yazıda, SCCM ile bir BAT dosyasını nasıl yayınlayabileceğinizi, SCCM ile Script dağıtımı,GPO ile alternatif yöntemleri ve yaşanan olası sorunları kendi tecrübelerimden yola çıkarak paylaşacağım. Sistem yöneticisi olarak sık sık karşılaştığımız durumlardan biri, istemcilerde belirli temizlik veya konfigürasyon işlemlerini otomatikleştirmek.

Neden SCCM veya GPO ile Script Çalıştırma İhtiyacı Doğar?

Örneğin benim senaryomda, kullanıcı makinelerinde eski network mappingleri, proxy ayarları, GPO cache gibi kalıntıları temizlemek için bir BAT dosyası hazırladım. Script manuel çalışıyor ama otomatik olarak logon veya startup sırasında tetiklenmesi gerekiyor. Burada devreye SCCM ve GPO yöntemleri giriyor.

SCCM ile BAT Dosyası Yayınlama

SCCM ile Script Dağıtımı
  1. Öncelikle BAT dosyanızı hazırlayın (benim kullandığım örnek script aşağıda).
  2. BAT dosyasını ve gerekirse ek dosyaları bir klasöre koyun, ardından ZIP yapın.
  3. SCCM’de Application veya Package oluşturun.
    • Application yöntemi daha esnek, “Run as system” gibi ayarları kolayca yönetebilirsiniz.
    • Command line: cmd /c "C:\Temp\NetworkCleanup.bat"
    • Install Behavior: System olarak ayarlayın.
  4. Content’i Distribution Point’e dağıtın, ardından deploy edin.

Script Örneği

@echo off setlocal :: Hedef dizin set TARGETDIR=C:\Temp if not exist "%TARGETDIR%" mkdir "%TARGETDIR%" :: Log dosyası set LOG=%TARGETDIR%\NetworkCleanup.log echo ============================ >> "%LOG%" echo %DATE% %TIME% >> "%LOG%" :: SYSTEM mi yoksa kullanıcı mı kontrolü whoami /groups | find "S-1-5-18" >nul if %errorlevel%==0 ( echo Running as SYSTEM >> "%LOG%" ipconfig /flushdns >> "%LOG%" 2>&1 net use * /delete /y >> "%LOG%" 2>&1 rd /s /q "%windir%\System32\GroupPolicy\Machine" >> "%LOG%" 2>&1 rd /s /q "%windir%\System32\GroupPolicy\User" >> "%LOG%" 2>&1 gpupdate /force /wait:120 >> "%LOG%" 2>&1 ) else ( echo Running as USER >> "%LOG%" net use * /delete /y >> "%LOG%" 2>&1 reg delete "HKCU\Network" /f >> "%LOG%" 2>&1 gpupdate /force /wait:120 >> "%LOG%" 2>&1 ) endlocal exit /b 0

GPO ile Alternatif Yöntemler

Eğer SCCM yoksa ya da daha basit bir yöntem istiyorsanız, Group Policy ile Scheduled Task veya Script dağıtabilirsiniz.

  • Computer Configuration → Preferences → Control Panel Settings → Scheduled Tasks
  • General: Run whether user is logged on or not, Run as SYSTEM seçin.
  • Triggers:
    • At startup (SYSTEM için)
    • At logon (kullanıcı için)
  • Action: Start a program → C:\Temp\NetworkCleanup.bat

Sık Yapılan Hatalar ve Çözümler

  • SCRIPT manuel çalışıyor ama GPO ile çalışmıyor: Genelde path hatası veya izin sorunu. SYSTEM hesabı UNC share’e erişemez, bu yüzden dosyayı önce local’e kopyalayın.
  • Run as SYSTEM seçeneği pasif: GPO’da varsayılan olarak SYSTEM seçili değilse, “NT AUTHORITY\SYSTEM” manuel yazın.
  • Trigger yanlış: Startup → SYSTEM, Logon → USER olacak.

Hangisini Kullanmalı?

Eğer ortamda SCCM varsa, Deployment için SCCM her zaman daha güvenli ve kontrollü bir yöntem. Ama sadece GPO varsa, Scheduled Task yöntemi en garanti çözümdür.

Benzer bir konuda yazdığım SCCM ile Uygulama Dağıtımı Oluşturma ve Paket Dağıtımı? yazısını da okuyabilirsiniz.

Sen de bu yöntemi denedin mi? Fikirlerini yorum olarak yazabilirsin!

Ekstra Kaynaklar:

Bu makaleyi paylaş
Takip et:
Tolga CEYHAN, bilgi teknolojilerini severek takip eder ve BT üzerine hali hazırda aktif olarak çalışmaktadır. 2006 yılından 2017 yılına kadar web tasarım yazılım üzerine çalışmalar yaptım. Şuan ise Windows Sistem ve Sistem Güvenliği alanında çalışmalarımı sürdürmekteyim.
Yorum Yap

Bir yanıt yazın

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

Exit mobile version