Anbefalt, 2024

Redaksjonens

Fiks planlagt oppgave kjøres ikke for .BAT-fil

Hvis du har en .BAT-fil, og du prøver å få den til å kjøre automatisk ved hjelp av Oppgaveplanlegger i Windows, kan det hende at du har løpt inn i problemet der det ikke kjøres hvis du ikke kjører oppgaven manuelt.

Jeg opprettet en batchfil som sletter alt inne i en tempmappe når datamaskinen starter opp. Jeg opprettet en grunnleggende oppgave i Oppgaveplanlegger og håpet på det beste. Dessverre skjedde ingenting når datamaskinen startet opp. Etter mye forsøk og feil, fant jeg ut hvordan man får skriptet til å løpe.

I denne artikkelen skal jeg gå gjennom innstillingene og tillatelsene du må justere for å få batchfilen din til å løpe uten manuell inngriping.

Trinn 1: Kontroller fil / mapptillatelser

Det første skrittet for å fikse dette problemet er å sikre at kontoen du bruker til å kjøre skriptet i Oppgaveplanleggeren, har full kontrollrettigheter i mappen som inneholder skriptet, selve skriptet og eventuelle mapper / filer som skriptet berører når det kjører.

For eksempel opprettet jeg følgende batch script nedenfor:

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

Jeg lagret .BAT-filen i min Dokumenter-mappe. Banen er C: \ Users \ brukernavn \ Dokumenter . Jeg dro til C: \ Users \ brukernavn, høyreklikket på Dokumenter- mappen og klikket på Egenskaper . Da klikket jeg på fanen Sikkerhet .

Som du kan se, har brukerkontoen Aseem blitt eksplisitt lagt til og gitt Full Control- tillatelsen. Nå må du gjøre det samme for mappen som inneholder skriptet og for selve skriptet. Ikke bare anta at hvis du gir tillatelser til mappen som inneholder skriptet, er du god til å gå, fordi du ikke er det. Til slutt, sett inn tillatelser på filer og mapper som skriptet skal samhandle med.

I mitt tilfelle måtte jeg gå til C: \ test, høyreklikke på den mappen og legge til min brukerkonto der med Full Control-tillatelser. Det er litt irriterende at du må gjøre dette, men det er den eneste måten å få skriptet til å løpe.

Merk : Kontoen som brukes til å kjøre skriptet må være en del av den lokale administratorgruppen på datamaskinen. I mitt tilfelle er Aseem-kontoen en administratorkonto og dermed en del av den lokale administratorgruppen.

Trinn 2: Kontroller oppgaveplanleggerinnstillinger

La oss nå gå til Oppgaveplanlegger og endre de aktuelle innstillingene der. Åpne Oppgaveplanlegger og finn oppgaven under delen Aktive oppgaver . De bør listes ut i alfabetisk rekkefølge.

Dobbeltklikk på den, og den åpner oppgaven av seg selv i samme vindu. For å redigere oppgaven må du høyreklikke på den og velge Egenskaper .

Det er flere faner og et par ting må sjekles og endres her. For det første, i kategorien Generelt, må du sjekke brukerkontoen som brukes til å kjøre oppgaven. I mitt tilfelle er det Aseem- kontoen, som jeg hadde gitt tillatelser til tidligere på filsystemet, og som er en del av administratorgruppen på datamaskinen.

Deretter må du velge Kjør om brukeren er logget på eller ikke, og velg Windows Vista, Windows Server 2008 i Konfigurer for- boksen.

Handlinger- fanen må du velge skriptet, klikke på Rediger og deretter legge til banen til mappen som inneholder skriptet i boksen Start i (valgfritt) . Dette kan virke unødvendig, men det er det ikke. I mitt tilfelle legger jeg inn C: \ Users \ Aseem \ Documents \ i boksen.

Klikk nå på OK for å lagre innstillingene. Når du gjør dette, kan det vises en dialog der du må skrive inn passordet for brukerkontoen som skal løse oppgaven. Dette gir et annet krav. Du kan ikke bruke en konto som ikke har et passord. Brukerkontoen må ha et passord for at oppgaven skal kunne kjøre.

Til slutt bør du kjøre oppgaven manuelt en gang i Oppgaveplanlegger for å sikre at den kjører. Hvis den går greit manuelt etter at du har endret alle innstillingene, bør den løpe når den skal utløses. I mitt tilfelle skulle det skje ved oppstart, og etter at jeg hadde gjort endringene, virket det bra.

Merk at hvis skriptet ditt får tilgang til forskjellige datamaskiner i et domene når det kjøres, bør du prøve å bruke domeneadministratorkontoen for å kjøre oppgaven. Dette sikrer at kontoen har nok tillatelser for å få tilgang til de eksterne datamaskinene.

Et annet element å merke seg er om manuset ditt får tilgang til ressurser på et nettverk. Hvis skriptet ditt bruker bokstaver for å få tilgang til nettverket, kan det hende at det ikke kjøres. For eksempel, i stedet for å bruke F: \ data \, bør du bruke \\ maskinnavn \ share_name \ data \ i skriptet. Hvis du fremdeles ikke kan få skriptet ditt til å løpe, legg inn en kommentar her, og jeg vil prøve å hjelpe. Nyt!

Top