Partager via


Activation d’un serveur de processus

Le serveur de processus inclus dans les outils de débogage pour Windows est appelé DbgSrv (dbgsrv.exe). Pour activer un serveur de processus, ouvrez une fenêtre d’invite de commandes avec élévation de privilèges (Exécuter en tant qu’administrateur) et entrez la commande dbgsrv.

Remarque Vous pouvez activer un serveur de processus sans disposer de privilèges élevés, et les clients de débogage pourront se connecter au serveur. Toutefois, les clients ne pourront pas découvrir un serveur de processus, sauf s’il a été activé avec des privilèges élevés. Pour plus d’informations sur la découverte des serveurs de débogage, consultez Recherche de serveurs de processus.

Important

Il existe des considérations importantes en matière de sécurité lors de l’utilisation du débogage à distance. Pour plus d’informations, notamment sur l’activation du mode sécurisé, consultez Sécurité pendant le débogage à distance et considérations relatives à la sécurité pour les outils de débogage Windows.

DbgSrv prend en charge plusieurs protocoles de transport : canal nommé (NPIPE), TCP, port COM, canal sécurisé (SPIPE) et couche SSL (Secure Sockets Layer).

méthodes de connexion recommandées, avec des de sécurité supplémentaires

dbgsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

méthodes de connexion non sécurisées

dbgsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

Paramètres

Les paramètres des commandes précédentes ont les valeurs possibles suivantes :

pipe=PipeName
Lorsque le protocole NPIPE ou SPIPE est utilisé, PipeName est une chaîne qui servira de nom au canal. Chaque nom de canal doit identifier un serveur de processus unique. Si vous tentez de réutiliser un nom de canal, vous recevrez un message d’erreur. PipeName ne doit pas contenir d’espaces ou de guillemets. PipeName peut inclure un code de format de format de stylenumérique, tel que %x ou %d. Le serveur de processus remplace cela par l’ID de processus de DbgSrv. Un deuxième code de ce type sera remplacé par l’ID de thread de DbgSrv.

Remarque Vous devrez peut-être activer le partage de fichiers et d’imprimantes sur l’ordinateur exécutant le serveur de processus. Dans le Panneau de configuration, accédez à Network and Internet > Network and Sharing Center> Paramètres de partage avancés. Sélectionnez activer le partage de fichiers et d’imprimantes.

port=socket
Lorsque le protocole TCP ou SSL est utilisé, socket est le numéro de port du socket.

Il est également possible de spécifier une plage de ports séparés par un signe deux-points. DbgSrv vérifie chaque port de cette plage pour voir s’il est gratuit. S’il trouve un port libre et qu’aucune erreur ne se produit, le serveur de processus est créé. Le client intelligent doit spécifier le port réel utilisé pour se connecter au serveur. Pour déterminer le port réel, utilisez l’une des méthodes décrites dans recherche de serveurs de processus; lorsque ce serveur de processus s’affiche, le port est suivi de deux nombres séparés par un signe deux-points. Le premier nombre sera le port réel utilisé ; la seconde peut être ignorée. Par exemple, si le port a été spécifié comme port=51:60et que le port 53 a été réellement utilisé, les résultats de la recherche affichent « port=53:60 ». (Si vous utilisez le paramètre clicon pour établir une connexion inversée, le client intelligent peut spécifier une plage de ports de cette façon, tandis que le serveur de processus doit spécifier le port réel utilisé.)

clicon=client
Lorsque le protocole TCP ou SSL est utilisé et que le paramètre clicon est spécifié, une connexion inversée est ouverte. Cela signifie que le serveur de processus tente de se connecter au client intelligent, au lieu de laisser le client lancer le contact. Cela peut être utile si vous avez un pare-feu qui empêche une connexion dans la direction habituelle. client spécifie le nom réseau ou l’adresse IP de l’ordinateur sur lequel le client intelligent existe ou sera créé. Les deux barres obliques inverses initiales (\) sont facultatives.

Étant donné que le serveur de processus recherche un client spécifique, vous ne pouvez pas connecter plusieurs clients au serveur si vous utilisez cette méthode. Si la connexion est refusée ou interrompue, vous devrez redémarrer le serveur de processus. Un serveur de processus de connexion inverse n’apparaît pas lorsque quelqu’un utilise l’option de ligne de commande -QR pour afficher tous les serveurs actifs.

Remarque Lorsque clicon est utilisé, il est préférable de démarrer le client intelligent avant la création du serveur de processus, même si la commande habituelle (serveur avant client) est également autorisée.

port=COMPort
Lorsque le protocole COM est utilisé, COMPort spécifie le port COM à utiliser. Le préfixe « COM » est facultatif. Par exemple, « com2 » et « 2 » sont acceptables.

baud= BaudRate
Lorsque le protocole COM est utilisé, BaudRate spécifie la vitesse de baud à laquelle la connexion s’exécute. Tout taux de baud pris en charge par le matériel est autorisé.

channel=COMChannel
Si le protocole COM est utilisé, COMChannel spécifie le canal COM à utiliser pour communiquer avec le client de débogage. Il peut s’agir de n’importe quelle valeur comprise entre 0 et 254, inclus. Vous pouvez utiliser un seul port COM pour plusieurs connexions à l’aide de numéros de canal différents. (Cela diffère de l’utilisation d’un port COM pour un câble de débogage. Dans ce cas, vous ne pouvez pas utiliser de canaux dans un port COM.)

proto=Protocol
Si le protocole SSL ou SPIPE est utilisé, protocole spécifie le protocole S-Channel (Secure Channel). Il peut s’agir de l’une des chaînes tls1, pct1, ssl2 ou ssl3.

certificat
Si le protocole SSL ou SPIPE est utilisé, certificat spécifie le certificat. Il peut s’agir du nom du certificat ou de l’empreinte numérique du certificat (chaîne de chiffres hexadécimaux donnés par le composant logiciel enfichable du certificat). Si la syntaxe certuser=Cert est utilisée, le débogueur recherche le certificat dans le magasin système (magasin par défaut). Si la syntaxe Cert est utilisée, le débogueur recherche le certificat dans le magasin d’ordinateurs. Le certificat spécifié doit prendre en charge l’authentification du serveur.

masqué
Empêche le serveur de processus d’apparaître lorsque quelqu’un utilise l’option de ligne de commande -QR pour afficher tous les serveurs actifs.

password=Mot de passe
Nécessite un client intelligent pour fournir le mot de passe spécifié afin de se connecter au serveur de processus. mot de passe peut être n’importe quelle chaîne alphanumérique, jusqu’à douze caractères de longueur.

Important

L’utilisation d’un mot de passe avec le protocole TCP, NPIPE ou COM offre uniquement une petite quantité de protection, car le mot de passe n’est pas chiffré. Lorsque vous utilisez un mot de passe avec un protocole SSL ou SPIPE, le mot de passe est chiffré. Si vous souhaitez établir une session à distance plus sécurisée, vous devez utiliser le protocole SSL ou SPIPE.

ipversion=6
(Outils de débogage pour Windows 6.6.07 et versions antérieures uniquement) Force le débogueur à utiliser l’adresse IP version 6 plutôt que la version 4 lors de l’utilisation de TCP pour se connecter à Internet. Dans Windows Vista et versions ultérieures, le débogueur tente d’effectuer la version IP par défaut automatiquement vers la version 6, ce qui rend cette option inutile.

IcfEnable
Provoque le débogueur pour activer les connexions de port nécessaires pour la communication tcp ou canal nommé lorsque le pare-feu de connexion Internet est actif. Par défaut, le pare-feu de connexion Internet désactive les ports utilisés par ces protocoles. Lorsque IcfEnable est utilisé avec une connexion TCP, le débogueur entraîne l’ouverture du port spécifié par le paramètre Socket . Lorsque IcfEnable est utilisé avec une connexion de canal nommé, le débogueur amène Windows à ouvrir les ports utilisés pour les canaux nommés (ports 139 et 445). Le débogueur ne ferme pas ces ports une fois la connexion terminée.

-sifeoexécutable
Suspend la valeur IFEO (Image File Execution Option) pour l’image donnée. exécutable doit inclure le nom de fichier de l’image exécutable, y compris les extensions de nom de fichier. L’option -sifeo permet à DbgSrv d’être défini comme débogueur IFEO pour une image créée par l’option -c, sans provoquer d’appel récursif en raison du paramètre IFEO. Cette option ne peut être utilisée que si -c est utilisé.

-c
Provoque la création d’un processus DbgSrv. Vous pouvez l’utiliser pour créer un processus que vous envisagez de déboguer. Cela est similaire à la génération d’un nouveau processus à partir du débogueur, sauf que ce processus ne sera pas débogué lors de sa création. Pour déboguer ce processus, déterminez son PID et utilisez l’option -p lors du démarrage du client intelligent pour déboguer ce processus.


Entraîne la suspension immédiate du processus nouvellement créé. Si vous utilisez cette option, il est recommandé d’utiliser CDB comme client intelligent et de démarrer le client intelligent avec l’option de ligne de commande -pb, conjointement avec -p PID. Si vous incluez l’option -pb sur la ligne de commande, le processus reprend lorsque le débogueur s’y attache ; sinon, vous pouvez reprendre le processus avec la commande ~*m.

appCmdLine
Spécifie la ligne de commande complète du processus à créer. AppCmdLine peut être une chaîne Unicode ou ASCII et peut inclure n’importe quel caractère imprimable. Tout le texte qui apparaît après le paramètre -c[s] sera pris pour former la chaîne AppCmdLine.

-x
Fait en sorte que le reste de la ligne de commande soit ignoré. Cette option est utile si vous lancez DbgSrv à partir d’une application qui peut ajouter du texte indésirable à sa ligne de commande.

-pc
Fait en sorte que le reste de la ligne de commande soit ignoré. Cette option est utile si vous lancez DbgSrv à partir d’une application qui peut ajouter du texte indésirable à sa ligne de commande. Une erreur de syntaxe se produit si -pc est l’élément final sur la ligne de commande DbgSrv. Outre cette restriction, -pc est identique à -x.

Vous pouvez démarrer n’importe quel nombre de serveurs de processus sur un ordinateur. Toutefois, cela n’est généralement pas nécessaire, car un serveur de processus peut être utilisé par n’importe quel nombre de clients intelligents (chacun engagé dans une session de débogage différente).