Pokud máte soubor .BAT a pokoušíte se jej spustit automaticky pomocí Plánovače úloh ve Windows, možná jste narazili na problém, kde to prostě nespustí, pokud úlohu ručně nespustíte.
Vytvořil jsem dávkový soubor, který při spuštění počítače smaže vše uvnitř temp složky. Vytvořil jsem základní úkol v Plánovači úloh a doufal v nejlepší. Bohužel se nic nestalo, když můj počítač nastartoval. Po spoustě pokusů a omylů jsem přišel na to, jak dostat skript ke spuštění.
V tomto článku se chystám vás projít nastavení a oprávnění, které potřebujete upravit, aby se vaše dávkový soubor spustit bez ručního zásahu.
Krok 1: Zkontrolujte oprávnění k souborům a složkám
Prvním krokem k vyřešení tohoto problému je zajištění toho, že účet, který používáte ke spuštění skriptu v Plánovači úloh, má oprávnění Úplné řízení ve složce obsahující skript, samotný skript a všechny složky / soubory, kterých se skript dotýká při jeho spuštění.
Vytvořil jsem například následující dávkový skript:
set folder = "C:" "cd / d% složka% pro / F" delims = "%% i in ('dir / b') do (rmdir" %% i "/ s / q || del"% " % i "/ s / q)
Soubor .BAT jsem uložil do složky Dokumenty. Cesta je C: Uživatelské jméno Jméno Dokumenty . Šel jsem do C: Username, klikněte pravým tlačítkem myši na složku Documents a klikněte na Properties . Potom jsem klikl na kartu Zabezpečení .
Jak můžete vidět, uživatelský účet Aseem byl explicitně přidán a bylo mu uděleno oprávnění Úplné řízení . Nyní musíte udělat totéž pro složku, která obsahuje skript a pro skript samotný. Nepoužívejte jen předpokládat, že pokud udělíte oprávnění ke složce obsahující skript, můžete jít, protože nejste. Nakonec nastavte oprávnění pro všechny soubory a složky, se kterými bude skript pracovat.
V mém případě jsem musel jít do C: test, klikněte pravým tlačítkem myši na tuto složku a přidejte tam svůj uživatelský účet s oprávněními Úplné řízení. Je to trochu nepříjemné, že to musíte udělat, ale je to jediný způsob, jak spustit skript.
Poznámka : Účet používaný ke spuštění skriptu musí být součástí místní skupiny Administrators v počítači. V mém případě je účet Aseem účet správce a proto je součástí místní skupiny Administrators.
Krok 2: Zkontrolujte nastavení plánovače úloh
Nyní pojďme do Plánovače úloh a změníme tam odpovídající nastavení. Otevřete Plánovač úloh a najděte svůj úkol v části Aktivní úkoly . Měly by být uvedeny v abecedním pořadí.
Poklepejte na něj a úloha se otevře ve stejném okně. Chcete-li úkol upravit, musíte na něj kliknout pravým tlačítkem myši a vybrat příkaz Vlastnosti .
Existuje několik záložek a pár věcí zde musí být zkontrolováno a změněno. Nejprve na kartě Obecné je třeba zkontrolovat uživatelský účet, který se používá ke spuštění úlohy. V mém případě se jedná o účet Aseem, který jsem udělil oprávnění dříve v systému souborů a který je součástí skupiny Administrators v počítači.
Dále musíte zvolit možnost Spustit, zda je uživatel přihlášen nebo nikoli, a v okně Konfigurovat pro vyberte možnost Windows Vista, Windows Server 2008 .
Na záložce Akce musíte vybrat skript, kliknout na Upravit a poté přidat cestu do složky obsahující skript v Začátek v (volitelné) rámečku. To se může zdát zbytečné, ale není to tak. V mém případě jsem vložil do pole C: Usersese Dokumenty .
Kliknutím na tlačítko OK uložte nastavení. Když toto provedete, může se zobrazit dialogové okno, kde musíte zadat heslo pro uživatelský účet, který bude úkol spouštět. To vyvolává další požadavek. Nelze použít účet, který nemá heslo. Pro spuštění úlohy musí mít uživatelský účet heslo.
Nakonec byste měli spustit úlohu ručně jednou v Plánovači úloh, abyste se ujistili, že běží. Pokud se po změně všech nastavení spustí správně, mělo by to běžet, když se má spustit. V mém případě se to mělo stát při startu a poté, co jsem provedl změny, všechno fungovalo dobře.
Všimněte si, že pokud je skript spuštěn do různých počítačů v doméně, měli byste se pokusit o spuštění účtu správce domény. To zajistí, že účet má dostatečná oprávnění pro přístup ke vzdáleným počítačům.
Další položka, kterou je třeba si povšimnout, je, pokud váš skript přistupuje k prostředkům v síťové sdílené položce. Pokud skript používá pro přístup k síti písmena, nemusí se spustit. Namísto použití F: data byste měli použít skript machinename název_souboru data ve skriptu. Pokud stále nemůžete svůj skript spustit, napište komentář a pokusím se pomoci. Užívat si!