Jak zaplanować zadanie do uruchomienia podczas zamykania systemu Windows

86

Jak zaplanować uruchamianie zadania w systemie Windows XP podczas zamykania systemu Windows. Takich, że chcę uruchomić prosty program wiersza poleceń, który napisałem w c # za każdym razem, gdy zamykam okna. Wydaje się, że w zaplanowanych zadaniach nie ma opcji wykonania tego zadania po wyłączeniu komputera.

Crippeoblade
źródło

Odpowiedzi:

92

Wykonaj gpedit.msc (zasady lokalne)

Konfiguracja komputera -> Ustawienia systemu Windows -> Skrypty -> Zamknij -> Właściwości -> Dodaj

Dan Williams
źródło
28
Jeśli chcesz, aby skrypt wsadowy działał podczas wylogowywania, stwierdziłem, że bezpośrednie odwoływanie się do pliku .bat nie działa. Jednakże, jeśli użyłem C:\Windows\System32\cmd.exejako nazwę skryptu i /C C:\path\to\batch\script.batjak parametry skryptu , to zrobił.
Dan Stevens
6
OSTRZEŻENIE: sekwencje uruchamiania i zamykania zasad grupy nie są wykonywane podczas korzystania z funkcji szybkiego uruchamiania (domyślnie włączona w systemie Windows 8 i nowszych). W tym przypadku tylko ponowne uruchomienie lub wymuszenie zamknięcia (z wiersza poleceń) spowoduje wyłączenie komputera. We wszystkich innych przypadkach (zamykanie menu Start) jądro komputera przechodziło w stan hibernacji i przywracane podczas rozruchu, a sekwencje uruchamiania i zamykania GPO są ignorowane.
voji
@voji: Czy dotyczy to również systemu Windows Server?
sampathsris
co powiesz na ponowne uruchomienie?
dangalg
wydaje się, że nie działają one w ogóle na Server Core 1909
gordy
40

Oprócz odpowiedzi Dana Williamsa, jeśli chcesz dodać skrypt uruchamiania / zamykania , musisz poszukać ustawień systemu Windows w sekcji Konfiguracja komputera . Jeśli chcesz dodać skrypt logowania / wylogowania , musisz poszukać ustawień systemu Windows w sekcji Konfiguracja użytkownika .

Aby więc powtórzyć to, co powiedział Dan z uwzględnieniem tych informacji,

W przypadku uruchamiania / wyłączania:

  1. Uruchom gpedit.msc (zasady lokalne)
  2. Konfiguracja komputera -> Ustawienia systemu Windows -> Skrypty -> Uruchamianie lub zamykanie -> Właściwości -> Dodaj

Do logowania / wylogowywania:

  1. Uruchom gpedit.msc (zasady lokalne)
  2. Konfiguracja użytkownika -> Ustawienia systemu Windows -> Skrypty -> Logowanie lub wylogowanie -> Właściwości -> Dodaj

Źródło: http://technet.microsoft.com/en-us/library/cc739591(WS.10).aspx

Brett Pennings
źródło
2
To jest lepsza odpowiedź. Po otwarciu GPEditor pokazuje dwa węzły, tak jak opisujesz. Ponieważ oba węzły mają opcję Ustawienia systemu Windows, zaakceptowana odpowiedź jest mniej jasna niż twoja odpowiedź. Dzięki za wskazówkę. Bardzo pomocny.
Seth Spearman
34

Dla tych, którzy wolą korzystać z Harmonogramu zadań, można zaplanować uruchomienie zadania po zainicjowaniu ponownego uruchomienia / zamknięcia, ustawiając zadanie tak, aby było uruchamiane po zarejestrowaniu zdarzenia 1074 w dzienniku systemu w Podglądzie zdarzeń. Jednak jest to dobre tylko dla bardzo krótkich zadań, które będą działać tak długo, jak system jest restartowany / zamykany, co zwykle trwa tylko kilka sekund.

  • Z Harmonogramu zadań:

    Rozpocznij zadanie: W
    dzienniku zdarzeń :
    Źródło systemu : USER32
    Identyfikator zdarzenia: 1074

  • W wierszu polecenia:

    schtasks / create / tn "nazwa zadania" / tr "plik zadania" / sc onevent / ec system / mo * [system / eventid = 1074]

Komentarz: opcja / ec jest dostępna w systemie Windows Vista i nowszych. (dziękuję @ t2d)

Pamiętaj, że status zadania może być:

Żądana operacja nie została wykonana, ponieważ użytkownik nie zalogował się do sieci. Podana usługa nie istnieje. (0x800704DD)

Nie oznacza to jednak, że nie działał.

Oz Edri
źródło
Dzięki za wskazówkę! @Oz, czy to będzie działać zarówno przy ponownym uruchomieniu, jak i zamknięciu? Sprawa, którą próbuję
opisać,
Tak, ponieważ to zdarzenie jest rejestrowane przy ponownym uruchomieniu / zamknięciu.
Oz Edri
Zwróć uwagę, że argument /ec systemnie istnieje, ale jest nazywany /ru system. zobacz support.microsoft.com/en-us/kb/814596#bookmark-4
t2d
@ t2d, podczas gdy / ec istnieje w nowszych wersjach, / ru odnosi się do zupełnie innej rzeczy. EC umożliwia określenie kanału zdarzeń, podczas gdy ru pozwala działać jako inny użytkownik. Niemniej jednak dziękuję za komentarz. Odpowiednio zmodyfikuję swój post.
Oz Edri
1
W Twoim przykładzie w modyfikatorze jest literówka. Powinno być ... /mo *[system/eventid=1074], a nie.../mo *[system/evendid=1074]
testworks
4

Jednym z obejść może być napisanie prostego pliku wsadowego do uruchomienia programu, a następnie zamknięcie komputera.

Możesz zamknąć program z wiersza poleceń - więc twój skrypt może być dość prosty:

c:\directory\myProgram.exe
C:\WINDOWS\system32\shutdown.exe -s -f -t 0
Neil Neyman
źródło
4

Jeśli uruchomisz GPEdit.MSC, możesz przejść do Konfiguracja komputera -> Ustawienia systemu Windows -> Skrypty i dodać skrypty uruchamiania / zamykania. Mogą to być proste pliki wsadowe, a nawet pełne pliki EXE. W tym samym narzędziu można również dostosować konfiguracje użytkownika dla skryptów logowania i wylogowania. To narzędzie nie jest dostępne w systemie Windows XP Home.

Kibbee
źródło
1

To, co mogę zasugerować, to utworzenie skrótu do pliku .bat (na przykład na pulpicie), a gdy chcesz zamknąć komputer (i uruchomić plik .bat), kliknij utworzony skrót. Po wykonaniu tej czynności edytuj plik .bat i dodaj ten wiersz kodu na końcu lub w razie potrzeby:

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

Co to jest

  1. Uruchamia proces zamykania
  2. Wyświetla alert
  3. Wymusza zatrzymanie wszystkich uruchomionych procesów
  4. Wykonuje się natychmiast
Matthew Smith
źródło
1

W systemie Windows 10 Pro plik wsadowy można zarejestrować; obejście polegające na rejestrowaniu cmd.exe i określaniu pliku bat jako parametru nie jest potrzebne. Właśnie to zrobiłem, rejestrując zarówno skrypt zamykający, jak i skrypt startowy (rozruchowy) i zadziałało.

Wo'O Ideafarm
źródło
0

Musiałem również włączyć opcję „Określ maksymalny czas oczekiwania na skrypty zasad grupy” i „Wyświetlaj instrukcje w skryptach zamykania systemu podczas ich uruchamiania”, aby działało tak, jak wyjaśnię tutaj .

Roald
źródło