Korjaa ajoitettu tehtävä ei toimi .BAT-tiedostossa

Jos sinulla on .BAT-tiedosto ja yrität saada sen toimimaan automaattisesti Windowsin Task (Windows)Scheduler(Task Scheduler) -sovelluksella, olet saattanut törmätä ongelmaan, jossa se ei yksinkertaisesti toimi, ellet suorita tehtävää manuaalisesti.

Loin erätiedoston, joka poistaa kaiken temp-kansion sisältä aina, kun tietokone käynnistyy. Tein perustehtävän Task Schedulerissa(Task Scheduler) ja toivoin parasta. Valitettavasti mitään ei tapahtunut, kun tietokoneeni käynnistyi. Monen yrityksen ja erehdyksen jälkeen keksin, kuinka saan skriptin toimimaan.

Tässä artikkelissa opastan sinut asetusten ja käyttöoikeuksien läpi, joita sinun on säädettävä, jotta komentotiedostosi toimisi ilman manuaalisia toimia.

Vaihe 1: Tarkista File/Folder käyttöoikeudet

Ensimmäinen askel tämän ongelman korjaamiseksi on varmistaa, että tilillä, jota käytät komentosarjan suorittamiseen Task Schedulerissa(Task Scheduler) , on täydet(Full Control) oikeudet kansioon, joka sisältää komentosarjan, itse komentosarjan ja kaikki kansiot/tiedostot, joita komentosarja koskettaa suorituksen aikana.

Loin esimerkiksi seuraavan eräkomentosarjan alla:

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

Tallensin .BAT- tiedoston Asiakirjat-kansioon. Polku on C:\Users\username\Documents . Menin kohtaan C:\Käyttäjät\käyttäjänimi, napsautin hiiren oikealla painikkeella Documents - kansiota ja napsautin Ominaisuudet(Properties) . Sitten napsautin Suojaus(Security) - välilehteä.

Kuten näet, käyttäjätili Aseem on lisätty nimenomaisesti ja sille on annettu täysi hallintaoikeus.Â(Full Control) Nyt sinun on tehtävä sama komentosarjan sisältävälle kansiolle ja itse komentosarjalle. Älä vain oleta, että jos annat oikeudet komentosarjan sisältävälle kansiolle, olet valmis, koska et ole sitä. Aseta lopuksi käyttöoikeudet kaikille tiedostoille ja kansioihin, joiden kanssa komentosarja on vuorovaikutuksessa.

Minun tapauksessani minun piti mennä C:\test , napsauta hiiren kakkospainikkeella kyseistä kansiota ja lisää siihen käyttäjätilini Full Control -oikeuksilla. Se on tavallaan ärsyttävää, että sinun on tehtävä tämä, mutta se on ainoa tapa saada komentosarja toimimaan.

Huomautus: Skriptin suorittamiseen käytettävän tilin on oltava osa tietokoneen paikallista Järjestelmänvalvojat-ryhmää. Minun tapauksessani Aseem-tili on järjestelmänvalvojan tili ja siksi osa paikallista Järjestelmänvalvojat-ryhmää. (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. )

Vaihe 2: Tarkista Task Scheduler -asetukset(Task Scheduler Settings)

Siirrytään nyt Task Scheduleriin(Task Scheduler) ja muuta siellä tarvittavat asetukset. Avaa Task Scheduler ja etsi tehtäväsi Aktiiviset tehtävät( Active Tasks) -osiosta. Ne tulee listata aakkosjärjestyksessä.

Kaksoisnapsauta sitä ja se avaa tehtävän itse samassa ikkunassa. Muokataksesi tehtävää sinun on napsautettava sitä hiiren kakkospainikkeella ja valittava Ominaisuudet(Properties) .

Välilehtiä on useita, ja muutama asia on tarkistettava ja muutettava täällä. Ensinnäkin Yleiset(General) - välilehdellä sinun on tarkistettava käyttäjätili, jota käytetään tehtävän suorittamiseen. Minun tapauksessani se on Aseem- tili, jolle olin antanut luvat aiemmin tiedostojärjestelmässä ja joka on osa tietokoneen Järjestelmänvalvojat(Administrators) - ryhmää.

Seuraavaksi sinun on valittava Suorita, onko käyttäjä kirjautunut sisään vai ei( Run whether user is logged on or not) -vaihtoehto ja valittava Windows Vista, Windows Server 2008 Configure for(Configure for) -ruudusta.

Toiminnot(Actions) - välilehdellä sinun on valittava komentosarja, napsautettava Muokkaa(Edit) ja lisättävä sitten komentosarjan sisältävän kansion polku Aloita (valinnainen)(e Start in (optional)) -ruutuun. Tämä saattaa tuntua tarpeettomalta, mutta se ei ole sitä. Minun tapauksessani laitoin ruutuun C:\Users\Aseem\Documents\ .

Napsauta nyt OK tallentaaksesi asetukset. Kun teet tämän, näyttöön saattaa tulla valintaikkuna, jossa sinun on syötettävä tehtävän suorittavan käyttäjätilin salasana. Tämä tuo esiin toisen vaatimuksen. Et voi käyttää tiliä, jolla ei ole salasanaa. Käyttäjätilillä on oltava salasana, jotta tehtävä voidaan suorittaa.

Lopuksi sinun tulee suorittaa tehtävä manuaalisesti kerran Task Schedulerissa(Task Scheduler) varmistaaksesi, että se suoritetaan. Jos se toimii hyvin manuaalisesti kaikkien asetusten muuttamisen jälkeen, sen pitäisi käynnistyä, kun sen on tarkoitus käynnistyä. Minun tapauksessani sen piti tapahtua käynnistyksen yhteydessä, ja kun tein muutokset, kaikki toimi hyvin.

Huomaa, että jos komentosarjasi käyttää toimialueen eri tietokoneita suoritettaessa, sinun tulee yrittää käyttää toimialueen järjestelmänvalvojan tiliä tehtävän suorittamiseen. Tämä varmistaa, että tilillä on tarpeeksi käyttöoikeuksia etätietokoneiden käyttämiseen.

Toinen huomioitava seikka on, jos komentosarjasi käyttää verkko-osuuden resursseja. Jos komentosarjasi käyttää kirjaimia päästäkseen verkkoon, se ei välttämättä toimi. Esimerkiksi F:\data\ käyttämisen sijaan sinun tulee käyttää \\machinename\share_name\data\ Â. Jos et vieläkään saa skriptiäsi suoritettua, lähetä kommentti tähän, niin yritän auttaa. Nauttia!



About the author

Olen tietokoneammattilainen, jolla on kokemusta Microsoft Office -ohjelmistojen, kuten Excelin ja PowerPointin, kanssa työskentelystä. Minulla on myös kokemusta Chromesta, joka on Googlen omistama selain. Taitojani ovat erinomainen kirjallinen ja suullinen kommunikointi, ongelmanratkaisukyky ja kriittinen ajattelu.



Related posts