Rekommenderas, 2024

Redaktionen

Fix Schemalagd uppgift kommer inte att köras för .BAT-fil

Om du har en .BAT-fil och du försöker få den att köra automatiskt med hjälp av Aktivitetsschemaläggare i Windows, kan du ha stött på problemet där det inte körs om du inte kör uppgiften manuellt.

Jag skapade en batchfil som tar bort allt i en tempmapp när datorn startas. Jag skapade en grundläggande uppgift i Task Scheduler och hoppades på det bästa. Tyvärr inträffade ingenting när datorn startade upp. Efter mycket försök och fel, tänkte jag ut hur man får skriptet att springa.

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

Steg 1: Kontrollera fil / mapptillstånd

Det första steget för att lösa problemet är att se till att kontot du använder för att köra skriptet i Aktivitetsschemaläggaren har fullständiga kontrollbehörigheter i mappen som innehåller skriptet, själva skriptet och alla mappar / filer som skriptet berör när det körs.

Till exempel skapade jag följande batch script nedan:

 set mapp = "C: \ test" cd / d% mapp% för / F "delims =" %% jag in ('dir / b') gör (rmdir "%% i" / s / q || del "% % i "/ s / q) 

Jag sparade .BAT-filen till min dokumentmapp. Banan är C: \ Users \ användarnamn \ Dokument . Jag gick till C: \ Users \ användarnamn, högerklickade på mappen Dokument och klickade på Egenskaper . Sedan klickade jag på fliken Säkerhet .

Som du kan se har användarkontot Aseem uttryckligen lagts till och fått Full Control- behörigheten. Nu måste du göra samma sak för mappen som innehåller manuset och för själva skriptet. Anta inte bara att om du ger behörigheter till mappen som innehåller manuset, är du bra att gå, för att du inte är. Slutligen anger du behörigheter för alla filer och mappar som skriptet ska 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, men det är det enda sättet att få skriptet att springa.

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 är därför en del av den lokala administratörsgruppen.

Steg 2: Kontrollera inställningar för uppgiftsschemaläggare

Låt oss nu gå till Task Scheduler och ändra lämpliga inställningar där. Öppna Aktivitetsschemaläggare och hitta din uppgift under avsnittet Aktiva uppdrag . De ska listas ut i alfabetisk ordning.

Dubbelklicka på den och det öppnar uppgiften självt i samma fönster. För att redigera uppgiften måste du högerklicka på den och välja Egenskaper .

Det finns flera flikar och ett par saker måste kontrolleras och ändras här. För det första måste du kolla på användarkontot som används för att köra uppgiften på fliken Allmänt . I mitt fall är det Aseem- kontot, som jag hade gett behörigheter till tidigare på filsystemet och som ingår i administratörsgruppen på datorn.

Därefter måste du välja Kör om användaren är inloggad eller inte, och välj Windows Vista, Windows Server 2008 i rutan Konfigurera .

På fliken Åtgärder måste du välja skriptet, klicka på Redigera och sedan lägga till i sökvägen till mappen som innehåller skriptet i fältet Start i (frivilligt) . Det 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 det kan en dialog visas där du måste ange lösenordet för användarkontot som ska köra uppgiften. Detta ger ett annat 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 det går bra manuellt efter att du har ändrat alla inställningar, ska den köras när den ska utlösas. I mitt fall var det tänkt att hända vid start och efter att jag hade gjort förändringarna fungerade allt bra.

Observera att om ditt skript får åtkomst till olika datorer i en domän när den körs, bör du försöka använda domänadministratorkontot för att köra uppgiften. Detta säkerställer att kontot har tillräckligt med behörigheter för åtkomst till fjärrdatorer.

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

Top