Aktivieren eines Prozessservers

Der Prozessserver, der in den Debugtools für Windows enthalten ist, wird als DbgSrv (dbgsrv.exe) bezeichnet. 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 aktivieren, ohne erhöhte Berechtigungen zu haben, und Debuggingclients können eine Verbindung mit dem Server herstellen. Clients können jedoch keinen Prozessserver ermitteln, es sei denn, sie wurde mit erhöhten Berechtigungen aktiviert. 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 haben die folgenden möglichen Werte:

pipe= PipeName
Wenn das 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, wird eine Fehlermeldung angezeigt. PipeName darf keine Leerzeichen oder Anführungszeichen enthalten. PipeName kann einen numerischen Code im Stil von printf enthalten, z. B. %x oder %d. Der Prozessserver ersetzt dies 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 der Systemsteuerung zu Netzwerk und Internet > Netzwerk- und Freigabecenter> Erweiterte Freigabeeinstellungen. Wählen Sie Datei- und Druckerfreigabe aktivieren.

port= Steckdose
Wenn das TCP- oder SSL-Protokoll verwendet wird, ist Socket die Socketportnummer.

Es ist auch möglich, einen durch einen Doppelpunkt getrennten Portbereich anzugeben. DbgSrv überprüft jeden Port in diesem Bereich, um festzustellen, ob er kostenlos ist. Wenn ein kostenloser Port gefunden wird und kein Fehler auftritt, wird der Prozessserver erstellt. Der intelligente Client muss den tatsächlichen Port angeben, der zum Herstellen einer Verbindung mit dem Server verwendet wird. Um den tatsächlichen Port zu ermitteln, verwenden Sie eine der in der Suche nach Prozessservern beschriebenen Methoden. Wenn dieser Prozessserver angezeigt wird, folgt der Port zwei Nummern, die durch einen Doppelpunkt getrennt sind. Die erste Zahl wird als tatsächlicher Port verwendet; die zweite kann ignoriert werden. Wenn der Port zum Beispiel als Port=51:60 angegeben wurde und tatsächlich Port 53 verwendet wurde, wird in den Suchergebnissen „port=53:60“ angezeigt. (Wenn Sie den Clicon-Parameter zum Herstellen einer Reverseverbindung verwenden, kann der smarte Client einen Bereich von Ports auf diese Weise angeben, während der Prozessserver den tatsächlich verwendeten Port angeben muss.)

clicon= Kunde
Wenn das TCP- oder SSL-Protokoll verwendet wird 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 dem Client das Initiieren des Kontakts zu erlauben. Dies kann hilfreich sein, wenn Sie über eine Firewall verfügen, die eine Verbindung in die übliche Richtung verhindert. Der Client gibt den Netzwerknamen oder die IP-Adresse des Computers an, auf dem der smarte Client vorhanden ist oder erstellt wird. Die beiden anfänglichen 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 verweigert 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, empfiehlt es sich, den Smart Client zu starten, bevor der Prozessserver erstellt wird, obwohl auch die übliche Reihenfolge (Server vor Client) 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 -- zum Beispiel sind sowohl „com2“ als auch „2“ zulässig.

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. Sie können einen einzigen COM-Port für mehrere Verbindungen mit unterschiedlichen Kanalnummern verwenden. (Dies unterscheidet sich von der Verwendung eines COM-Ports für ein Debug-Kabel – 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-Channel) an. Dies kann eine 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 hexadezimalen Ziffern, die vom Snap-In des Zertifikats angegeben werden). Wenn die Syntax certuser=Cert verwendet wird, sucht der Debugger das Zertifikat im Systemspeicher (Standardspeicher). Wenn die Syntax machuser=Cert verwendet wird, sucht der Debugger das Zertifikat im Computerspeicher. Das angegebene Zertifikat muss die Serverauthentifizierung unterstützen.

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

password= Passwort
Erfordert einen intelligenten Client, um das angegebene Kennwort anzugeben, um eine Verbindung mit dem Prozessserver herzustellen. Das Kennwort kann eine beliebige alphanumerische Zeichenfolge mit einer Länge von bis zu zwölf Zeichen sein.

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

ipversion=6
(Nur Debugtools für Windows 6.6.07 und frühere Versionen) Erzwingt, dass der Debugger IP-Version 6 anstelle von Version 4 verwendet, wenn TCP zum Herstellen einer Internetverbindung verwendet wird. In Windows Vista und höheren Versionen versucht der Debugger, die IP-Standardversion 6 automatisch zu verwenden, wodurch diese Option unnötig ist.

IcfEnable
Bewirkt, dass der Debugger die erforderlichen Portverbindungen für die TCP- oder benannte Pipekommunikation 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, veranlasst der Debugger Windows, den durch den Parameter Socket angegebenen Port zu öffnen. Wenn IcfEnable mit einer benannten Pipeverbindung verwendet wird, bewirkt der Debugger, dass Windows die Ports für benannte Pipes (Ports 139 und 445) öffnet. Der Debugger schließt diese Ports nicht, nachdem die Verbindung beendet wurde.

-sifeo Ausführbare Datei
Suspends the Image File Execution Option (IFEO) value for the given image. Die ausführbare Datei sollte den Dateinamen des ausführbaren Images enthalten, einschließlich der Dateinamenerweiterungen. Mit der Option "-sifeo " kann DbgSrv als IFEO-Debugger für ein von der Option -c erstelltes Bild festgelegt werden, ohne dass rekursive Aufrufe aufgrund der IFEO-Einstellung verursacht werden. 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 Erstellen eines neuen Prozesses aus dem Debugger, mit der Ausnahme, dass dieser Prozess beim Erstellen nicht gedebuggt wird. Um diesen Prozess zu debuggen, bestimmen Sie ihre PID, und verwenden Sie beim Starten des smarten Clients die Option "-p ", um diesen Prozess zu debuggen.

s
Bewirkt, dass der neu erstellte Prozess sofort angehalten wird. Wenn Sie diese Option verwenden, empfiehlt es sich, CDB als Smart Client zu verwenden und den smarten Client mit der Befehlszeilenoption -pb in Verbindung mit -p PID zu starten. Wenn Sie die Option "-pb" in die Befehlszeile einschließen, wird der Prozess fortgesetzt, wenn der Debugger an sie angefügt wird. Andernfalls können Sie den Vorgang 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 kann jedes druckbare Zeichen enthalten. Der gesamte Text, der nach dem Parameter -c[s] angezeigt wird, wird zum Bilden der Zeichenfolge "AppCmdLine" verwendet.

-x
Bewirkt, dass der Rest der Befehlszeile ignoriert wird. Diese Option ist nützlich, wenn Sie DbgSrv aus einer Anwendung starten, die unerwünschten Text an die Befehlszeile anfügen kann.

-PC
Bewirkt, dass der Rest der Befehlszeile ignoriert wird. Diese Option ist nützlich, wenn Sie DbgSrv aus einer Anwendung starten, die unerwünschten Text an die Befehlszeile anfügen kann. Ein Syntaxfehler ergibt, wenn -pc das letzte Element in der Befehlszeile dbgSrv ist. Abgesehen von dieser Einschränkung ist -pc identisch mit -x.

Sie können eine beliebige Anzahl von Prozessservern auf einem Computer starten. Dies ist jedoch im Allgemeinen nicht erforderlich, da ein Prozessserver von einer beliebigen Anzahl von smarten Clients verwendet werden kann (jeweils in einer anderen Debugsitzung).