GPO Oturum Açma Komut Dosyasını Yalnızca Bir Kez Çalıştırma


GPO oturum açma komut dosyaları, bilgisayar başlangıcında veya kullanıcı oturum açma/kapatma sırasında bir BAT veya PowerShell komut dosyası çalıştırmanıza olanak tanır. Bazı durumlarda, bir yönetici belirli bir komut dosyasının (komut/program) her kullanıcı veya bilgisayar için yalnızca bir kez çalıştırılmasını ve sonraki oturum açmalarda çalıştırılmamasını ister.

Bu görevi çözmek için, bilgisayarda belirli bir bayrağı kontrol eden standart bir oturum açma komut dosyası kullanabilirsiniz. Bu bir kayıt defteri parametresi, diskteki bir metin dosyası vb. olabilir.

Örneğin, bir bilgisayarda ilk kullanıcı oturumunda belirli bir kod bloğunun yalnızca bir kez yürütülmesini istiyorsunuz.

  1. Aşağıdaki BAT dosyasını (corp_user_init.bat) oluşturun ve şuraya kaydedin:

    %SystemRoot%\SYSVOL\sysvol\<domain name>\scripts

    etki alanı denetleyicinizde:

    @echo off
    IF EXIST C:\Users\%UserName%\AppData\app_init.txt GOTO END
    date /t >> C:\Users\%UserName%\AppData\app_init.txt
    time /t >> C:\Users\%UserName%\AppData\app_init.txt
    REM Put your code here, which will be executed once
    :END

    Komut dosyası, ilk kez çalıştırıldığında kullanıcının profilinde küçük bir metin dosyası oluşturur. Komut dosyası GPO aracılığıyla bir sonraki kez çalıştırıldığında, dosyanın bir diskte var olup olmadığını kontrol eder. Varsa, komut dosyası zaten yürütülmüştür ve kodun yeniden çalıştırılmasına gerek yoktur.

  2. Etki alanı Grup İlkesi Yönetim konsolunu açın (

    gpmc.msc

    );

  3. Yeni bir ilke oluşturun ve bunu kullanıcılarla (veya bilgisayarlarla) bir kuruluş birimine bağlayın, ancak daha sonra Geri Döngü İşleme modunu etkinleştirmeniz gerekir;

  4. Kullanıcı Yapılandırması -> Windows Ayarları -> Komut Dosyaları (Oturum Açma/Oturum Kapatma)'a gidin;

  5. Oturum Aç'ı seçin;

  6. Ekle'yi tıklayın ve SYSVOL'de BAT dosyanızın yolunu belirtin (

    \\a-d.site\SysVol\a-d.site\scripts

    );

  7. Bir istemci bilgisayarda Grup İlkesi ayarlarını güncelledikten sonra, komut dosyanız kullanıcı oturum açtığında yürütülecektir. Bir kullanıcının profilinde app_init.txt dosyasını başarıyla oluşturduğundan emin olun.

    Komut dosyası içeren GPO uygulanmadıysa gpresult aracını ve GPO Neden Uygulanmaz makalesinde açıklanan sorun giderme yöntemlerini kullanın.

  8. Bir sonraki kullanıcı bir bilgisayarda oturum açtığında, ana komut dosyası kodu çalıştırılmayacaktır. Bu nedenle, komut dosyası aslında kullanıcıya yalnızca bir kez uygulanır.

GPO kullanarak bir betiği yalnızca bir kez çalıştırmanın başka bir yolu da Görev Zamanlayıcı'da tek seferlik bir görev oluşturmaktır.

  1. Betik dosyanızı (bir BAT dosyası veya bir PowerShell betiği olabilir) etki alanı denetleyicisindeki Sysvol klasörüne kaydedin (

    \\<your_domain_name>\SysVol\<your_domain_name>\scripts

    );

  2. Yeni bir GPO oluşturun, onu kullanıcının OU'suna bağlayın ve ayarlarını açın;

  3. Tercihler -> Denetim Masası Ayarları -> Zamanlanmış Görev -> Yeni -> Acil Görev (en az Windows 7) seçeneğine gidin;

  4. Görev adını belirtin;

  5. Eylemler sekmesini açın, Yeni'yi tıklayın ve SYSVOL'deki komut dosyanızın tam UNC yolunu belirtin;

  6. Ardından, Ortak sekmesine gidin ve Bir kez uygula ve yeniden uygulama seçeneğini işaretleyin;

  7. Bu görev, bir bilgisayarda ilk kullanıcı oturumunda yalnızca bir kez çalışır.

PowerShell betiklerini bir GPO aracılığıyla çalıştırmak istiyorsanız, PowerShell betiği yürütme ilkesini yapılandırmanız veya

-ExecutionPolicy Bypass

seçeneği (buradaki bir örneğe bakın).

İlgili makaleler