Jeśli masz plik .BAT i próbujesz uruchomić automatyczne uruchamianie za pomocą Harmonogramu zadań w systemie Windows, mógł wystąpić problem, który po prostu nie działa, chyba że ręcznie uruchomisz zadanie.
Stworzyłem plik wsadowy, który usuwa wszystko wewnątrz folderu tymczasowego przy każdym uruchomieniu komputera. Stworzyłem podstawowe zadanie w Task Scheduler i miałem nadzieję na najlepsze. Niestety, nic się nie wydarzyło, gdy uruchomiłem komputer. Po wielu próbach i błędach zorientowałem się, jak uruchomić skrypt.
W tym artykule omówię ustawienia i uprawnienia, które należy dostosować, aby uruchomić plik wsadowy bez interwencji ręcznej.
Krok 1: Sprawdź uprawnienia do plików / folderów
Pierwszym krokiem do rozwiązania tego problemu jest upewnienie się, że konto używane do uruchamiania skryptu w Harmonogramie zadań ma uprawnienia Pełna kontrola do folderu zawierającego skrypt, sam skrypt oraz wszystkie foldery / pliki, które skrypt dotyka podczas uruchamiania.
Na przykład poniżej stworzyłem poniższy skrypt wsadowy:
set folder = "C: \ test" cd / d% folder% dla / F "delims =" %% in ("dir / b ') do (rmdir" %% i "/ s / q || del"% % i "/ s / q)
Zapisałem plik .BAT w folderze Dokumenty. Ścieżka to C: \ Users \ nazwa_użytkownika \ Dokumenty . Poszedłem do C: \ Users \ nazwa użytkownika, kliknąłem prawym przyciskiem myszy w folderze Dokumenty i kliknąłem Właściwości . Następnie kliknąłem kartę Zabezpieczenia .
Jak widać, konto użytkownika Aseem zostało jawnie dodane i otrzymało uprawnienie Pełna kontrola . Teraz musisz zrobić to samo dla folderu zawierającego skrypt i samego skryptu. Nie zakładajcie, że jeśli dajecie uprawnienia do folderu zawierającego skrypt, dobrze jest iść, bo tak nie jest. Na koniec ustaw uprawnienia do plików i folderów, z którymi skrypt będzie wchodził w interakcję.
W moim przypadku musiałem przejść do C: \ test, kliknąć ten folder prawym przyciskiem myszy i dodać tam moje konto użytkownika z uprawnieniami Pełna kontrola. To dość irytujące, że musisz to zrobić, ale jest to jedyny sposób na uruchomienie skryptu.
Uwaga : Konto używane do uruchamiania skryptu musi należeć do lokalnej grupy Administratorzy na komputerze. W moim przypadku konto Aseem jest kontem administratora, a więc częścią lokalnej grupy Administratorzy.
Krok 2: Sprawdź ustawienia harmonogramu zadań
Teraz przejdźmy do Task Scheduler i zmień tam odpowiednie ustawienia. Otwórz Harmonogram zadań i znajdź swoje zadanie w sekcji Aktywne zadania . Powinny być wymienione w porządku alfabetycznym.
Dwukrotnie kliknij na niego i otworzy to samo zadanie w tym samym oknie. Aby edytować zadanie, musisz kliknąć je prawym przyciskiem myszy i wybrać Właściwości .
Jest kilka zakładek i kilka rzeczy musi zostać tutaj sprawdzonych i zmienionych. Po pierwsze, na karcie Ogólne należy sprawdzić konto użytkownika, które jest używane do uruchomienia zadania. W moim przypadku jest to konto Aseem, któremu dawałem wcześniej uprawnienia w systemie plików i które jest częścią grupy Administratorzy na komputerze.
Następnie wybierz opcję Uruchom, czy użytkownik jest zalogowany, czy nie, i wybierz Windows Vista, Windows Server 2008 w polu Konfiguracja dla .
Na karcie Akcje należy wybrać skrypt, kliknąć Edytuj, a następnie dodać ścieżkę do folderu zawierającego skrypt w polu Rozpocznij w (opcjonalnie) . Może się to wydawać niepotrzebne, ale tak nie jest. W moim przypadku umieściłem C: \ Users \ Aseem \ Documents \ w polu.
Teraz kliknij OK, aby zapisać ustawienia. Gdy to zrobisz, może pojawić się okno dialogowe, w którym musisz wprowadzić hasło konta użytkownika, które uruchomi zadanie. Pojawia się kolejny wymóg. Nie możesz użyć konta, które nie ma hasła. Konto użytkownika musi mieć hasło, aby zadanie zostało uruchomione.
Na koniec należy uruchomić zadanie ręcznie raz w Harmonogramie zadań, aby upewnić się, że działa. Jeśli po zmianie wszystkich ustawień działa poprawnie ręcznie, powinien zostać uruchomiony, gdy ma zostać uruchomiony. W moim przypadku miało się to stać po starcie i po wprowadzeniu zmian wszystko działało dobrze.
Zwróć uwagę, że jeśli twój skrypt uzyskuje dostęp do różnych komputerów w domenie po uruchomieniu, powinieneś spróbować użyć konta administratora domeny, aby uruchomić to zadanie. Zapewni to, że konto ma wystarczające uprawnienia, aby uzyskać dostęp do komputerów zdalnych.
Kolejną rzeczą do zapamiętania jest to, czy twój skrypt uzyskuje dostęp do zasobów w udziale sieciowym. Jeśli twój skrypt używa liter do uzyskania dostępu do sieci, może nie działać. Na przykład, zamiast używać F: \ data \, powinieneś użyć \\ nazwa_komputera \ nazwa_udziału \ data \ w skrypcie. Jeśli nadal nie możesz uruchomić skryptu, napisz tutaj komentarz, a ja postaram się pomóc. Cieszyć się!