Anbefalet, 2021

Redaktørens Valg

Løsning af planlagt opgave kører ikke for .BAT-fil

Hvis du har en .BAT-fil, og du forsøger at få den til at køre automatisk ved hjælp af Task Scheduler i Windows, kan du måske løbe ind i problemet, hvor det simpelthen ikke kører, medmindre du manuelt kører opgaven.

Jeg har lavet en batchfil, der sletter alt inde i en tempmappe, når computeren starter. Jeg lavede en grundlæggende opgave i Task Scheduler og håbede på det bedste. Desværre er der ikke sket noget, da min computer startede op. Efter en masse forsøg og fejl fandt jeg ud af, hvordan man får scriptet til at køre.

I denne artikel vil jeg gå igennem de indstillinger og tilladelser, du skal justere for at få din batchfil til at køre uden manuel indgriben.

Trin 1: Kontroller fil / mappetilladelser

Det første skridt til at løse dette problem er at sikre, at den konto, du bruger til at køre scriptet i Task Scheduler, har fuld kontrol tilladelser i den mappe, der indeholder scriptet, selve scriptet og eventuelle mapper / filer, som scriptet rører ved, når det kører.

For eksempel oprettede jeg følgende batch script nedenfor:

 set mappe = "C: \ test" cd / d% mappe% for / F "delims =" %% jeg i ('dir / b') gør (rmdir "%% i" / s / q || del "% % i "/ s / q) 

Jeg har gemt .BAT-filen til min Documents-mappe. Stien er C: \ Users \ brugernavn \ Dokumenter . Jeg gik til C: \ Users \ brugernavn, højreklikede på mappen Dokumenter og klikte på Egenskaber . Derefter klikede jeg på fanen Sikkerhed .

Som du kan se, er brugerkontoen Aseem blevet udtrykkeligt tilføjet og givet fuld kontrol tilladelse. Nu skal du gøre det samme for den mappe, der indeholder scriptet og selve scriptet. Ikke bare antage, at hvis du giver tilladelser til den mappe, der indeholder scriptet, er du god til at gå, fordi du ikke er. Endelig skal du indstille tilladelser for alle filer og mapper, som scriptet skal interagere med.

I mit tilfælde måtte jeg gå til C: \ test, højreklik på den mappe og tilføje min brugerkonto der med fuld kontrol tilladelser. Det er lidt irriterende, at du skal gøre dette, men det er den eneste måde at få scriptet til at køre.

Bemærk : Den konto, der bruges til at køre scriptet, skal være en del af den lokale administratorgruppe på computeren. I mit tilfælde er Aseem-kontoen en administratorkonto og er derfor en del af den lokale administratorgruppe.

Trin 2: Kontroller opgaveplanlæggerindstillinger

Lad os nu gå til Task Scheduler og ændre de relevante indstillinger der. Åbn Opgaveplanlægning og find din opgave under afsnittet Aktive opgaver . De skal listes ud i alfabetisk rækkefølge.

Dobbeltklik på det, og det åbner opgaven alene i samme vindue. For at redigere opgaven skal du højreklikke på den og vælge Egenskaber .

Der er flere faner, og et par ting skal kontrolleres og ændres her. For det første skal du i fanen Generelt kontrollere den brugerkonto, der bruges til at køre opgaven. I mit tilfælde er det Aseem- kontoen, som jeg tidligere havde givet tilladelser til filsystemet, og som er en del af administratorgruppen på computeren.

Dernæst skal du vælge Kør, om brugeren er logget på eller ej, og vælg Windows Vista, Windows Server 2008 i feltet Konfigurer for .

På fanen Handlinger skal du vælge scriptet, klikke på Rediger og derefter tilføje i stien til den mappe, der indeholder scriptet i boksen Start i (valgfri) . Det kan virke unødvendigt, men det er det ikke. I mit tilfælde sætter jeg C: \ Users \ Aseem \ Documents \ i feltet.

Klik nu på OK for at gemme indstillingerne. Når du gør dette, kan der vises en dialog, hvor du skal indtaste adgangskoden for brugerkontoen, der kører opgaven. Dette medfører et andet krav. Du kan ikke bruge en konto, der ikke har en adgangskode. Brugerkontoen skal have en adgangskode, så opgaven kan køre.

Endelig skal du køre opgaven manuelt en gang i Task Scheduler for at sikre, at den kører. Hvis den kører fint manuelt, efter at du har ændret alle indstillingerne, skal den køre, når den skal udløses. I mit tilfælde skulle det ske ved opstart, og efter at jeg havde foretaget ændringerne fungerede alt fint.

Bemærk, at hvis dit script har adgang til forskellige computere i et domæne, når det køres, skal du prøve at bruge domæneadministratorkontoen til at køre opgaven. Dette sikrer, at kontoen har tilstrækkelige tilladelser til at få adgang til de eksterne computere.

Et andet element, der skal bemærkes, er, hvis dit script får adgang til ressourcer på en netværksdeling. Hvis dit script bruger bogstaver for at få adgang til netværket, løber det muligvis ikke. For eksempel, i stedet for at bruge F: \ data \, skal du bruge \\ machinename \ share_name \ data \ i scriptet. Hvis du stadig ikke kan få dit script til at løbe, skriv en kommentar her, og jeg vil forsøge at hjælpe. God fornøjelse!

Top