L'attività pianificata di Windows Server 2008 funziona solo con "Esegui solo quando l'utente è connesso"

Ho un'attività pianificata che è impostata per eseguire uno script R lanciando Rscript.exe e il file di interesse.

Questa operazione viene completata correttamente quando l'ho eseguita con l'opzione

"Esegui solo quando l'utente è connesso".

Ho bisogno di programmare l'attività per eseguire senza di me, quindi ho controllato l'opzione:

"Esegui se l'utente è connesso o no"

e mi ha dato la mia password.

Ho bisogno di testare questo e quindi cliccato "eseguire" solo per guardarlo immediatamente fallire con un risultato di

0x1

Esiste un file di registro creato da R quando viene eseguito lo script, tuttavia l'attività pianificata apparentemente non è rioutput prima che questo registro venga creato.

Ho trovato questa risorsa che dice che quando l'attività non può essere eseguita correttamente manualmente quando viene selezionata l'opzione "se l'utente è connesso o no".

Con questo in mente ho invece pianificato l'incarico di eseguire alcuni minuti in futuro. L'operazione non è rioutput con il risultato di esecuzione 0x1 prima di lanciare Rscript e quindi creare un registro.

Ho ripetuto questo process e poche volte e il risultato è stato lo stesso each volta.

Quando guardo le properties; del task, vedo che in un secondo tempo ha raggiunto il passaggio "Azione Completata" che ha restituito un codice di return non zero e non è riuscito con un codice operativo di "(2)".

immettere qui la descrizione dell'immagine

La definizione dell'attività è:

Action: Start a program Program/script: cmd Add arguments: /c E:/PROGRA~1/R/R-33~1.1/bin/Rscript.exe T://code//Forecast.R >> T://code//Forecast.log 2>&1 

2 Solutions collect form web for “L'attività pianificata di Windows Server 2008 funziona solo con "Esegui solo quando l'utente è connesso"”

È necessario disporre del diritto di protezione "Accesso come batch job" per eseguire un'attività come utente.

Strumenti di amministrazione -> Politica di protezione locale -> Politiche locali -> Assegnazione dei diritti utente -> Accedi come un process batch.

Sono sicuro che nel visualizzatore di events vedrai un evento di protezione con un tentativo di accesso non riuscito con un tipo di accesso di 4 (lavoro batch).

Ho finalmente ottenuto questo lavoro.

Sembra che ha funzionato dopo diversi piccoli cambiamenti e non posso essere assolutamente sicuro di quali sono necessarie, ma ecco quello che ho fatto:

  1. Ha spostato tutti i file (lo stesso script R e un file .jar che chiama) da un'unità di networking a un'unità locale

  2. Seguito alla proposta di @Christopher_G_Lewis per quanto riguarda la sicurezza, anche se sono del 98% che il mio gruppo di utenti amministrativo mi ha già concesso le autorizzazioni

  3. Selezionato "Esegui se l'utente è connesso o no" e ha assicurato di non select "eseguire con i privilegi più alti" (che è qualcosa che avevo commutato e spento lungo la strada)

  4. Impostare il primo tempo di esecuzione pianificato per iniziare in passato

  5. Controllava tutte le autorizzazioni di file e cartelle per assicurarsi che essi erano molto liberali e non si avvicinavano

  6. Ho aggiunto molte istruzioni di gestione degli errori al mio script ( try() ) solo per assicurarmi che i file bloccati, i messaggi di avviso ecc. Non smettessero di eseguire l'esecuzione (anche se credo che questo sia probabilmente inutile poiché le esecuzioni precedenti e il file di registro non hanno indicato errori )

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.