Aktivieren eines Prozessservers

Der Prozessserver, der in Debugtools für Windows enthalten ist, heißt DbgSrv (dbgsrv.exe). Um einen Prozessserver zu aktivieren, öffnen Sie ein Eingabeaufforderungsfenster mit erhöhten Rechten (Als Administrator ausführen), und geben Sie den Befehl dbgsrv ein.

Hinweis Sie können einen Prozessserver ohne erhöhte Berechtigungen aktivieren, und Debugclients können eine Verbindung mit dem Server herstellen. Clients können jedoch nur dann einen Prozessserver ermitteln, wenn er mit erhöhten Rechten aktiviert wurde. Informationen zum Ermitteln von Debugservern finden Sie unter Suchen nach Prozessservern.

DbgSrv unterstützt mehrere Transportprotokolle: Named Pipe (NPIPE), TCP, COM-Port, Secure Pipe (SPIPE) und Secure Sockets Layer (SSL).

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

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 com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

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] 

Die Parameter in den vorherigen Befehlen weisen die folgenden möglichen Werte auf:

pipe=PipeName
Wenn NPIPE- oder SPIPE-Protokoll verwendet wird, ist PipeName eine Zeichenfolge, die als Name der Pipe dient. Jeder Pipename sollte einen eindeutigen Prozessserver identifizieren. Wenn Sie versuchen, einen Pipenamen wiederzuverwenden, erhalten Sie eine Fehlermeldung. PipeName darf keine Leerzeichen oder Anführungszeichen enthalten. PipeName kann einen numerischen Formatcode im Printf-Format enthalten, z. B. %x oder %d. Der Prozessserver ersetzt diese durch die Prozess-ID von DbgSrv. Ein zweiter solcher Code wird durch die Thread-ID von DbgSrv ersetzt.

Hinweis Möglicherweise müssen Sie die Datei- und Druckerfreigabe auf dem Computer aktivieren, auf dem der Prozessserver ausgeführt wird. Navigieren Sie in Systemsteuerung zu Netzwerk- und Internetnetzwerk > und Freigabecenter> Erweiterte Freigabeeinstellungen. Wählen Sie Datei- und Druckerfreigabe aktivieren aus.

port=Socket
Bei Verwendung des TCP- oder SSL-Protokolls ist Socket die Socketportnummer.

Es ist auch möglich, einen Bereich von Ports anzugeben, die durch einen Doppelpunkt getrennt sind. DbgSrv überprüft jeden Port in diesem Bereich, um festzustellen, ob er frei ist. Wenn ein freier Port gefunden wird und kein Fehler auftritt, wird der Prozessserver erstellt. Der smarte Client muss den tatsächlichen Port angeben, der für die Verbindung mit dem Server verwendet wird. Um den tatsächlichen Port zu ermitteln, verwenden Sie eine der unter Suchen nach Prozessservern beschriebenen Methoden. wenn dieser Prozessserver angezeigt wird, werden dem Port zwei durch einen Doppelpunkt getrennte Zahlen gefolgt. Die erste Zahl ist der tatsächlich verwendete Port. die zweite kann ignoriert werden. Wenn der Port beispielsweise als port=51:60 angegeben wurde und Port 53 tatsächlich verwendet wurde, wird in den Suchergebnissen "port=53:60" angezeigt. (Wenn Sie den clicon-Parameter verwenden, um eine Umgekehrte Verbindung herzustellen, kann der smarte Client einen Bereich von Ports auf diese Weise angeben, während der Prozessserver den tatsächlich verwendeten Port angeben muss.)

clicon=Client
Wenn das TCP- oder SSL-Protokoll verwendet und der clicon-Parameter angegeben wird, wird eine umgekehrte Verbindung geöffnet. Dies bedeutet, dass der Prozessserver versucht, eine Verbindung mit dem smarten Client herzustellen, anstatt den Kontakt vom Client initiieren zu lassen. Dies kann nützlich sein, wenn Sie über eine Firewall verfügen, die eine Verbindung in der üblichen Richtung verhindert. Der Client gibt den Netzwerknamen oder die IP-Adresse des Computers an, auf dem sich der smarte Client befindet oder erstellt wird. Die beiden ersten umgekehrten Schrägstriche (\) sind optional.

Da der Prozessserver nach einem bestimmten Client sucht, können Sie nicht mehrere Clients mit dem Server verbinden, wenn Sie diese Methode verwenden. Wenn die Verbindung abgelehnt oder unterbrochen wird, müssen Sie den Prozessserver neu starten. Ein Prozessserver für umgekehrte Verbindungen wird nicht angezeigt, wenn jemand die Befehlszeilenoption -QR verwendet, um alle aktiven Server anzuzeigen.

Hinweis Wenn clicon verwendet wird, ist es am besten, den smarten Client zu starten, bevor der Prozessserver erstellt wird, obwohl die übliche Reihenfolge (Server vor Client) ebenfalls zulässig ist.

port=COMPort
Wenn das COM-Protokoll verwendet wird, gibt COMPort den zu verwendenden COM-Port an. Das Präfix "COM" ist optional. Beispielsweise sind sowohl "com2" als auch "2" akzeptabel.

baud=BaudRate
Wenn das COM-Protokoll verwendet wird, gibt BaudRate die Baudrate an, mit der die Verbindung ausgeführt wird. Jede Baudrate, die von der Hardware unterstützt wird, ist zulässig.

channel=COMChannel
Wenn das COM-Protokoll verwendet wird, gibt COMChannel den COM-Kanal an, der für die Kommunikation mit dem Debugclient verwendet werden soll. Dies kann ein beliebiger Wert zwischen 0 und 254 sein, einschließlich. Sie können einen einzelnen COM-Port für mehrere Verbindungen mit unterschiedlichen Kanalnummern verwenden. (Dies unterscheidet sich von der Verwendung eines COM-Ports für ein Debugkabel. In dieser Situation können Sie keine Kanäle innerhalb eines COM-Ports verwenden.)

proto=Protokoll
Wenn DAS SSL- oder SPIPE-Protokoll verwendet wird, gibt Protocol das Secure Channel-Protokoll (S-Kanal) an. Dies kann eine beliebige der Zeichenfolgen tls1, pct1, ssl2 oder ssl3 sein.

Cert
Wenn das SSL- oder SPIPE-Protokoll verwendet wird, gibt Cert das Zertifikat an. Dies kann entweder der Zertifikatname oder der Fingerabdruck des Zertifikats sein (die Zeichenfolge der Hexadezimalziffern, die durch das Snapin des Zertifikats angegeben wird). Wenn die Syntax certuser=Cert verwendet wird, sucht der Debugger das Zertifikat im Systemspeicher (dem Standardspeicher). Wenn die Syntax machuser=Cert verwendet wird, sucht der Debugger das Zertifikat im Computerspeicher. Das angegebene Zertifikat muss die Serverauthentifizierung unterstützen.

Versteckte
Verhindert, dass der Prozessserver angezeigt wird, wenn jemand die Befehlszeilenoption -QR verwendet, um alle aktiven Server anzuzeigen.

password=Password
Erfordert einen smarten Client, um das angegebene Kennwort anzugeben, um eine Verbindung mit dem Prozessserver herzustellen. Das Kennwort kann eine beliebige alphanumerische Zeichenfolge sein, die bis zu zwölf Zeichen lang ist.

Warnung Die Verwendung eines Kennworts mit DEM TCP-, NPIPE- oder COM-Protokoll bietet nur einen geringen Schutz, da das Kennwort nicht verschlüsselt ist. Wenn ein Kennwort mit dem SSL- oder SPIPE-Protokoll verwendet wird, wird es verschlüsselt. Wenn Sie eine sichere Remotesitzung einrichten möchten, müssen Sie das SSL- oder SPIPE-Protokoll verwenden.

ipversion=6
(Debugtools nur für Windows 6.6.07 und früher) Erzwingt, dass der Debugger die IP-Version 6 anstelle von Version 4 verwendet, wenn TCP zum Herstellen einer Verbindung mit dem Internet verwendet wird. In Windows Vista und höheren Versionen versucht der Debugger, die IP-Version 6 automatisch standardmäßig zu verwenden, sodass diese Option nicht erforderlich ist.

IcfEnable
Bewirkt, dass der Debugger die erforderlichen Portverbindungen für die TCP- oder Named Pipe-Kommunikation aktiviert, wenn die Internetverbindungsfirewall aktiv ist. Standardmäßig deaktiviert die Internetverbindungsfirewall die von diesen Protokollen verwendeten Ports. Wenn IcfEnable mit einer TCP-Verbindung verwendet wird, bewirkt der Debugger, dass Windows den vom Socket-Parameter angegebenen Port öffnet. Wenn IcfEnable mit einer Named Pipe-Verbindung verwendet wird, bewirkt der Debugger, dass Windows die ports öffnet, die für Named Pipes (Ports 139 und 445) verwendet werden. Der Debugger schließt diese Ports nicht, nachdem die Verbindung beendet wurde.

-sifeoAusführbare Datei
Hält den Ifeo-Wert (Image File Execution Option) für das angegebene Bild an. Die ausführbare Datei sollte den Dateinamen des ausführbaren Images einschließlich der Dateinamenerweiterungen enthalten. Mit der Option -sifeo kann DbgSrv als IFEO-Debugger für ein mit der Option -c erstelltes Image festgelegt werden, ohne dass aufgrund der IFEO-Einstellung ein rekursiver Aufruf verursacht wird. Diese Option kann nur verwendet werden, wenn -c verwendet wird.

-C
Bewirkt, dass DbgSrv einen neuen Prozess erstellt. Sie können dies verwenden, um einen Prozess zu erstellen, den Sie debuggen möchten. Dies ähnelt dem Generieren eines neuen Prozesses aus dem Debugger, mit dem Unterschied, dass dieser Prozess beim Erstellen nicht debuggt wird. Um diesen Prozess zu debuggen, bestimmen Sie dessen PID, und verwenden Sie die Option -p , wenn Sie den smarten Client starten, um diesen Prozess zu debuggen.

s
Bewirkt, dass der neu erstellte Prozess sofort angehalten wird. Wenn Sie diese Option verwenden, wird empfohlen, CDB als smarten Client zu verwenden und den smarten Client mit der Befehlszeilenoption -pb in Verbindung mit -p PID zu starten. Wenn Sie die Option -pb in der Befehlszeile einschließen, wird der Prozess fortgesetzt, wenn der Debugger daran angefügt wird. Andernfalls können Sie den Prozess mit dem Befehl ~*m fortsetzen.

AppCmdLine
Gibt die vollständige Befehlszeile des zu erstellenden Prozesses an. AppCmdLine kann entweder eine Unicode- oder ASCII-Zeichenfolge sein und ein beliebiges druckbares Zeichen enthalten. Der gesamte Text, der nach dem Parameter -c[s] angezeigt wird, wird in die Zeichenfolge AppCmdLine übernommen.

-X
Bewirkt, dass der Rest der Befehlszeile ignoriert wird. Diese Option ist nützlich, wenn Sie DbgSrv über eine Anwendung starten, die möglicherweise unerwünschten Text an die Befehlszeile anfügen.

-Pc
Bewirkt, dass der Rest der Befehlszeile ignoriert wird. Diese Option ist nützlich, wenn Sie DbgSrv über eine Anwendung starten, die möglicherweise unerwünschten Text an die Befehlszeile anfügen. Ein Syntaxfehler tritt auf, wenn -pc das letzte Element in der DbgSrv-Befehlszeile ist. Abgesehen von dieser Einschränkung ist -pc mit -x identisch.

Sie können eine beliebige Anzahl von Prozessservern auf einem Computer starten. Dies ist jedoch in der Regel unnötig, da ein Prozessserver von einer beliebigen Anzahl von Smart Clients (jeder an einer anderen Debugsitzung beteiligt) verwendet werden kann.