Fixa schemalagd uppgift körs inte för .BAT-fil

Om du har en .BAT-fil och du försöker få den att köras automatiskt med Task Scheduler i Windows , kan du ha stött på problemet där den helt enkelt inte körs om du inte kör uppgiften manuellt.

Jag skapade en batchfil som tar bort allt i en tillfällig mapp när datorn startar. Jag skapade en grundläggande uppgift i Task Scheduler och hoppades på det bästa. Tyvärr hände ingenting när min dator startade. Efter mycket försök och misstag kom jag på hur jag skulle få skriptet att köras.

I den här artikeln kommer jag att gå igenom inställningarna och behörigheterna du behöver justera för att få din batchfil att köras utan manuell inblandning.

Steg 1: Kontrollera File/Folder mappbehörigheter

Det första steget för att åtgärda det här problemet är att se till att kontot du använder för att köra skriptet i Schemaläggaren(Task Scheduler) har Full Control- behörighet för mappen som innehåller skriptet, själva skriptet och alla mappar/filer som skriptet rör när det körs.

Till exempel skapade jag följande batchskript nedan:

set folder="C:\test"
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)

Jag sparade .BAT -filen i mappen Dokument. Sökvägen är C:\Users\username\Documents . Jag gick till C:\Users\användarnamn, högerklickade på mappen Dokument(Documents) och klickade på Egenskaper(Properties) . Sedan klickade jag på fliken Säkerhet .(Security)

Som du kan se har användarkontot Aseem uttryckligen lagts till och gett full kontrollbehörighet(Full Control) . Nu måste du göra samma sak för mappen som innehåller skriptet och för själva skriptet. Anta inte bara att om du ger tillstånd till mappen som innehåller skriptet är du bra att gå, för det är du inte. Slutligen, ställ in behörigheter för alla filer och mappar som skriptet kommer att interagera med.

I mitt fall var jag tvungen att gå till C:\test , högerklicka på den mappen och lägga till mitt användarkonto där med Full Control - behörigheter. Det är lite irriterande att du måste göra det här, men det är det enda sättet att få skriptet att köras.

Obs: Kontot som används för att köra skriptet måste vara en del av den lokala administratörsgruppen på datorn. I mitt fall är Aseem-kontot ett administratörskonto och därför en del av den lokala administratörsgruppen. (Note: The account that is being used to run the script has to be part of the local Administrators group on the computer. In my case, the Aseem account is an administrator account and therefore part of the local Administrators group. )

Steg 2: Kontrollera Schemaläggarens inställningar(Task Scheduler Settings)

Låt oss nu gå till Task Scheduler och ändra lämpliga inställningar där. Öppna Task Scheduler och hitta din uppgift under avsnittet Aktiva uppgifter . ( Active Tasks)De bör listas i alfabetisk ordning.

Dubbelklicka på den så öppnar den uppgiften av sig själv i samma fönster. För att redigera uppgiften måste du högerklicka på den och välja Egenskaper(Properties) .

Det finns flera flikar och ett par saker måste kontrolleras och ändras här. För det första, på fliken Allmänt(General) , måste du kontrollera användarkontot som används för att köra uppgiften. I mitt fall är det Aseem- kontot som jag hade gett behörighet till tidigare i filsystemet och som är en del av Administratörsgruppen(Administrators) på datorn.

Därefter måste du välja alternativet Kör om användaren är inloggad eller inte( Run whether user is logged on or not) och välja Windows Vista, Windows Server 2008 i rutan Konfigurera för .(Configure for)

På fliken Åtgärder(Actions) måste du välja skriptet, klicka på Redigera(Edit) och sedan lägga till sökvägen till mappen som innehåller skriptet i rutan Start in (valfritt)(e Start in (optional)) . Detta kan tyckas onödigt, men det är det inte. I mitt fall lägger jag in C:\Users\Aseem\Documents\ i rutan.

Klicka nu på OK för att spara inställningarna. När du gör detta kan en dialogruta visas där du måste ange lösenordet för användarkontot som ska köra uppgiften. Detta ger upphov till ytterligare ett krav. Du kan inte använda ett konto som inte har ett lösenord. Användarkontot måste ha ett lösenord för att uppgiften ska kunna köras.

Slutligen bör du köra uppgiften manuellt en gång i Task Scheduler för att se till att den körs. Om den fungerar bra manuellt efter att du ändrat alla inställningar, bör den köras när den ska utlösas. I mitt fall var det tänkt att det skulle hända vid start och efter att jag gjorde ändringarna fungerade allt bra.

Observera att om ditt skript har åtkomst till olika datorer i en domän när det körs, bör du försöka använda domänadministratörskontot för att köra uppgiften. Detta kommer att säkerställa att kontot har tillräckligt med behörigheter för att komma åt fjärrdatorerna.

En annan sak att notera är om ditt skript får åtkomst till resurser på en nätverksresurs. Om ditt skript använder bokstäver för att komma åt nätverket kanske det inte körs. Till exempel, istället för att använda F:\data\ bör du använda \\machinename\share_name\data\ Â i skriptet. Om du fortfarande inte kan få ditt skript att köra, skriv en kommentar här så ska jag försöka hjälpa till. Njut av!



About the author

Hej potentiella arbetsgivare! Jag är en mycket erfaren mjukvaruingenjör med över 7 års erfarenhet inom området. Jag vet hur man designar och utvecklar Windows 7-applikationer och har ett brett utbud av Coola webbplatser-rekommendationer på min profil. Mina kunskaper och erfarenheter erbjuder mig en utmärkt matchning för alla företag som letar efter en talangfull person med goda projektledningsförmåga, programmeringskunskaper och erfarenhet av webbutveckling.



Related posts