Uruchamianie pliku wsadowego z Harmonogramu zadań bez zalogowania użytkownika


10

Próbuję uruchomić plik wsadowy w systemie Windows 7 z Harmonogramu zadań. Mogę dobrze uruchomić plik wsadowy, jeśli uruchomię go z wiersza polecenia.

Jeśli uruchomię go z Harmonogramu zadań, aby uruchamiał się tylko wtedy, gdy użytkownik jest zalogowany, zadanie uruchomi się bez żadnych problemów. Jednak gdy działa, gdy użytkownik nie jest zalogowany, Harmonogram zadań wygląda tak, jakby uruchamiał plik, ale nic się nie dzieje.

Próbowałem zmienić plik wsadowy na inny niż następujący wiersz, aby upewnić się, że nie jest to spowodowane zawartością pliku wsadowego:

echo "success" >> c:\temp\test.log

i to nie działa. Jakieś pomysły? Mam go uruchamiany z najwyższymi uprawnieniami i kontem administratora, który ma pełne uprawnienia do pliku wsadowego i folderu, w którym plik jest zapisywany.


Jakiego konta używasz do uruchomienia zadania? Jakie wyzwalacze ustawiłeś?
camilohe,

Spróbuj uruchomić zadanie jako konto usługi systemowej.
SamAndrew81,

Odpowiedzi:


20

ZADANIE HARMONOGRAMU: ZAPLANOWANY SKRIP SERII NIE DZIAŁA

Właściwości harmonogramu zadań. . .

Z systemu Windows Task Schedulerw pracy Properties (patrz większość zrzutów ekranu na dole) w. . .

  • 1. General kartę, upewnij się, że poniższe opcje są zaznaczone / zaznaczone lub niezaznaczone, tak jak pokazano na ekranie drukowania A

    • Odznacz Run only when user is logged on
    • Czek Run whether user is logged on or not
    • Czek Run with the highest privileges
  • 2. Conditions Zakładka upewnić się, że są poniżej opcji wybrać , zaznaczone lub odznaczone tak jak pokazano na Print Screen B

    • Czek Wake the computer to run this task
  • 3. Actions tab, kliknij Editi upewnij się, że Start in (optional)jest ustawiony dokładnie tak, jak pokazano w poniższym przykładzie ( NIE umieszczaj wokół niego podwójnych cudzysłowów) dla pełnej ścieżki wskazującej, gdzie znajduje się skrypt wsadowy BEZ ostatniego ukośnika odwrotnego ” \Drukuj ekran C


UWAGI DOTYCZĄCE BEZPIECZEŃSTWA

  • Po naciśnięciu OK( 2. powyżej) powinien zostać wyświetlony monit o podanie poświadczenia, aby uruchomić to jako, a to poświadczenie będzie wymagało dostępu do EXECUTEpliku wsadowego tam, gdzie on istnieje, i będzie również wymagało dostępu do wykonywania dowolnego pliku wsadowego które napisałeś.

  • Najlepszym rozwiązaniem może być skonfigurowanie statycznego konta użytkownika usługi / serwera proxy dla tego procesu, a następnie użycie jego poświadczeń do uruchomienia procesu. Musisz upewnić się, że jego hasło jest silne i ustawione, aby nigdy nie wygasało - i musi mieć dostęp do EXECUTEpartii i uruchamiać wszystko, co jest uruchomione, oraz wszelkie polecenia i zasoby. wykorzystuje również.

  • Wygląda na to, Run whether user is logged on or notże MUSISZ zaznaczyć opcję Run with highest privileges, aby faktycznie działała zgodnie z oczekiwaniami z Harmonogramu zadań.

Sprawdzanie błędów

  • Jeśli występuje problem z rzeczywistym skryptem wsadowym, ale Harmonogram zadań systemu Windows faktycznie go uruchamia, aby go uruchomić, ale błędy logiki skryptu wsadowego są wyłączone itp. Z jakiegokolwiek powodu, Harmonogram zadań może nie zobaczyć tego niepowodzenia na tym poziomie. Z perspektywy (domyślnie przez większość czasu) wykonuje on plik wsadowy, o ile tylko może go wykonać i ma do tego dostęp, jego zadanie jest wykonywane pomyślnie.

  • Dodaj sprawdzanie błędów lub logowanie do logiki skryptu wsadowego, aby wychwytywać (lub rozwiązywać problemy ) na tym poziomie, w tym upewnić się, że kontekst bezpieczeństwa, który wykonuje harmonogram wsadowy, ma odpowiedni dostęp do poleceń, zasobów itp. Uruchamianych przez skrypt wsadowy.


Uwagi dotyczące zasad grupy

SPRAWDŹ POLITYKĘ GRUPY I ZALOGUJ SIĘ JAKO ZEZWOLENIE NA PRACĘ

Odpowiedź: W systemie Windows ten przywilej jest przyznawany za pomocą lokalnych lub domenowych zasad bezpieczeństwa . Aby to zrobić za pomocą lokalnych zasad bezpieczeństwa , wykonaj następujące kroki.

  1. W Panelu sterowania otwórz Narzędzia administracyjne , a następnie Zasady zabezpieczeń lokalnych .
  2. Pod Ustawieniami zabezpieczeń otwórz Zasady lokalne i zaznacz Przypisanie praw użytkownika .
  3. Zlokalizuj Zaloguj się jako zadanie wsadowe . Otwórz właściwości i dodaj użytkowników, którzy potrzebują tego prawa.
  4. Po zakończeniu zapisz zmiany i zamknij okno Ustawienia zabezpieczeń lokalnych .

Twoje zmiany powinny wejść w życie natychmiast. Aby wprowadzić zmiany w Polityce bezpieczeństwa domeny, na kontrolerze domeny użyj narzędzia Polityka bezpieczeństwa domeny w Panelu sterowania


Logika skryptów wsadowych z mapowanymi dyskami lub pełną ścieżką UNC i problemy. . .

Jeśli skrypt odwołuje się do zmapowanego dysku sieciowego, ale tego chcesz Run whether the user is logged on or not, to w tym kontekście mapowanie dysku może nie istnieć, aby proces wsadowy mógł wykonać to, czego się spodziewano.

Jeśli to możliwe, użyj UNCścieżek w logice skryptu wsadowego zamiast litery dysku zamapowanego, aby uniknąć problemów. W przeciwnym razie może być konieczne użycie PUSHD \\ServerName\ShareNamena początku procesu wsadowego, a następnie użycie POPDna końcu procesu wsadowego. Możesz zmapować dysk NET USE X: \\ServerName\ShareNamena początku procesu wsadowego, a następnie odłączyć dysk NET USE X: /DELETEprzy końcu procesu wsadowego.


INNE

  • MS HOTFIX (KB977353): Element preferencji Zadanie natychmiastowe zasad grupy nie działa na komputerze klienckim z systemem Windows 7 lub Windows Server 2008 R2

  • Spójrz na kartę zaplanowanego zadania Settingsi opcję wymienioną jako Stop the task if it runs longer than:. Jeśli ta opcja jest zaznaczona, a przedział czasu jest krótszy niż uruchomiony skrypt, Harmonogram zadań zabije go wcześnie, a zatem możesz nie uzyskać oczekiwanych rezultatów. Jest to coś innego do sprawdzenia podczas rozwiązywania problemów na wszelki wypadek.

    wprowadź opis zdjęcia tutaj

  • Po Triggerswybraniu Editopcji na karcie zaplanowanego zadania pamiętaj, aby ustawić Start:datę i godzinę wartości, która NIE została jeszcze przekazana. Upewnij się, że data i godzina są ustawione na wartość o wartości w przyszłości . W przeciwnym razie możesz zauważyć, że zadanie stwierdza, że ​​zostanie zaplanowane do uruchomienia w następnym zaplanowanym czasie, tak jak można się spodziewać; nie jest on jednak wykonywany przez Harmonogram zadań, ani karta Harmonogram zadań nie Historypokazuje, że jest on kiedykolwiek wykonywany (ponieważ tak nie jest). Po prostu edytuj wyzwalacz i zaktualizuj go o przyszłą datę i / lub godzinę, aby rozwiązać ten problem, jeśli występuje.

    wprowadź opis zdjęcia tutaj


DRUKUJ EKRANY

Drukuj ekran A

wprowadź opis zdjęcia tutaj

Drukuj ekran B

wprowadź opis zdjęcia tutaj

Drukuj ekran C

wprowadź opis zdjęcia tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.