2008-09-18 6 views
0

Existe-t-il un moyen de forcer une mise à jour du logiciel avec RunOnce, sans qu'un administrateur se connecte, si un service s'exécute en tant qu'administrateur en arrière-plan?Comment exécuter runonce sans avoir à se connecter à l'administrateur

EDIT: La principale chose que je veux être en mesure de faire est Exécuter lorsque le RunOnce fait, I.E. avant que l'explorateur ne démarre. Je dois être en mesure d'installer des choses, sans démarrer dans le compte administrateur.

+0

étiquetté 'sécurité', puisque vous pourriez le casser –

Répondre

2

Je ne suis pas sûr de comprendre la question. Laissez-moi essayer:

Le service que vous mentionnez, est-ce le vôtre? Si c'est le cas, vous pouvez ajouter du code pour imiter Windows: à partir de votre service, examinez la valeur RunOnce et lancez l'exécutable qu'il spécifie. Vous pouvez utiliser l'API CreateProcessAsUser() pour le lancer dans le contexte d'un utilisateur arbitraire. Après avoir lancé le processus, supprimez l'entrée RunOnce. Ou ai-je mal compris votre question?

EDIT: Un service ne dépend d'aucun utilisateur connecté. Vous pouvez démarrer votre processus de mise à jour à partir du service dès que le service démarre lui-même, avant qu'un utilisateur réel ne se connecte à l'ordinateur.

+0

Mais il ne fonctionnera pas quand runonce s'exécute (avant que dll et ainsi de commencer). –

+0

Un service peut lancer un processus à tout moment, cela ne dépend d'aucun utilisateur connecté. Quoi qu'il en soit, nous discutons d'une solution sans une compréhension claire du problème (du moins je le suis). Qu'essayez-vous exactement d'accomplir? –

+0

Y at-il un moyen d'arrêter l'exécution du shell tant que le service n'a pas effectué ses actions? –

Questions connexes