2010-02-08 6 views
7

Ho un problema con UAC di Windows, attività pianificate e un eseguibile denominato "dbupdate.exe". Ho pieno potere su codice sorgente, manifesti e così via, ma non su sistemi utente (breve: normale ingegnere del software ;-). La lingua è Delphi, ma non dovrebbe essere importante, penso.Nome exe come update.exe bloccato dal controllo dell'account utente nell'attività pianificata

Ho un problema nell'utilizzo di un'applicazione nell'utilità di pianificazione in Windows Vista e Windows 7. Il programma è denominato dbUpdate.exe. Ha costruito in un manifest xp/vista, che configura che il programma dovrebbe essere avviato "asInvoker".

Ora, in Vista e Windows 7 posso avviare il programma senza alcun problema, ma devo accedere al sistema. Se non sono connesso, il programma non viene eseguito (utilizzo l'utilità di pianificazione di Windows, ma so che il problema esiste anche con altri programmi di pianificazione). Ma: se rinominare il programma in "dbBlaBla.exe" viene eseguito. Mi porta al punto, che l'UAC Installer Detection sta pensando che il mio programma sia un programma di installazione (che non è, ma so che guarda nomi di file come aggiornamento, configurazione e così via).

Ho cercato sul Web, non ho trovato molte cose utili. Quindi chiedo qui

Devo creare un manifest speciale per poterlo eseguire in un lavoro programmato? O c'è un modo per disabilitare UAC per i lavori pianificati o solo per i miei eseguibili? O devo davvero devo scegliere un altro nome (allora avrebbe funzionato, come accennato prima) e correre il rischio che i clienti ei miei colleghi non sono molto soddisfatti di questo? $

Grazie per qualsiasi aiuto, saluti

+0

I clienti e i colleghi sarebbero fortemente insoddisfatti se si nominasse updatedb.exe o upd_task.exe? Sembra più che dovresti semplicemente rinominarlo, scriverlo per capire quando hai tempo (una domanda SO va bene per quello ...: P) e passare a problemi importanti. (Quindi sei a metà strada.) –

+0

Bene, il punto con "passaggio a problemi importanti" suona bene ;-) ma purtroppo è un fatto che la parola "aggiornamento" è molto comune nella nostra azienda e ha senso per le cose il il programma fa. Grazie per la risposta – warheart

risposta

6

In Windows 7, un programma chiamato "update.exe" sembra richiedere privilegi. Apparentemente è il nome, ed è solo una di quelle stravaganti cose di Microsoft. Rinominandolo in "anythingUpdate.exe" si attiverà la violazione magica; "UpdateAnything.exe" anche!

Così ho rinominato il mio in up7.exe e ora Microsoft è calmo e incontattato. La stessa cosa sembra accadere in Vista.

Quindi "updatedb.exe" non funzionerà; "Upd_task.exe" sarebbe ...

+1

così chiamata [Rilevamento installazione] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb756960.aspx) controlla se il nome_file contiene parole chiave come "installazione", "configurazione , "" aggiorna ", ecc. (purtroppo non specificano nemmeno tutte le parole chiave). Ma 'requestedExecutionLevel' menzionato da @warheart dovrebbe sostituire Overer Detection. – marcin

+0

I miei programmi di aggiornamento ora sono denominati * upda1e.exe. Penso anche che sia piuttosto stupido rilevare le funzionalità basate sul nome, mi chiedo chi sia venuto con quell'Idea ... – nulleight

1

Da http://social.msdn.microsoft.com/Forums/en-US/windowscompatibility/thread/1b316a7f-852e-4a71-89d3-090e45990f98

Il Controllo account utente: rileva installazione applicazioni e richiedi elevazione impostazione deve essere abilitata per il rilevamento di installazione per individuare programmi di installazione. Questa impostazione è abilitata per impostazione predefinita e può essere configurata con lo snap-in Security Policy Manager (secpol.msc) o con Criteri di gruppo (gpedit.msc).

+0

Puoi trovare l'impostazione eseguendo "secpol.msc", quindi andando a Criteri locali → Opzioni di sicurezza. –