none
Schtasks a Network Path was not found

    Dotaz

  • Ahoj,

    mám takový problém. Potřebuju na několika strojích s Windows XP vytvořit úlohu, která spustí .bat. Ten má za úkol kopírovat nějaké soubory na další počítače. Dávka čte seznam IP adres, připojí disk, zkopíruje soubor a zase ho odpojí a přechází na další počítač. Pokud tohle pouštím ručně, tak není žádný problém.

    Průšvih nastane ve chvíli, kdy se má úloha pustit z plánovače. Daná úloha je vytvořena pomocí příkazu AT, jenže u něho nelze nastavit pod jakým uživatelem se má spuštět. Úloha se sice spustí, ale takto vyvolaný .bat už není schopný disky připojit. Zkusil jsem schtasks, ale ten na mě zakřičí, že Network path was not found.

    Možná to zní nesrozumitelně, zkusím to "nakreslit".

    Můj počítač --> ručně pustím jeden .bat, která vytvoří na 50 PC úlohu ---> Každý z těchto počítačů spustí takto vytvořenou úlohu (a .bat) a měl by zkopírovat na několik strojů ve své podsíti nějaké soubory.

    Zjistil jsem, že problém je v tom, že po síti vytvořená úloha se spouští pod NT_Authority\SYSTEM.

    Nevíte, jak z toho ven?

    Děkuju moc.

    pátek 4. března 2011 10:22

Odpovědi

  • O jaky operacni system se jedna? Jestli jde o XP Cz, tak rozbehat schtasks bude asi dost velky porod (viz treba https://groups.google.com/group/microsoft.public.cs.desktop/browse_thread/thread/6d8d81a49eb9a014?hl=cs) Pokud jde o to vytvorit na 50 PC naplanovanou ulohu, tak bych doporucoval si ulohu udelat na jednom vzorovem PC, potom pod uctem pod kterym ma uloha bezet (nejlepe domenovy admin) a potom rozkopirovat na potrebne stanice prislusny *.job. Prikaz dir /b C:\WINDOWS\Tasks ukaze prislusne nazvy souboru uloh. Takto vytvorena/zkopirovana uloha by mela bezet pod uctem ktery ji tam nakopiroval (ale bude potřeba všude nastavit heslo ručně, tedy virtuální obíhačka).

    Pokud je skutecnym cilem pouze prekopirovat soubory a menit atributy, tak by to asi slo udelat i jinak - treba scriptem v Group policy. Dalsi moznosti jak dosahnout tehoz, je udelat si na vsech strojich ulohu pod uctem domenoveho admina, ktera spousti script ze serveru. A ten pak lze oeditovat podle momentalni potreby. To jsem kdysi pouzival na starsich OS kde nebyly moznosti GP (NT4 Wks), ale lze to pouzivat stale.

    sobota 5. března 2011 0:19

Všechny reakce

  • at opravdu bezi standardne pod LOCAL SYSTEM.

     

    Co presne rve schtasks? predpokladam ze uloha bezi pod rozumnym uzivatelem a ze pouziva UNC a ne mapovane disky (fuj)

    MP

    pátek 4. března 2011 10:30
    Moderátor
  • Schtasks mi vynadá hláškou "The network path was not found", takže se vydal cestou at, kde mi nevynadal a úlohu vytvořil. Ale už bez možnosti určit uživatele, krerý jí spustí.

    Pokud úloha běží pod lokálním uživatelem (tzn. ručně ten bat spustím) na počítači, který má soubory dál distribuovat, tak se provede bez problémů. Pokud se má spustit z plánovače, tak sice spustí, ale nedokáže se už na share dostat s chybou "path not found".

    Původně byly disky namapované, ale změna na UNC taky nepomohla.

    pátek 4. března 2011 11:03
  • Jestli to k něčemu bude, tak tady je onen problematický bat.

     

    @echo off
    
    cd c:\temp\
    if "%1" == "" for /f %%i in (IPList.txt) do call :eachpc %%i
    
    goto:eof
    
    :eachpc
    ping %1 -n 2 -w 3000 | find /i "Reply from" >> OnlinePC.log if errorlevel 1 echo %1 >> OfflinePC.log if errorlevel 1 goto :eof attrib -r \\%1\app\config\appconf.000 ren \\%1\app\config\appconf.000 appconf.000.old xcopy /y /f c:\temp\app\config\appconf.000 \\%1\app\config goto :eof
    Selže to v podstatě už při změně read-only u souboru appconf.000. App je share.

     

    pátek 4. března 2011 11:09
  • prepokladam ze stdout i stderr mas presmerovane do logu. Co ten logi rika? Access denied?

    Doporucuji na zacatek dat (=logovat) i echo %userdomain%\%username% at vs pod jakym luserem script opravdu bezi.

    MP

    pátek 4. března 2011 12:00
    Moderátor
  • O jaky operacni system se jedna? Jestli jde o XP Cz, tak rozbehat schtasks bude asi dost velky porod (viz treba https://groups.google.com/group/microsoft.public.cs.desktop/browse_thread/thread/6d8d81a49eb9a014?hl=cs) Pokud jde o to vytvorit na 50 PC naplanovanou ulohu, tak bych doporucoval si ulohu udelat na jednom vzorovem PC, potom pod uctem pod kterym ma uloha bezet (nejlepe domenovy admin) a potom rozkopirovat na potrebne stanice prislusny *.job. Prikaz dir /b C:\WINDOWS\Tasks ukaze prislusne nazvy souboru uloh. Takto vytvorena/zkopirovana uloha by mela bezet pod uctem ktery ji tam nakopiroval (ale bude potřeba všude nastavit heslo ručně, tedy virtuální obíhačka).

    Pokud je skutecnym cilem pouze prekopirovat soubory a menit atributy, tak by to asi slo udelat i jinak - treba scriptem v Group policy. Dalsi moznosti jak dosahnout tehoz, je udelat si na vsech strojich ulohu pod uctem domenoveho admina, ktera spousti script ze serveru. A ten pak lze oeditovat podle momentalni potreby. To jsem kdysi pouzival na starsich OS kde nebyly moznosti GP (NT4 Wks), ale lze to pouzivat stale.

    sobota 5. března 2011 0:19
  • Bohužel problém je, že přes Group Policy to nepůjde. Stroje jsou jenom ve workgroup. Navíc tahle workgroupa není v sítí, ke které mám admin práva. Jsou to specializovaná zařízení s Windows XP Embedded SP3. Ale rozkopírovat *.job je dobrý nápad. Jsou to všechno stejné stroje (nastavením, uživateli, hardwarem), takže by to mohlo fungovat.
    úterý 29. března 2011 13:14