Ok, ho trovato un modo per farlo senza troppi problemi o senza esporre una password in chiaro .
Innanzitutto, dovrai abilitare l'account amministratore. Questa è la parte più scomoda. Ho impostato il mio account normale per l'accesso automatico, ma è fastidioso che l'account amministratore sia disponibile nella schermata di accesso, anche se non lo vedo mai davvero. Alcuni potrebbero lamentarsi del fatto che esponendo l'account amministratore, rende il sistema un po 'meno sicuro, ma poiché è necessario impostare una password per l'account per poterlo utilizzare dalla riga di comando, tale preoccupazione è controversa.
Il metodo che ho scelto richiede l'utilizzo di una sorta di programma SHELLEXECUTE che supporti l'esecuzione di programmi minimizzati. (Si potrebbe usare invece il comando START incorporato nell'interprete dei comandi CMD, ma ciò farebbe lampeggiare una finestra del prompt dei comandi mentre un programma senza console senza finestre lo eviterebbe.) Ci sono molte tra cui scegliere, ma ne ho appena usato uno che Ho scritto molto tempo fa.
Ora, basta creare una voce di registro nella chiave RUN che chiama ShellExecute, specificando l'opzione di minimizzazione e usando RUNAS come programma da eseguire. (Se preferisci, ci sono altri programmi che possono eseguire un programma usando un altro account, ma RUNAS viene fornito con Windows e può salvare la password per evitare di includerla nella riga di comando.) In alternativa, puoi creare un collegamento di Windows regolare e spostare nella cartella Avvio .
Infine, dovrai passare il programma (e tutti gli argomenti per esso) come argomento a RUNAS.
(Non dimenticare di eseguire il programma di destinazione o qualsiasi altro programma con RUNAS, specificando l'opzione / SAVECRED, almeno una volta senza eseguirlo minimizzato per salvare la password.)
La riga di comando da utilizzare può diventare piuttosto complessa perché è un programma che chiama un programma che chiama un programma. Peggiora se è necessario specificare argomenti per il programma di destinazione e molto peggio se è necessario includere spazi. La situazione delle virgolette può diventare rapidamente esasperante, quindi sarà probabilmente necessaria molta sperimentazione.
Ad esempio, se si utilizza ShelExec da PJ Naughter e si desidera eseguire SpeedFan, utilizzare una riga di comando come questa:
shelexec /showcmd:sw_hide /EXE runas "/params:/user:administrator /savecred ""C:\Program Files\SpeedFan\speedfan.exe"""
Devo sottolineare che ho impostato le opzioni di SpeedFan per iniziare a minimizzare, altrimenti invece di eseguire speedfan "direttamente", dovrei eseguire un secondo programma ShellExecute con la sua opzione di minimizzazione per eseguire SpeedFan (un programma che chiama un programma che chiama un programma che chiama un programma). Far funzionare tutto ciò farebbe quasi sicuramente impazzire anche l'amministratore di computer più abile.
Può essere un po 'complicato elaborare la riga di comando, ma sembra funzionare abbastanza bene per tutte le attività in background eseguite automaticamente che richiedono l'accesso amministrativo. Soprattutto, funziona con account utente standard / limitati, quindi è possibile utilizzare questo metodo per eseguire automaticamente i programmi con privilegi elevati senza fornire un prompt UAC per gli utenti regolari.
(Mentre funziona bene, ha i suoi lati negativi, in particolare perché, poiché esegue i programmi indirettamente, i gestori di esecuzione automatica come Autoruns, StartupDelayer, HijackThis ecc. Non saranno in grado di rilevare quale programma reale è in esecuzione automatica: lo faranno funziona ancora ed è in grado di disabilitare / cancellare / ecc., ma non mostreranno l'icona giusta o le informazioni sulla risorsa file.)