2014-09-09 41 views
12

OS: Windows Server 2008 R2 EnterpriseUtilità di pianificazione non file batch aperto può quando è impostato per funzionare se l'utente è connesso o meno

non sono in grado di ottenere l'utilità di pianificazione per eseguire file bat mentre sto disconnesso. Ho un file .bat di produzione che voglio usare, ma per i miei scopi di risoluzione dei problemi sto usando C: \ Users \ Administrator \ Desktop \ test.bat

test.bat è molto semplice. Tutto ciò che contiene è: taskkill/im notepad.exe

Funziona con successo da solo. Se ho il Blocco note aperto e faccio doppio clic su test.bat, la finestra di cmd lampeggia e il Blocco note muore. Il file .bat non è un problema.

L'attività che ho creato nell'Utilità di pianificazione è "Test taskkill" (senza virgolette). Posso vedere la sua posizione in Esplora risorse: C: \ Windows \ System32 \ Task \ Test taskkill

Se l'attività è impostata per essere eseguita solo quando l'utente è connesso, l'attività funziona. Con questa impostazione, posso fare clic con il tasto destro del mouse su> run e ottengo lo stesso comportamento come se facessi doppio clic sul file .bat. Ciò significa che l'attività è configurata correttamente.

Se l'ho impostato per l'esecuzione indipendentemente dal fatto che l'utente sia connesso, quando faccio clic con il pulsante destro del mouse su> esegui non accade nulla di ovvio. Il processo viene segnalato come eseguito correttamente nella cronologia, ma il Blocco note sopravvive. So che sto utilizzando le credenziali appropriate per l'account che sto configurando per eseguire l'attività. Quell'account è l'amministratore locale.

Questo problema è simile a problemi di altri hanno avuto in passato:

Running a .bat file in Scheduled Task

http://social.technet.microsoft.com/Forums/windowsserver/en-US/d47d116e-10b9-44f0-9a30-7406c86c2fbe/scheduled-task-wont-run-bat-file?forum=winservermanager

Il filo nel secondo link sembrava per risolvere un problema identico per molte persone con l'idea che l'account utilizzato per eseguire l'attività richiede l'autorizzazione esplicita per il file .bat e tutti i file modificati dal file .bat. Questo è stato molto promettente (se un requisito fastidioso). Tuttavia, mi hanno confermato o assegnare le autorizzazioni esplicite per l'amministratore locale alle seguenti aree, e sono ancora non riuscita:

  • C: \ Users \ Administrator \ Desktop \
  • C: \ Users \ Administrator \ Desktop \ test.bat
  • C: \ Windows \ System32 \ Tasks \
  • C: \ Windows \ System32 \ Tasks \ test taskkill

Inoltre, mi hanno confermato che l'account di amministratore locale è nella gruppo di amministratori locali.

Mi mancano alcune altre autorizzazioni che devono essere impostate? C'è qualcos'altro che dovrei guardare? Grazie!

+0

hai selezionato la casella di controllo "Esegui con i privilegi più alti"? – ths

+0

Siamo spiacenti, si. Avrei dovuto specificarlo, ma l'ho fatto davvero. – MasterOfNone

+0

Hai risolto questo problema? Sto affrontando lo stesso. Grazie. –

risposta

12

Ho risolto questo problema con l'aiuto di un appaltatore che stava facendo un altro lavoro per la mia istituzione.

Nella finestra delle proprietà per l'attività, nella scheda Azione, quando si crea o si modifica l'azione che apre il file batch (nel mio caso test.bat), c'è il campo "Programma/script:" e c'è anche un campo "Inizia in (facoltativo):".Precedentemente avevo il campo "Programma/script:" contenente il percorso completo del file, che terminava con il nome del file, e avevo il campo "Inizia in (opzionale):" campo null. Questa configurazione sembra funzionare senza problemi quando l'attività è impostata su "Esegui solo quando l'utente è connesso" nella scheda Generale della finestra delle proprietà dell'attività. Tuttavia, questa configurazione non funziona quando l'attività è impostata su "Esegui se l'utente è connesso o meno".

Per risolvere il problema, ho modificato l'azione in modo che il campo "Programma/script:" contenesse solo il nome del file, non il percorso del file. Inserisco il percorso del file nel campo "Avvia (facoltativo):". Questa configurazione funziona quando l'attività è impostata su "Esegui solo quando l'utente è connesso"! Ho testato con l'attività in esecuzione su un trigger e anche con l'esecuzione manualmente.

+4

Purtroppo questo non ha funzionato per me :( – brando

+0

questo non funziona per me o – BarryMahnly

+0

non ha funzionato anche per me! Windows server 2012 r2 – Zest

1

Avevo un problema simile, ma era legato al fatto che c'era uno spazio nel percorso del mio file batch eseguibile. Ho rimosso lo spazio e ora funziona bene.

1

Che lavoro per me è stato assicurarsi che il percorso sia disponibile.

ho usato uso netto Z: \ \ cartella nomecomputer/persistente: sì

allora il XXCOPY/s/c/d/e/i/y D:. * * Z: \ BackupBat

Ho notato che tutto il mio altro .bat funziona bene solo quello con il riferimento a una cartella della mappa è quello che non funziona, quindi questo deve essere il problema. con questi cambiamenti il ​​file bat funziona bene.

0

Verifica la seguente ha funzionato per me:

1) 'Run se l'utente non è connesso' opzione Utilità di pianificazione non funziona per i programmi che è la modalità interattiva. Blocco note di esempio, orologio. Le attività non verranno eseguite in modo interattivo. Assicurati che il tuo programma non richieda alcuna azione interattiva.

2) Verificare "Avvio (facoltativo)" Se il percorso del programma non è uno dei percorsi di sistema. È meglio aggiungere il percorso del programma al suo interno. In "Programma/Script" inserisci solo il nome del programma e inserisci il percorso del tuo script in "Inizia in".

3) L'account utente impostato per il programma deve disporre dell'autorizzazione non solo per eseguire il programma stesso ma anche per eseguire tutti gli altri programmi relativi al programma.

Ecco un esempio di programma:

Su C: \ Programma \ FOLDERONE \ test.cmd

date /t >> c:\Temp\testAuto.log 
date /t >> c:\temp\testAuto.log 
echo ----->> c:\temp\testAuto.log 
cls 
exit 

-Creare un task, selezionando il Generale> SecurityOptions "Esegui se utente è connesso o non " -Enter in azione> Programma/script: test.cmd in" Avvio in "C: \ miooprogramma \ cartellaUn altro -Eseguo l'esecuzione, è possibile che le finestre di cmd si aprano e si chiudano molto rapidamente. Il file testAuto.log dovrebbe trovarsi nella cartella c: \ tmp.

0

Non sicuro se questo aiuta. Il mio problema era usare un programma interattivo (in particolare Excel).

Creazione delle 2 cartelle vuote (Desktop) risolto. Crea entrambi anche se stai lavorando su x64.

C:\Windows\System32\config\systemprofile\Desktop 
C:\Windows\SysWOW64\config\systemprofile\Desktop 

ho debug il mio codice e realizzato il codice esce in questa linea

ExcelFile excelFile = new ExcelFile(directory, filename); 

Ho letto questa soluzione da qualche parte e non riesco a trovare l'URL ora.

0

Potrebbe essere perché non si dispone dell'autorizzazione. M affrontando lo stesso problema e ho trovato la soluzione come questa - Fare clic destro sul proprio compito di proprietà. Nelle proprietà fare clic sulla scheda Generale e quindi fare clic su "Gruppo utenti o utente" e selezionare l'utente appropriato.