Pencereleri kapatırken çalıştırılacak bir görev nasıl zamanlanır


86

Windows XP'de, pencereleri kapattığınızda çalışacak bir görevi nasıl zamanlarsınız? Öyle ki, pencereleri her kapattığımda c # ile yazdığım basit bir komut satırı programını çalıştırmak istiyorum. Zamanlanmış görevlerde, bilgisayarım kapandığında bu görevi gerçekleştirmek için bir seçenek görünmüyor.

Yanıtlar:


92

Gpedit.msc'yi yürütün (yerel Politikalar)

Bilgisayar Yapılandırması -> Windows ayarları -> Komut Dosyaları -> Kapat -> Özellikler -> Ekle


28
Bir toplu komut dosyasının Logoff'ta çalışmasını istiyorsanız, .bat dosyasına doğrudan başvurmanın işe yaramadığını buldum. Kullandığım Ancak, C:\Windows\System32\cmd.exeolarak Senaryo adı ve /C C:\path\to\batch\script.batsıra Senaryo Parametreleri , öyle.
Dan Stevens

6
UYARI: Hızlı önyükleme kullanılırken grup ilkesi başlatma ve kapatma komutları yürütülmez (Windows 8 ve sonrasında varsayılan olarak etkindir). Bu durumda, yalnızca yeniden başlatma veya zorla kapatma (komut isteminden) bilgisayarı gerçekten kapatır. Diğer tüm durumlarda (başlatma menüsü kapatılması), bilgisayar çekirdeği hazırda bekletilir ve önyükleme sırasında yeniden açılır ve GPO başlatma ve kapatma komutları yok sayılır.
voji

@voji: Bu, Windows Server için de geçerli mi?
sampathsris

yeniden başlatmaya ne dersin?
dangalg

bunlar Sunucu Çekirdeği 1909'da hiç çalışmıyor gibi görünüyor
gordy

41

Dan Williams'ın cevabına ek olarak, bir Başlatma / Kapatma komut dosyası eklemek istiyorsanız , Bilgisayar Yapılandırması altında Windows Ayarlarını aramanız gerekir . Bir Oturum Açma / Oturum Kapatma komut dosyası eklemek istiyorsanız , Kullanıcı Yapılandırması altında Windows Ayarlarını aramanız gerekir .

Bu bilgilerle birlikte Dan'in söylediklerini yinelemek için,

Başlatma / Kapatma için:

  1. Gpedit.msc'yi çalıştırın (Yerel Politikalar)
  2. Bilgisayar Yapılandırması -> Windows Ayarları -> Komut Dosyaları -> Başlatma veya Kapatma -> Özellikler -> Ekle

Oturum Açma / Oturumu Kapatma için:

  1. Gpedit.msc'yi çalıştırın (Yerel Politikalar)
  2. Kullanıcı Yapılandırması -> Windows Ayarları -> Komut Dosyaları -> Oturum Açma veya Oturumu Kapat -> Özellikler -> Ekle

Kaynak: http://technet.microsoft.com/en-us/library/cc739591(WS.10).aspx


2
Bu daha iyi cevap. GPEditor'ı açtığınızda, açıkladığınız gibi iki düğüm gösterir. Her iki düğümün de bir Windows Ayarları seçeneği olduğundan, kabul edilen cevap, cevabınızdan daha az nettir. Bahşiş için teşekkürler. Çok yararlı.
Seth Spearman

34

Görev Zamanlayıcı'yı kullanmayı tercih edenler için, görevi Olay Görüntüleyicideki Sistem günlüğünde 1074 olayı günlüğe kaydedildikten sonra çalışacak şekilde ayarlayarak, bir yeniden başlatma / kapatma başlatıldıktan sonra çalıştırılacak bir görev zamanlamak mümkündür. Ancak, yalnızca çok kısa görevler için iyidir ve sistem yeniden başlatıldığı / kapatıldığı sürece çalışacaktır, bu genellikle yalnızca birkaç saniyedir.

  • Görev Zamanlayıcı'dan:

    Göreve başlayın: Bir olay
    günlüğünde: Sistem
    Kaynağı: USER32 Olay
    Kimliği: 1074

  • Komut isteminden:

    schtasks / create / tn "taskname" / tr "görev dosyası" / sc onevent / ec system / mo * [system / eventid = 1074]

Yorum: / ec seçeneği Windows Vista ve üzeri sürümlerde mevcuttur. (teşekkür ederim @ t2d)

Lütfen görev durumunun şunlar olabileceğini unutmayın:

Kullanıcı ağda oturum açmadığı için talep edilen işlem gerçekleştirilemedi. Belirtilen hizmet mevcut değil. (0x800704DD)

Ancak, çalışmadığı anlamına gelmez.


Bahşiş için teşekkürler! @Oz, bu yeniden başlatmanın yanı sıra kapatmada da çalışır mı? Kabına çalışıyorum dava Windows Update güçleri bir yeniden başlatma ve ...
Erik eidt

Evet, çünkü bu olay yeniden başlatma / kapatma sırasında günlüğe kaydediliyor.
Oz Edri

Lütfen argümanın /ec systemvar olmadığını, ancak çağrıldığını unutmayın /ru system. bkz support.microsoft.com/en-us/kb/814596#bookmark-4
T2D

@ t2d, / ec daha yeni sürümlerde varken, / ru tamamen farklı bir şeyi ifade eder. EC, bir olay kanalı belirlemenize izin verirken, ru başka bir kullanıcı olarak çalışmanıza izin verir. Yine de yorumunuz için teşekkür ederim. Gönderimi buna göre düzenleyeceğim.
Oz Edri

1
Örneğinizdeki değiştiricide bir yazım hatası var. O olmalı ... /mo *[system/eventid=1074]değil,.../mo *[system/evendid=1074]
TESTWORKS

4

Bir geçici çözüm, programı çalıştırmak için basit bir toplu iş dosyası yazmak ve ardından bilgisayarı kapatmak olabilir.

Komut satırından kapatabilirsiniz - böylece komut dosyanız oldukça basit olabilir:

c:\directory\myProgram.exe
C:\WINDOWS\system32\shutdown.exe -s -f -t 0

4

GPEdit.MSC'yi çalıştırırsanız, Bilgisayar Yapılandırması -> Windows Ayarları -> Komut Dosyaları'na gidebilir ve başlatma / kapatma komut dosyaları ekleyebilirsiniz. Bunlar basit toplu iş dosyaları veya hatta tam gelişmiş EXE'ler olabilir. Aynı araçta oturum açma ve kapatma komut dosyaları için kullanıcı yapılandırmalarını da ayarlayabilirsiniz. Bu araç, WIndows XP Home'da mevcut değildir.




1

Yapmanızı önerebileceğim şey, .bat dosyası için bir kısayol oluşturmaktır (örneğin masaüstünüzde) ve bilgisayarınızı kapatmak (ve .bat dosyasını çalıştırmak) istediğinizde oluşturduğunuz kısayolu tıklayın. Bunu yaptıktan sonra, .bat dosyasını düzenleyin ve bu kod satırını sonuna veya gerektiği yere ekleyin:

c:\windows\system32\shutdown -s -f -t 00

Bu ne yapıyor

  1. Kapatma işlemini çalıştırır
  2. Bir uyarı görüntüler
  3. Tüm çalışan işlemleri durmaya zorlar
  4. Hemen yürütür

1

Windows 10 Pro'da toplu iş dosyası kaydedilebilir; cmd.exe'yi kaydetme ve bat dosyasını param olarak belirleme geçici çözümü gerekli değildir. Bunu az önce yaptım, hem bir kapatma betiği hem de bir başlangıç ​​(önyükleme) betiği kaydettirdim ve işe yaradı.


0

Burada açıkladığım gibi benim için çalışmasını sağlamak için "Grup ilkesi komut dosyaları için maksimum bekleme süresini belirtin" ve "Çalıştırılırken kapatma komut dosyalarındaki talimatları göster" seçeneğini de etkinleştirmem gerekiyordu .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.