Aanbevolen, 2019

Editor'S Choice

Geplande taak repareren wordt niet uitgevoerd voor .BAT-bestand

Als u een .bat-bestand hebt en probeert het automatisch uit te voeren met Taakplanner in Windows, is het probleem mogelijk niet actief, tenzij u de taak handmatig uitvoert.

Ik heb een batchbestand gemaakt dat alles in een tijdelijke map verwijdert wanneer de computer opstart. Ik maakte een basistaak in Task Scheduler en hoopte op het beste. Helaas gebeurde er niets toen mijn computer opstartte. Na veel vallen en opstaan, kwam ik erachter hoe het script kon worden uitgevoerd.

In dit artikel ga ik door de instellingen en machtigingen die u moet aanpassen om u te helpen uw batchbestand zonder handmatige tussenkomst te laten werken.

Stap 1: Controleer de bestands- / mapmachtigingen

De eerste stap om dit probleem op te lossen, is door ervoor te zorgen dat het account dat u gebruikt om het script in Taakplanner uit te voeren, volledige controle heeft over de map die het script bevat, het script zelf en eventuele mappen / bestanden die het script raakt wanneer het wordt uitgevoerd.

Ik heb bijvoorbeeld het volgende batch-script hieronder gemaakt:

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

Ik heb het .bat-bestand in mijn map Documenten opgeslagen. Het pad is C: \ Gebruikers \ gebruikersnaam \ Documenten . Ik ging naar C: \ Users \ gebruikersnaam, klikte met de rechtermuisknop op de map Documenten en klikte op Eigenschappen . Toen klikte ik op het tabblad Beveiliging .

Zoals u kunt zien, is het gebruikersaccount Aseem expliciet toegevoegd en heeft het de machtiging Volledig beheer gekregen. Nu moet je hetzelfde doen voor de map die het script bevat en voor het script zelf. Ga er niet alleen van uit dat als u toestemmingen verleent aan de map die het script bevat, u goed bent om te gaan, omdat u dat niet bent. Stel ten slotte machtigingen in voor alle bestanden en mappen waarmee het script zal communiceren.

In mijn geval moest ik naar C: \ test gaan, met de rechtermuisknop op die map klikken en mijn gebruikersaccount daar toevoegen met de machtigingen voor Volledig beheer. Het is een beetje vervelend dat je dit moet doen, maar het is de enige manier om het script te laten draaien.

Opmerking : het account dat wordt gebruikt om het script uit te voeren, moet deel uitmaken van de lokale groep Administrators op de computer. In mijn geval is het Aseem-account een beheerdersaccount en daarom onderdeel van de lokale groep Administrators.

Stap 2: Controleer Instellingen Taakplanner

Laten we nu naar Taakplanner gaan en de juiste instellingen daar wijzigen. Open Taakplanner en vind uw taak onder het gedeelte Actieve taken . Ze moeten in alfabetische volgorde worden vermeld.

Dubbelklik erop en het opent de taak op zichzelf in hetzelfde venster. Om de taak te bewerken, moet je er met de rechtermuisknop op klikken en Eigenschappen kiezen.

Er zijn verschillende tabbladen en een aantal dingen moeten hier worden gecontroleerd en gewijzigd. Ten eerste moet u op het tabblad Algemeen de gebruikersaccount controleren die wordt gebruikt om de taak uit te voeren. In mijn geval is dit het Aseem- account, waarvoor ik eerder rechten had verleend aan het bestandssysteem en deel uitmaakt van de groep Administrators op de computer.

Vervolgens moet u de optie Uitvoeren kiezen of gebruiker is aangemeld of niet en Windows Vista, Windows Server 2008 kiezen in het vakje Configureren voor .

Op het tabblad Acties moet u het script selecteren, op Bewerken klikken en vervolgens het pad toevoegen aan de map die het script bevat in het vak Start in (optioneel) . Dit lijkt misschien overbodig, maar dat is het niet. In mijn geval plaats ik C: \ Users \ Aseem \ Documents \ in het vak.

Klik nu op OK om de instellingen op te slaan. Wanneer u dit doet, kan een dialoogvenster verschijnen waarin u het wachtwoord moet invoeren voor het gebruikersaccount dat de taak zal uitvoeren. Dit roept een andere eis op. U kunt geen account gebruiken dat geen wachtwoord heeft. Het gebruikersaccount moet een wachtwoord hebben om de taak uit te voeren.

Ten slotte moet u de taak één keer handmatig uitvoeren in Taakplanner om te controleren of deze wordt uitgevoerd. Als het handmatig wordt uitgevoerd nadat u alle instellingen hebt gewijzigd, moet het worden uitgevoerd wanneer dit zou moeten worden geactiveerd. In mijn geval moest het gebeuren bij het opstarten en nadat ik de wijzigingen had aangebracht, werkte alles goed.

Merk op dat als uw script toegang heeft tot verschillende computers in een domein wanneer het wordt uitgevoerd, u zou moeten proberen om het domeinbeheerdersaccount te gebruiken om de taak uit te voeren. Dit zorgt ervoor dat het account voldoende rechten heeft om toegang te krijgen tot de externe computers.

Een ander item dat u moet vermelden is of uw script toegang heeft tot bronnen op een netwerkshare. Als uw script letters gebruikt om toegang tot het netwerk te krijgen, is het mogelijk niet actief. In plaats van F: \ data \ te gebruiken, moet u bijvoorbeeld \\ machinename \ share_name \ data \ in het script gebruiken. Als je je script nog steeds niet kunt laten uitvoeren, plaats dan hier een opmerking en ik zal proberen te helpen. Genieten!

Top