Aktivieren eines KD-Verbindungsservers

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

Hinweis Sie können einen KD-Verbindungsserver ohne erhöhte Berechtigungen aktivieren, und Debugclients können eine Verbindung mit dem Server herstellen. Clients können jedoch keinen KD-Verbindungsserver ermitteln, es sei denn, er wurde mit erhöhten Rechten aktiviert. Informationen zum Ermitteln von Debugservern finden Sie unter Suchen nach KD-Verbindungsservern.

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

Die Syntax für die KdSrv-Befehlszeile hängt vom verwendeten Protokoll ab. Es gibt folgende Optionen:

kdsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] 

kdsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] 

kdsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] 

kdsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] 

kdsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] 

kdsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] 

kdsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] 

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

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, 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. Diese wird durch die Prozess-ID von KdSrv ersetzt. Ein zweiter solcher Code wird durch die Thread-ID von KdSrv ersetzt.

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

Es ist auch möglich, einen durch einen Doppelpunkt getrennten Portbereich anzugeben. KdSrv ü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 KD-Verbindungsserver erstellt. Der smarte Client muss den tatsächlichen Port angeben, der für die Verbindung mit dem Server verwendet wird. Verwenden Sie zum Ermitteln des tatsächlichen Ports eine der unter Suchen nach KD-Verbindungsservern beschriebenen Methoden. Wenn dieser KD-Verbindungsserver angezeigt wird, folgen auf den Port zwei Zahlen, die durch einen Doppelpunkt getrennt sind. Die erste Nummer 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 auf diese Weise einen Portbereich angeben, während der KD-Verbindungsserver den tatsächlich verwendeten Port angeben muss.)

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

Da der KD-Verbindungsserver 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 KD-Verbindungsserver mit umgekehrter Verbindung wird nicht angezeigt, wenn jemand die Befehlszeilenoption -QR verwendet, um alle aktiven Server anzuzeigen.

Hinweis Wenn Clicon verwendet wird, empfiehlt es sich, den smarten Client zu starten, bevor der KD-Verbindungsserver 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 bei der 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 diesem Fall 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 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 hexadezimalen Ziffern, die vom Snapin des Zertifikats angegeben werden). 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 KD-Verbindungsserver angezeigt wird, wenn jemand die Befehlszeilenoption -QR verwendet, um alle aktiven Server anzuzeigen.

password=Password
Erfordert, dass ein smarter Client das angegebene Kennwort zur Verfügung stellt, um eine Verbindung mit dem KD-Verbindungsserver 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 für Windows 6.6.07 und früher) Erzwingt, dass der Debugger 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 ports, die von diesen Protokollen verwendet werden. Wenn IcfEnable mit einer TCP-Verbindung verwendet wird, bewirkt der Debugger, dass Windows den port öffnet, der durch den Socket-Parameter angegeben wird. 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.