Partager via


RunAs

Configure une classe pour qu’elle s’exécute sous un compte d’utilisateur spécifique lorsqu’elle est activée par un client distant sans être écrite en tant qu’application de service.

Entrée de Registre

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
   {AppID_GUID}
      RunAs = value

Notes

La valeur spécifie le nom d’utilisateur et doit être de la forme UserName, Domain**\**UserName ou de la chaîne « Utilisateur interactif ». Vous pouvez également spécifier les chaînes « nt authority\localservice » (pour Service local) et « nt authority\networkservice » (pour Network Service). Vous pouvez également spécifier la chaîne « nt authority\system » lorsque {AppID_GUID} fait référence à un serveur COM qui est déjà démarré ou qui a une entrée dans la table de classes. Toutefois, vous ne pouvez pas utiliser « nt authority\system » avec un serveur COM qui n’est pas déjà démarré. Le mot de passe par défaut pour « nt authority\localservice », « nt authority\networkservice » et « nt authority\system » est « » (chaîne vide).

Notes

Depuis Windows Vista, un mot de passe vide n’est plus nécessaire pour configurer les paramètres d’exécution « nt authority\localservice », « nt authority\networkservice » et « nt authority\system ».

 

Les classes configurées pour s’exécuter en tant qu’utilisateur particulier ne peuvent pas être inscrites sous une autre identité. Par conséquent, les appels à CoRegisterClassObject avec ce CLSID échouent, sauf si le processus a été lancé par COM pour le compte d’une demande d’activation réelle.

Le nom d’utilisateur est extrait de la valeur RunAs sous la clé AppID de la classe. Si le nom d’utilisateur est « Utilisateur interactif », le serveur est exécuté dans l’identité de l’utilisateur actuellement connecté et est connecté au bureau interactif.

Sinon, le mot de passe est récupéré à partir d’une partie du Registre disponible uniquement pour les administrateurs de l’ordinateur et du système. Le nom d’utilisateur et le mot de passe sont ensuite utilisés pour créer une session d’ouverture de session dans laquelle le serveur est exécuté. Lorsqu’il est lancé de cette façon, l’utilisateur s’exécute avec son propre bureau et sa propre station de fenêtre et ne partage pas de poignées de fenêtre, du Presse-papiers ou d’autres éléments d’interface utilisateur avec l’utilisateur interactif ou un autre utilisateur s’exécutant dans d’autres comptes d’utilisateur.

Pour établir un mot de passe pour une classe RunAs , vous devez utiliser l’outil d’administration DCOMCNFG installé dans le répertoire système.

Pour les identités d’identification utilisées par les serveurs DCOM, le compte d’utilisateur spécifié dans la valeur doit disposer des droits nécessaires pour se connecter en tant que travail par lots. Ce droit peut être ajouté à l’aide de l’outil d’administration Stratégie de sécurité locale. Accédez à Stratégies locales et ouvrez Attribution de droits utilisateur. Sélectionnez Se connecter en tant que travail par lots, puis ajoutez le compte d’utilisateur.

La valeur RunAs n’est pas utilisée pour les serveurs configurés pour être exécutés en tant que services. Les services COM qui doivent s’exécuter sous une identité autre que LocalSystem doivent définir le nom d’utilisateur et le mot de passe appropriés à l’aide de l’applet du panneau de configuration des services ou des fonctions du contrôleur de service. (Pour plus d’informations sur ces fonctions, consultez Services.)

Notes

À partir de Microsoft Windows Server 2003, la classe AppID est lue explicitement à partir de HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID, qui, contrairement à la plupart des clés de Registre, n’est pas interchangeable avec HKEY_CLASSES_ROOT\AppID.

 

Inscription de serveurs COM